This page lists my longer, more considered articles. Use the year heading links to see all posts in each year.
Grounded adventures: Four years without flying: My journey from flying around the world as a digital nomad to not flying at all.
Vision is an exciting addition to Apple’s lineup: Considering how Apple’s newly announced Vision platform could fit in with its existing platforms.
Conditional compilation for Apple’s yearly updates: How to smoothly transition an iOS and Mac Catalyst app for Apple’s yearly updates between June and October.
NSPredicate: an old API with new surprises: Discovering an inconsistency in how
NSPredicate handles matching inequality with nil values, and implementing something better.
Download failures with Swift Package Manager binary targets: A tale of how reading an error message more carefully allowed us to work around an issue with our tooling.
What is a deprecated API on iOS? A look at Apple’s API evolution strategy and the effect of the deployment target and base SDK Xcode project settings.
What’s new in KeyboardKit for iOS 14? Some details about KeyboardKit’s new support for Swift Package Manager, sidebars and lists with
The case for lists in
UICollectionView: Exploring the power and flexibility offered by creating lists using
Breaking down the remote WWDC experience: A breakdown of how well WWDC 2020 went compared to previous in-person editions.
iPad-focused WWDC 2020 wish list: New stuff I’d like to see on iPad.
Level up your trackpad support using
UIInteraction: How to make your iOS app work well with scrolling, secondary clicking and dragging on a trackpad or mouse.
DynamicButtonStack: Motivation and design details
Improving iOS menus by putting icons on the left with swizzling: How I improved the usability of iOS contextual menus and the share sheet with some swizzling fun.
Localisation using Apple’s glossaries: How I localised KeyboardKit into 39 languages without needing translators.
Moving a Git repository into its submodule: How we improved our Git repository setup by moving our PDF Viewer for iOS repository into our PSPDFKit repository.
Page Up, Page Down, Home and End in Catalyst apps: Apple didn’t add support for scrolling with Page Up and Page Down in UIKit: They added this in WebKit/Safari.
Open links in Safari, not Safari view controller: Why we changed our default for opening web links from
SFSafariViewController to the Safari app.
Open source advent: The creation of KeyboardKit: From 1–24 December 2019, I published open source code every day. Most days, these efforts focused on hardware keyboard control in iOS apps, which came together as KeyboardKit. This article collects my daily updates.
FB6185896: App unexpectedly terminates instead of receiving
Self-sizing table view cells in practice: A look at self-sizing table view cells for apps supporting iOS 10, 11, and 12, covering three implementation approaches and some pitfalls I encountered supporting these across our UI in PSPDFKit.
Smart grid sizing: How PSPDFKit is smart about choosing thumbnail sizes.
How to use iOS Data Protection: How apps can use iOS Data Protection to secure their files.
Making the most of remote work: At PSPDFKit, we strive to hire the best people for the job, regardless of where they are in the world. Here, I want to share how I’ve been making the most of remote work.
Preventing popovers on popovers: Some unexpected things found when looking into presenting action sheets and activity view controllers.
iOS 10 and OS X 10.12 wish list: Here are some changes I would like to see in the next versions of Apple’s major platforms.
Why I made Magic Spell: I found myself fixing a lot of spelling errors in source code, so I made a Mac app to check spelling in many files at once.
My favourite games of 2015
Presentation controllers and adaptive presentations: Our problems with
UIPresentationController and adaptive presentations at PSPDFKit.
My favourite games of 2013
Clear: Clear is exciting. It pushes the boundaries of how we think software interfaces work and is full to the brim with delightful interactions. Here are some thoughts on the app.
Greg Joswiak at SVC2UK: I attended Silicon Valley comes to the UK, where Greg Joswiak from Apple gave a talk.
Camera Plus: A review of TapTapTap’s Camera Plus app.
My lab report process: I’ve developed a somewhat unusual process for writing university lab experiment reports.
Tab Bar in the iPhone Photos App
iWork for Mac pricing
Some Thoughts on the Instapaper App’s Interface: An unsolicited redesign of my favourite app.
Report From My Time in Germany: A write up about my DAAD RISE internship at the University of Lübeck’s Institute for Signal Processing.
YouTube and Web Apps on iOS
Deleting from the iPhone Home Screen
Ideal PDF handing in Opera
My iPhone Background Processes List
iPhone OS 4 Developer Preview Event
Instapaper 2.2: When you use an application as much as I use Instapaper, small changes can make a big difference. Here are assorted thoughts on the 2.2 update.