writing_archive
Writing
Development notes and personal essays · 102 posts.
No matching articles. Try another title or choose All topics.
2022
2020
- Breakpoint Every UIPasteboard Method with LLDB
- How to Quickly List All +load Methods in an App
- LLDB: How to Set a Breakpoint at a Function's return
- When Does an Objective-C Object Held by a C++ Class Get dealloc'd?
- Exploring the Hidden Character (LRM) in WhatsApp's App Name
- Running Android on an iPhone: My Experience
- Redirecting iOS Standard Output to a UITextView
- Renaming Symbols with __asm__
- Is C++ Static Variable Initialization Inside a Function Thread-Safe?
- Why Does NSAssert Break at dispatch_once?
- Inspecting Objective-C Block Signatures with LLDB
2019
- dirtrace: Visualizing Directory Sizes with Chrome Tracing
- RemoBoard: Adding Browser-Based Typing
- Building RemoBoard: Typing on a Phone from a Computer
- iOS Launch Speed Optimization: Mach-O Binary Layout Reordering
- FolderSizeView: Visualizing Directory Sizes with a Treemap
- Exploring the Internal Implementation of Availability Checking (@available)
- Paste Keyboard: Stop WeChat Moments Text from Being Collapsed
- Messier: Tracing Objective-C Method Calls
- Basic Usage of Nanoscope, an Android Method Tracing Tool
- VSCode Extension: Quickly Open pub.dev Docs from pubspec Dependencies
- "App Version God": A Little App for Querying an App's Historical Versions
2018
- Year-End: Open-Sourcing 3 Little Apps
- iOS Launch Performance: A Reading Guide
- CodeFriend: Developing Xcode Extensions with JavaScript
- Comparing Four Ways to Get the Thread Identifier on iOS
- Exploring SpringBoard with AppleTrace
- Building QVKeyboard: Typing on iOS from a Mac
- A Look at the Simple LRU Cache Implementation in MMKV
- An Initial Exploration of the Relationship Between iOS LaunchScreen and Process Creation
- Analyzing How FastImageCache Works
- iOS Cross-Process Interaction: Dismissing the System Dictionary UI with a Pull-Down Gesture
- Adding a Close Button to the iBooks Word Lookup UI
- A Quick Overview of mmap: Principles and iOS Practice
- Notes on Jailbreaking iOS 11.3.1
- A Simple Model for Scheduling iOS Launch Tasks
- Hook All +load Methods (Including Categories)
- A First Look at the os_signpost API
- Implementing a Simple Thread Pool in C++
- Several Ways to Get the Current Time on the iOS Platform
- A Collection of iOS App Launch Performance Optimization Resources
- Releasing the Command-Line Version of the filterline Log Filtering Tool
- Installing the AppleTrace Tweak via Cydia
- Releasing Filter Line, a VSCode Log Filtering Extension
- iOS App Launch Performance Optimization (Part 1): The premain Stage
- iOS App Reverse Engineering Resource Collection
2017
- 2017 Year in Review
- Azeria Labs ARM Exploitation Challenges Stack1-5 Walkthrough
- MachOExplorer: Visualizing Mach-O Files
- AppleTrace Paired with MonkeyDev to Trace Any App
- AppleTrace: A Performance Analysis Tool
- Manually Decrypting iOS App Store Apps Using LLDB
- Setting Up an iOS 10 Jailbreak Development Environment Chinese
- Getting Started with LLVM Clang Plugins Chinese
- Generating a Framework Dependency Graph for a CocoaPods Project
- Spacemacs Getting-Started Summary
- A Method of Deferring Code Execution in the premain Stage
- A Method of Hooking C++ Static Initializers
- A Method of Hooking the Objective-C +load Method
2016
- 2016 Year in Review: Three Months After Joining Ant Financial
- Inferring the Source Directory Layout of WeChat iOS from __FILE__ Logs
- Exploring Facebook's iOS Client - The FBSessionGKs Section
- Exploring Facebook's iOS Client - The FBInjectable Section
- Exploring Facebook's iOS Client - The RODATA Section
- supotato: A Tool to Auto-Classify class-dump Header Files
- SegmentFault Hackathon 2016 Summary
- One-Year Summary of Switching from Windows to iOS Development
- Reverse Engineering the UI Implementation of WeChat's Chat Screen
- A Small Animation Glitch When the Keyboard Hides in a Chat UI
- iOS Debug Cheatsheet
- How to Build an RSS Reader App
- Debugging Notes on the symbolicatecrash Infinite Loop Bug
- Pitfalls of the Euro Sign € Compatibility Between CP936 and GB18030 Encodings
- Enterprise-Signed App Launches Slowly (Stuck on a Dark Icon for N Seconds)
- An Apple Developer Login Issue: A 2016 Support Experience
- Analyzing Delayed touchesBegan on a Secondary Page Inside the TabBar Area
- YYWebImage Source Code Reading Notes
- SDWebImage Source Code Reading Notes
- UITableView-FDTemplateLayoutCell Source Code Reading Notes
- YYCache Source Code Reading Notes
- The iOSBlog.cc Website: Origins, Goals, and Reflections on an iOS Blog Curation
- Building XSourceNote: Source Notes in Xcode
- In-App Purchase Integration Pitfalls and an Unresolved Question
- Calling a Perl Script via subprocess with Timeout Control under Python 2.7
2015
- Developing a Tweak to Save Alipay Chat Voice Messages
- Simple iOS Anti-Debugging and Anti-Anti-Debugging in Practice
- Defeating the ptrace Anti-Debugging Protection in the AMap iOS Client
- A Summary of Five Months Switching to iOS Development
- Optimizing UITableViewCell Automatic Height Calculation
- Summary of the SegmentFault Hackathon 2015 Beijing Stop
- Building XBookmark: Bookmarks for Xcode
- Building TabPageScrollView
- iOS Crash Collection and Analysis with PLCrashReporter
- iOS Continuous Integration with fastlane
- A Summary of Basic Redis Usage
- My Windows C++ Development Toolkit, 2010–2015
- A Comparison of Common Vim and Emacs Shortcuts
- Getting Started with Emacs: Notes and Pitfalls
- An OSX Getting-Started Notebook for Windows Programmers