Peter Steinberger

Latest Posts

Efficient iOS Version Checking

Few apps have the luxury to support only the most recent version of iOS. It's often necessary to set a lower deployment target and branch in code based on specific versions of iOS.

Swifty Objective-C

Objective-C originates from the early 1980s, and while the language has evolved a lot over the years, it's still no match for really modern languages like Swift.

UITableViewController designated initializer woes

Explore a subtle but frustrating change in iOS 8.3 where Apple designated three initializers in UITableViewController, creating complications for proper subclassing. I examine how Apple's inconsistent implementation breaks the initializer chain when trying to follow best practices by marking superclass initializers as unavailable. This technical deep dive explains the conflict between UITableViewController's internal call order and Objective-C's designated initializer pattern, resulting in unexpected behavior. I present practical workarounds using compiler directives, with insights into how this issue originated from Swift's stricter initialization requirements.

Researching ResearchKit

Take an in-depth technical exploration of Apple's ResearchKit, their first major open-source project on GitHub. I analyze the codebase to uncover interesting implementation details including their approach to detecting first responders, dynamic type support, secure coding practices, and accessibility implementation. This comprehensive code review reveals practical solutions to common iOS development challenges, clever workarounds for radar issues, and interesting findings like how Apple implements HTML-to-PDF conversion and custom shader-based video tinting for animations.