Sign in

Douglas Hill

@douglashill.co
1.5K followers 79 following 326 posts

Software engineer at Nutrient (previously known as PSPDFKit) and a former NSLondon organiser. Mostly near London or Innsbruck. Find me ice skating, wakeboarding, skiing or snowboarding. he/him

PostsRepliesMedia
Douglas Hill @douglashill.co · 29/09/2026
Exciting morning for PDF Viewer with Firebase
Screenshot of Firebase website showing Crash-free users in last 24 hours with a drop from 100% to 50% at about 3am
030
Douglas Hill @douglashill.co · 29/09/2026
Next week, I’ll be hosting a Rust for Mobile Developers round table discussion at next.app devCon. I hope we can learn from each other! It would be great to hear from people coming from Android, Flutter or other backgrounds. Last minute tickets are available until 4 October.
Conference speaker card saying: next.app swiftCon, Douglas Hill, Software Engineer, Nutrient, Rust for Mobile Developers, #nextapp26, OCT 7-9 2026, BERLIN
030
Douglas Hill @douglashill.co · 28/09/2026
Confusing message reply suggestions
Screenshot in Apple Messages app with reply suggestions “Yes, it’s not too late” and ”No, it’s not too late”
010
Douglas Hill @douglashill.co · 24/07/2026
Great evening at NSLondon yesterday. Thank you to Flo for hosting us, and to our speakers Harry, Anastasia and James. I really liked the range of talks.
Photo from Anastasia Petrova’s talk with slide showing feature team vs. platform teamPhoto from James Coleman’s talk with mesh face
010
Douglas Hill @douglashill.co · 24/06/2026
Looking forward to being back in Wales in September to talk about Rust at iOSDevUK. Early bird conference tickets are available until the end of this month. It’s my favourite and best-value iOS conference. Also let me know if you’re interested in hiking in Eryri/Snowdonia the weekend before.
Speaker card: Douglas Hill; Rust for iOS developers: more Swifty than Swift; iOSDevUK; 7th to 10th September 2026; Aberystwyth University; www.iosdevuk.com
130
Douglas Hill @douglashill.co · 14/04/2026
TIL about the ContactProvider framework on iOS (not Mac). Sounds like a way to build an end-to-end encrypted replacement for iCloud/CalDAV contacts sync if you can get your head around the difference between ContactItemEnumerating and ContactItemEnumerator.
protocol ContactItemEnumerating: A protocol to provide enumerators for collections of contact items. protocol ContactItemEnumerator: A protocol to provide enumerations of all contact items and changed contact items.
010
Douglas Hill @douglashill.co · 11/03/2026
One day I assume there will be a Mac with Internal Headphones to explain the need for this precise copy writing.
Screenshot of macOS volume change notification showing the title External Headphones
050
Douglas Hill @douglashill.co · 30/01/2026
😳 rdar:45025538
iPhone mini simulator home screen screenshot showing a red status bar showing only the text “😳 rdar:45025538”
040
Douglas Hill @douglashill.co · 05/01/2026
Vivaldi tip: The setting to disable autofilling previously entered text in any form field is mislabeled as “Save and Fill Addresses”. Also note that disabling then enabling this setting will suggest text from before you disabled it.
Screenshot of Vivaldi browser showing suggestions in Nutrient API documentation search: beta, aiassistantview, scope, aiassistantbutton, changetag, v1/betaGroups/{id}/relations
010
Douglas Hill @douglashill.co · 04/12/2025
Is there any way to hack Xcode to skip the “The file “whatever.xcodeproj” has been modified by another application” alerts? Xcode writes project changes to disk immediately, so obviously after changing branch I always want the version on disk.
Screenshot of alert from Xcode: The file
000
Douglas Hill @douglashill.co · 27/11/2025
I was impressed by all three talks at NSLondon yesterday evening. I learned a lot from each one. It was a proper mini-conference. Thank you Google/Firebase for hosting us.
Photo during Peter Friese’s talk — Have Your Cake and Eat It Too: Hybrid AI with Apple Intelligence and Firebase AI LogicPhoto during Hannah Downey’s talk — Compose Yourself: SwiftUI and its Android CounterpartPhoto during Giordano Scalzo’s talk — AI-Accelerated Mobile Development: From idea to build, faster than ever
030
Douglas Hill @douglashill.co · 22/10/2025
That’s some long overdue cleanup. Ask your parents about Default-568h@2x.png.
Screenshot of a GitHub pull request. Title: Remove Default-568h@2x.png. Commits: 1. Files changed: 4. Comment: You used to have to add these files to support the iPhone 5. Remember that?
030
Douglas Hill @douglashill.co · 08/10/2025
SwiftLeeds day 2
Photo of Adam on stage at the conference with some guy sketchnoting on screen behind.Photo of Sash on stage at the conference.Photo of Oksana on stage at the conference. Slide says “But at workæ 10 year old project, VIPER, Storyboards”.Photo of Ekaterina on stage at the conference. Title is “I am not here by mistake”.
040
Douglas Hill @douglashill.co · 05/10/2025
I was lucky to be in Tirol for the ski season opening on Friday!
Photo of snow on mountains with ski runs and lifts. Rocky ground not covered with snow in places. Blue sky above.
040
Douglas Hill @douglashill.co · 22/08/2025
Excited about this new book. The sequel to my favourite book of last year.
Photo of spines of two books: Dinner by Meera Sodha on top of East by Meera Sodha
010
Douglas Hill @douglashill.co · 22/07/2025
Interesting email in my inbox. I’m thinking about purchasing Greenland next.
Hi Douglas, You purchased Norway and we're super excited to hear what you think! Sharing your experience means a lot to us and will help others choose the right products for them.
040
Douglas Hill @douglashill.co · 01/04/2025
Reminder that calendrical calculations are hard, so you should always use Foundation’s Calendar and DateComponents APIs.
Screenshot of asking Siri “Hey Siri how many days is it from the 12th of January 2025 to the 28th of January 2025” with reply “2025 to the power of 28 is approximately equal to 3.8 times 10 to the power of 92”
041
Douglas Hill @douglashill.co · 02/03/2025
Is there a trick to getting iPad app screenshots to not show rotated on Apple’s anticompetitive store? Looks fine on App Store Connect. I guess maybe because one screenshot is portrait it breaks the others, but the only way to know is to release a new app version and see.
Screenshot of Apple’s anticompetitive store showing four app screenshots all in a portrait size even though three of the screnshots were taken in landscape, so they’re sideways.Screenshot of App Store Connect showing these same four screenshots but all the correct way up.
010
Douglas Hill @douglashill.co · 28/02/2025
At first, I thought it was a Zoom programming error that this popup appears every time I start a video call on my Mac, but it looks like this is a system feature that boring Zoom users like me should be constantly nagged about. Clicking the × doesn’t do anything.
Screenshot of end of Mac menu bar. Popup from camera icon says “Turn On Reactions: Zoom has turned off Reaction effects. Click camera icon and select Reactions to add more impact to your gestures.”
250
Douglas Hill @douglashill.co · 19/12/2024
Acorn is a pretty great Mac app. If I had a time machine, I’d go back and buy version 1 to complete my collection of licence keys.
Screenshot showing a list of Acorn versions from 2 to 8
010
Douglas Hill @douglashill.co · 18/12/2024
In the iOS 18.2 SDK, there are 41 header files that escaped Apple’s standard legal preamble and instead show the Xcode default template with the original filename, module name, author and creation date.
Screenshot of Xcode find navigator. Find › Text › Containing “//  Created by” In iOS SDK. 41 results in 41 files. MXCrashDiagnosticObjectiveCExceptionReason.h iOS 18.2.
1100
Douglas Hill @douglashill.co · 14/12/2024
Well this fixed one issue but introduced another. One day I’ll learn to read comments from my previous self. (Line below the added part.) 🙈
Screenshot of code commit showing added code “guard _article !== oldValue else { return }” with comment on the line below “This same code path is used for updates so it’s important not to return early if the new article is identical to the old article.”.
020
Douglas Hill @douglashill.co · 12/12/2024
We had a nice, relaxed last NSLondon of the year yesterday with a talk from Abizer followed by a quiz. Thanks to Vonage for hosting us and running the quiz.
Photo of people attending talk. Slides show “The Epiphanies of Advent of Code”, “Abizer Nasir”, “abizern.dev”.
020
Douglas Hill @douglashill.co · 11/11/2024
I tried many things and concluded there’s nothing I can do to sign into my newly-created Instagram account. People using Threads will have to wait until Threads rolls out bidirectional ActivityPub support to be able to follow me.
Screenshot of Instagram website showing a reCAPTACHA with the message “Error: Sorry, there was a problem. Please try again.”
000
Douglas Hill @douglashill.co · 01/11/2024
The Nintendo Music app is here to solve all our problems. It’s pretty good! Sadly they blocked it from download on Mac, but at least it runs on iPad.
Screenshot of Nintendo Music app on iPad showing Main Theme (Wii Shop Channel)
010
Douglas Hill @douglashill.co · 10/10/2024
In all the discussion about macOS 15’s screen recording permission alerts, I haven’t seen anyone mention that when the alert is shown, the app already has access to the screen. This is an unusual approach to consent. E.g. here’s the excellent Claquette recording its own alert.
Screenshot of Mac alert: Claquette is requesting bypass the system private window picker and direct access your screen and audio
3102
Douglas Hill @douglashill.co · 10/09/2024
Xcode now has a Hide Listed option for filename extensions. I want to hide .swift but show everything else, so this is much nicer than before where I had six rows of extensions listed.
File Extensions: Show Listed: gif, icns, jpeg, jpg, png, tiff, plist, strings, stringsdict, entitlements, bundle, html, htm, xcconfig, sh, zipFile Extensions: Hide Listed: swift
000
Douglas Hill @douglashill.co · 10/09/2024
Which iOS 18 do I want? (If I tap through, the one at the bottom is actually 18.1.)
Screenshot of iOS Settings app showing iOS 18 in the main area and at the bottom “Also Available: Upgrade to iOS 18”
000
Douglas Hill @douglashill.co · 10/09/2024
⚠️ The Shortcuts Save File action doesn’t work for me on macOS 15 Sequoia in a trivial example. It asks for permission, then fails anyway. Giving Shortcuts Full Disk Access didn’t make any difference. Happens with folders other than Desktop too.
Alert asking: Allow “Save File” to access your “Desktop” folder?Alert saying: You don't have permission. The file couldn’t be opened because you don’t have permission to view it.
000
Douglas Hill @douglashill.co · 04/09/2024
Done with my lightning talk on zoom transitions at iOSDevUK 2024. (Not recorded.) Here’s the sample code. Thanks to Vicente Garcia for the photo.
Photo of Douglas on stage at iOSDevUK
011
Douglas Hill @douglashill.co · 19/08/2024
Green shield bug
Close up photo of a green shield bug on concrete
000
Douglas Hill @douglashill.co · 07/08/2024
Big day! Automated upload of App Store release notes for all languages now for visionOS with fastlane 2.222.0. This will save so much tedious pasting.
Screenshot of App Store Connect website for the PDF Viewer app. What's New in This Version for visionOS App Version 2024.10: Testing the Vision metadata upload using fastlane!
010
Douglas Hill @douglashill.co · 16/07/2024
Scotland was beautiful but cold (14ºC in the day). We went swimming, but also booked a sauna on the beach so it sort of balanced out.
Photo of sandy beach with people in the seaPhoto of grass in foreground and rocky beach beyond
000
Douglas Hill @douglashill.co · 14/05/2024
Maybe a bug, but I’m no longer able to browse purchased movies in one list in the TV app. Have to browse by genre, which is a game of hide-and-seek given how fuzzy the boundaries are. Worst genre is ‘foreign’, which is a concept I reject and associate with xenophobia.
Screenshot of iPad TV app showing genres: Action & Adventure, Comedy, Drama, Foreign, Horror, Independent, Kids & Family, Romance, Sci-Fi & Fantasy, Thriller
000
Douglas Hill @douglashill.co · 27/04/2024
Trying to write self-documenting ‘code’ in Shortcuts by using clear variable names. This is just to disable a thing, which I think is very common in programming, but it’s so cumbersome. Hoping we get a Swift environment for Shortcuts at some point.
Screenshot of iPad Shortcuts app with the following steps: Comment: “While ‘Delete folder if empty’ does in fact delete the folder, the ‘Run Shortcut’ action then fails with ‘Couldn’t communicate with a helper application’, which prevents *this* shortcut from running further. Therefore disable this cleanup. (It’s also annoying having to confirm the deletion every time.)”; Text: “false”; Set variable “Enable Empty Folder Cleanup” to “Text”; If “Enable Empty Folder Cleanup” “is” “true”; Get file from “Content” at path “Path/”; If “File” “has any value”; Run “Delete folder if empty”; End If; End If
000
Douglas Hill @douglashill.co · 11/04/2024
Apparently PDF Viewer made us a nice round TEN MILLION DOLLARS overnight. 🤨
Screenshot from App Store Connect website showing $10.0M proceeds, up more than 999%, last 24 Hours, Apr 10 - 11, 2024
100
Douglas Hill @douglashill.co · 18/02/2024
Sölden today. Decent snow at glacier level only. Overcrowded (not pictured). I was amused by the announcement about the “zero zero seven elements” experience.
Snowy mountain photo with a ski run in the foreground, blue sky, and clouds between the peaks further away.
010
Douglas Hill @douglashill.co · 02/02/2024
And… PDF Viewer for Apple Vision Pro is out. The highlights are in the announcement post.
Screenshot showing a thumbnail grid of pages in a magazine in an Apple Vision Pro window in a museum.
000
Douglas Hill @douglashill.co · 24/01/2024
Just in case anyone happens to have an Apple Vision Pro, you can now download PDF Viewer from TestFlight!
Screenshot of PDF Viewer app on Apple Vision Pro simulator with a document view settings open over a single sepia page of text
000
Douglas Hill @douglashill.co · 22/01/2024
Submitted PDF Viewer for Apple Vision Pro for app review, complete with upscaled and cropped screenshots. Hopefully it works!
Screenshot of PDF Viewer app on Apple Vision Pro simulator with a document outline open over a double page spread showing snowy hills
020
Douglas Hill @douglashill.co · 18/01/2024
Speaking of Trainline, Google are scamming them here selling ads for their own service doing what I’m already doing. 🇮🇹
Screenshot showing looking at tickets from Bari Centrale to Rimini on the Trainline website, with an ad for Trainline with the text “Trains all over Europe? Totally.”
000
Douglas Hill @douglashill.co · 11/01/2024
Pro tip: to follow Apple’s style guide about not splitting Apple Vision Pro onto multiple lines, create a text replacement that already includes non-breaking spaces.
Screenshot showing iPad text replacement settings with Phrase “Apple Vision Pro” and Shortcut “vp”
000
Douglas Hill @douglashill.co · 10/01/2024
Some of my Christmas baking. Not-quite Linzer Augen: Panettone and biscotti: Cheese-stuffed bread balls with sweet peppers:
Photo of a plate filled with sugar dusted double-layer cookies.Photo of crunchy little fruit and nut filled bread slices, and a tall round bread/cake dusted with icing sugar.Photo of a large plate of bread balls topped with cheese and herbs, with will little peppers around the edge.
030
Douglas Hill @douglashill.co · 08/01/2024
Style guides are hard (source) They’ve done this using CSS white-space: nowrap: Apple Vision Pro — but missed it in some places. An alternative is to use non-breaking spaces (option + space): Apple Vision Pro — this will work if CSS is removed, such as in my reading app.
Screenshot of Apple webpage highlighting the text “Don’t break Apple Vision Pro over two lines.” and further down showing that same text split over two lines.
031
Douglas Hill @douglashill.co · 31/12/2023
With instructions for party tonight of “most surprising party snack”, I made miso-walnut onigiri.
Photo of ten rice balls, each wrapped in a band of nori seaweed.
010
Douglas Hill @douglashill.co · 17/12/2023
Christmas baking commences! Made these for the local “mince pie run” this weekend.
Close-up photo of mince pies with star shaped pastry top on a cooling rack.
010
Douglas Hill @douglashill.co · 02/12/2023
Amazing views over the mist on my run today.
Photo from hilltop with trees in foreground and mist illuminated by the sunset covering the distance. The sun is low and orange on the right.Photo from hilltop with trees in foreground and grey mist covering the distance.
010
Douglas Hill @douglashill.co · 01/12/2023
Second day off work. Almost all the day was taken up with some errands in town, a misty and frosty run in the woods, and putting yesterday’s course into practice making ramen and gyoza at home.
Photo of frosted trees in bracken with a very misty sunset view beyond
010
Douglas Hill @douglashill.co · 30/11/2023
Started a long weekend with a day at cookery school making ramen and gyoza. Learned a lot, and it was very tasty. Went as not vegetarian for the day.
Photo of ramen bowl with chicken, eggs, spring onions, daikon and noriPhoto of eight gyoza with dipping source
000
Douglas Hill @douglashill.co · 25/11/2023
Link to Bluesky profile in Bluesky app => Potentially Misleading Link. You couldn’t make this up.
Screenshot of Bluesky app showing alert: Potentially Misleading Link; This link is taking you to the following website:; https://bsky.app/profile/douglashill.co; Make sure this is where you intend to go; Visit Site; Cancel
110