Posts
All the articles I've posted.
-
Surprises with Swift Extensions
Published:• 5 min readCommon pitfalls and surprising behaviors when creating Swift extensions on Objective-C classes, with solutions for proper method naming.
-
Using ccache for Fun and Profit
Published:• 6 min readComplete guide to using ccache to dramatically speed up C/C++/Objective-C build times for large iOS projects and CI systems.
-
UITableViewController designated initializer woes
Published:• 3 min readNavigate the complications of subclassing UITableViewController after iOS 8.3 introduced designated initializers that break proper initialization patterns.
-
Researching ResearchKit
Published:• 6 min readAnalyze Apple's first major open-source project ResearchKit to discover interesting implementation details and practical iOS development solutions.
-
The curious case of rotation with multiple windows on iOS 8
Published:• 2 min readDiagnose and solve an iOS 8 regression where unwanted rotation occurs in apps using multiple windows despite explicit configuration.
-
UIKit Debug Mode
Published:• 2 min readUnlock hidden UIKit debugging features by bypassing Apple's InternalBuild checks to access secret flags for logging touches, gestures, and animations.
-
Retrofitting containsString: on iOS 7
Published:• 1 min readBackport iOS 8's convenient NSString containsString: method to iOS 7 using runtime patching that won't conflict with Apple's implementation.
-
A Story About Swizzling "the Right Way™" and Touch Forwarding
Published:• 8 min readLearn why traditional method swizzling breaks UIKit's touch forwarding and discover a better approach that preserves _cmd integrity.
-
Hacking with Aspects
Published:• 3 min readExplore how Apple detects popover presentation in UIImagePickerController and learn to bypass the restriction using my Aspects library.
-
Fixing UITextView On iOS 7
Published:• 2 min readFix the severe scrolling and content positioning bugs in iOS 7's UITextView with PSPDFTextView, a drop-in replacement.