Douglas Hill
I make apps to help people learn and achieve more. I’m the iOS team lead at Nutrient (previously known as PSPDFKit) and an organiser of NSLondon.
I’ve worked fully remotely since 2015 and spent time as a digital nomad, but these days I don’t fly and instead base myself where I can go skiing, ice skating or wakeboarding.
I mostly post about iOS development and working on iPad, which you can see in my recent posts and archive. If you like, you can follow me.
Featured articles
- NSCopying in a Swift World
- Zoom transitions
- Conditional compilation for Apple’s yearly updates
- Using JavaScript in a Swift app
- The case for lists in
UICollectionView
- Level up your trackpad support using
UIInteraction
- Localisation using Apple’s glossaries
- Open links in Safari, not Safari view controller
- Presentation controllers and adaptive presentations
Talks
- Zoom transitions (iOSDevUK 2024)
- Keyboard control in UIKit apps (NSLondon Q1 2019, AltConf San Jose 2019, iOS Conf SG 2020 and the iPhreaks podcast)
- Beyond size classes: Making better use of large screens (iOSDevUK 2019)
- Improving user experience with Apple Pencil (AltConf San Jose 2018)
Apps
Reading app: My simple app to save webpages to read later. The comfortable reading experience is paramount. This is my main side project.
PDF Viewer: A powerful app to read, search, and annotate PDF documents, made with my teammates at Nutrient.
Magic Spell: My handy Mac app to check spelling in many files at once. Not actively maintained.
Cambugs: A suite of apps developed with educational psychologists to help teach children to become fluent readers.
Code
KeyboardKit: The easiest way to add comprehensive hardware keyboard control to an iPad or Mac Catalyst app. Read more: The creation of KeyboardKit, What’s new in KeyboardKit for iOS 14? and Migrating KeyboardKit to Swift 6 language mode.
DynamicButtonStack: A UIKit view that lays out buttons in either a column or a row to suit the available space. Read more: Motivation and design details.
Updates and contact
- Follow/subscribe
- he/him