Douglas Hill’s posts in 2023

11 January 2023

Just testing my micro blog. Here’s some recent baking.

Photo of Linzer Augen cookies with stars cut out the middle, and some mince pices on the right »

12 January 2023

How I used JavaScriptCore to add a JavaScript dependency to my iOS app to remove tracking parameters from URLs. Read more »

18 January 2023

Recently I was working with NSPredicate, and a situation that looked fairly basic wasn’t working as I expected. I wrote about a new surprise with this old API. Read more »

19 January 2023

⚡️🚙 London ➡️ Innsbruck, over two days. It’s time for mountains and skiing. »

21 January 2023

I just found iOS 16 added viewing/copying the password of a known Wi-Fi network. Go to Settings > Wi-Fi > tap the (i) by the network > Password > auth with Face/Touch ID.

I used to use Keychain Access on my Mac to copy a password to Nintendo Switch. Much nicer from iOS. »

App Store ads are still keeping it classy. (To be fair, “meetup” could be interpreted this way, but the difference in tone is jarring between the ad and Meetup, the event management platform I’m looking for.)

Screenshot of App Store app on iPhone showing search for “meetup” with most of the screen taken up by an ad for “PURE Hookup” “Casual Chat” Screenshots for this app say “DATING SHOULDN’T BE BORING” “ALL DESIRES SHOULD BE SPOKEN ALOUD” “LET YOUR IMAGINATION RUN WILD”. Below is the half-visible app for the service called Meetup. »

22 January 2023

Mixed conditions in the Zillertal to start my ski season. I understand it’s been dry until recently so this a huge improvement.

Photo of valley between mountains. Snow covered slopes and trees. Some sunshine with layers of clouds around the mountains.Snowy mountain peak peeking out of a layer of cloud. Ski slope in the foreground. »

There’s something up with the language model in iOS dictation that resulted in it transcribing “strawberry moose” instead of “strawberry mousse”. I guess homophone resolution is still tricky. 🍓🦌 »

23 January 2023

We have a PDF Viewer app user who updates their 1 star review after most updates to express disappointment we don’t translate our release notes into German. It’s amazing having such dedicated users. »

26 January 2023

I didn’t notice this Reload Organizer command before. You can use to force Xcode to fetch new crash reports etc. from App Store Connect.

Screenshot of the Mac menu bar for Xcode with the View menu open and “Reload Organizer” highlighted. It has the keyboard shortcut control + R. »

27 January 2023

Realised a couple of recent articles showed up on and Twitter but not in feeds. For the record:

28 January 2023

A bit icy but otherwise great conditions in Ischgl/Samnaun today. AKA Expensive Swiss Lunch Day.

Photo looking down an uncrowded ski run with snowy mountains in the background. Blue skies. Clouds hanging lower down in the valley. »

29 January 2023

Ostensibly proving I’m not a robot, but actually practising my French vocab.

Screenshot from website showing:  Avant de vous identifier… Cliquez sur les photos dans l’ordre indiqué pour confirmer que vous n’êtes pas un robot.  Follows by a grid of photos of a dog, a flower, a plane, an elephant and so on. »

30 January 2023

An update to my reading app is out that adds Shortcuts actions to automate and integrate with other apps. You can filter/sort based on many properties, including word count. There are also new lists for “Short Articles” and “Long Articles”.

Screenshot of Shortcuts app. Left side of screen shows a shortcut with these actions: Find All Articles where All of the following are true: Author is Douglas Hill and Date Saved is in the last 1 month and Title contains JavaScript. Sort by: Word Count. Order: Biggest First. Limit: Off. Choose from Articles. Open Chosen Item. Right side of screen shows all available actions for the Reading app: Add Articles, Delete Articles, Find Articles, Get Body of Article, and Open Article. »

1 February 2023

I’m intrigued how Pages on iOS displays localised font styles. I guess it might have an adjective parser (e.g. to know that “Ultra Light Italic” is two terms) and a long list of translations for common adjectives (regular, book, roman, italic, oblique, etc).

Screenshot of Pages font style picker in Japanese.

Screenshot of Pages font style picker in German.

Screenshot of Pages font style picker in English. »

5 February 2023

Switching my Safari search engine from Ecosia back to DuckDuckGo. Number and size of ads with Ecosia reached the point where I often don’t see any results without scrolling. »

9 February 2023

Naming an ActivityPub server (mostly Mastodon) with “social” in the domain name is missing a trick by not going for “pub” instead:

10 February 2023

Rotating an iPad home screen without widgets is the worst of both worlds: icon spacing is uneven AND the number of icons per row changes. Adding a widget magically fixes the first problem, and by strategically positioning widgets, you can fix the second problem too.

Screenshot of iPad home screen in landscape showing first row: Messages, Photos, Maps, 1Password, Unread, Mail; and second row Fantatical, Settings.

Screenshot of iPad home screen in portrait showing first row: Messages, Photos, Maps, 1Password, Unread; and second row: Mail, Fantatical, Settings.

Screenshot of iPad home screen in landscape showing first row: Carrot Weather widget, Messages, Photos, Maps, 1Password; and second row: Carrot Weather widget, Unread, Mail, Fantatical, Settings.

Screenshot of iPad home screen in portrait showing first row: two Carrot Weather widgets; second row: Messages, Photos, Maps, 1Password; and third row: Unread, Mail, Fantatical, Settings. »

In around 48 hours, I’ll change my ActivityPub (Mastodon) address from to Unfortunately the transfer won’t be automatic so if you’re following already you’ll need to follow again. »

We have a review of PDF Viewer for Android comparing the precise temperature their phone gets when running our app vs. a competing app. I appreciate learning new ways to see the world. »

11 February 2023

Spent a bit of time updating my reading app’s lists to use more standard UI. Cut the code down by 300 lines. Had in mind to rewrite lists in SwiftUI to dramatically trim the code so I could focus more on the core reading experience, but so many details weren’t right in my POC.

Screenshot of reading app showing a narrower sidebar with a bright blue highlight.Screenshot of reading app showing a wider sidebar with a grey highlight. »

I’ll switch my ActivityPub (Mastodon) address from to in ~8 hours. Not changing host; just a better name. The new name won’t work until I switch, and then the old name will disappear. Couldn’t think of a better way. »

12 February 2023

Switch over to ActivityPub/Mastodon name is complete. I want to write more about the new setup soon, but now it’s time to hit the slopes. ⛷ »

13 February 2023

Fantastical subscription just renewed after a 54% price increase. It’s a terrific app (one of the best) but to be honest I wouldn’t mind splitting this with someone. 😅

Screenshot of iOS notification from Monzo that reads: £59.99 at Apple; Want to split this with someone? »

15 February 2023

An annoying little thing since Xcode 14 is sometimes the editor loses keyboard focus when jumping between files. The insertion point can end up in the find navigator search field. I’m getting good at instinctively pressing cmd-J to re-focus the editor. »

16 February 2023

I set up a basic help page for my reading app, linked from the top-level nav in the app. It’s odd having an app that displays webpages and then jumping to the browser, but I want to be able to update this easily. »

22 February 2023

Amazing to see the team effort that went into adding editing PDF text to our SDK. Uses UITextInput + UITextInteraction for native inline editing while using our own renderer. PSPDFKit 12.1 for iOS Adds Content Editor »

26 February 2023

Today marks four years since my last flight within Europe. I have no intention to change this. Coincidently that flight was Vienna to London, which I would have thought was too far to do in one day on trains, but nope: I can confirm it’s possible. »

28 February 2023

On iOS 16 UIColorPickerViewController can leave its dropper on screen, blocking touches across the system until you force restart by holding two buttons. We’re considering reverting to our custom colour picker. FB12017635 »

Skiing last Sunday in Kitzbühel. Discovered the delightful run 55.

Snow covered small trees with nothing but pure white clouds behind.

Ski run arrow marker with nothing else but pure white visible.

Distant view of skiing gondola fading in the clouds, with snow covered trees in foreground.

View of the snowy valley with mixed clouds and blue sky. »

2 March 2023

I would have let my Tweetbot subscription renew in early February. I guess it was removed from sale, but weirdly Apple shows the wrong error: payment method declined. The payment method is fine (other stuff has gone through since).

Screenshot of App Store subscriptions:  Tweetbot for Twitter Tweetbot Yearly Your payment method was declined. To avoid interruptions to your subscriptions and purchases, update your payment method. Update Payment Method Cancel Subscription If you cancel, you will immediately lose access to your subscription. »

14 March 2023

We track downloads with Progress (NSProgress) and add that as a child of the Progress shown in the UI. Trouble is, Progress can only be added a child once, but the user can pop and push UI many times while downloading. Wondering if this is just not appropriate use of addChild. »

The use of the terms parent and child for hierarchies isn’t that good a metaphor given the principle (for hierarchies) that parents always outlive their children. »

23 March 2023

Innsbruck 🚆 Vienna »

28 March 2023

Managed to leave Handoff turned on for 1 hour before the constant shifting of the Mac dock was too much. It’s strange that Universal Clipboard requires Handoff, and Universal Control says it requires Handoff but actually sometimes works when Handoff is off. »

29 March 2023

Quick Look has been broken on my Mac for a while, but today I realised it works fine from Alfred, and was actually a Finder-specific problem. Amazingly, quitting and relaunching Finder fixed it. It’s like updating to Mac OS X 10.5 Leopard all over again! Such a great feature. »

14 April 2023

Is it just us, or were app status change email notifications not sent by App Store Connect in the last couple of days? Notifications are enabled. Nothing in spam. »

18 April 2023

Busy week for iOS in London with NSCoder Night tonight and NSLondon tomorrow. »

23 April 2023

I didn’t receive the UK government test emergency alert because at home my iPhone is always in airplane mode, but I suppose a life-threatening event the government could warn me about is more likely to happen outside of home. »

24 April 2023

I just found out you can press Q while using the iPad cmd-tab app switch to remove an app from the switcher, but it doesn’t terminate the app. Could be useful to clean up before a demo, but otherwise I’m not sure why you’d do this. »

5 May 2023

We’re hiring for an experienced iOS engineer on my team at PSPDFKit. Our iOS team is 5 engineers making an SDK, so expect varied tasks including public API design that will affect hundreds of apps. Fully remote. ➡️ More info and how to apply »

7 May 2023

How best to handle “pencilling in” on a calendar? I end the event name with ? if the date is uncertain and/or wrap the name with () if my attendance is uncertain. »

8 May 2023

What’s the best resource these days for checking iOS version usage stats? Apple’s numbers aren’t updated often and don’t say the percentage on iOS 14, which would be the most useful value for deciding when to drop iOS 14. »

If we were only making an app, we could use the metrics on iOS version usage from our app on App Store Connect, but we make an SDK and don’t collect device analytics from our SDK customers. »

9 May 2023

Wonder if the Unsubscribe link in TestFlight email notifications will ever, you know, just unsubscribe them, rather than sending an email to the developer asking us to remove them, which requires at least App Manager role. (Users can already self-unsubscribe in the TF app.) »

Following up on my post yesterday about iOS version usage stats, here’s data aggregated from three of Mixpanel’s graphs:

13 May 2023

If Apple allowed iOS apps to use payment methods other than App Store IAP, the UX could be improved by using Apple Pay to prevent sometimes needing to approve payments in your bank app (with 3-D Secure). »

15 May 2023

I’m looking for ways to remove inactive TestFlight testers because we’ve hit our 10000 people limit for PDF Viewer. Can’t see install info exposed by the App Store Connect API. There’s this fastlane plugin, but it’s giving me ASC API errors. »

Mac Dictionary app is having trouble parsing the Wikipedia page on strikethrough, resulting in most of the article being crossed out.


16 May 2023

Fantastic to see the Text Size setting on Mac. Hope at WWDC we see this extended automatically to Catalyst and iOS apps on Mac (this feature has been on iOS for 9 years). SwiftUI/AppKit API support would be extra cool. »

17 May 2023

With Apple’s updates ahead, I wrote how we keep our code compiling with both old and new Xcode June–October. Especially important for Mac Catalyst apps where the SDK is likely to be reverted in September. Read more »

18 May 2023

Stage Manager on the Mac never sounded interesting to me so I never tried it. Then yesterday I stumbled across this setting, and thought I’d take a look. I think I really like it! It makes the Mac more iPad-like and fits how my brain works. »

24 May 2023

Really excited to have two NSLondon events during WWDC week:

25 May 2023

Registration is now open for our server-side Swift NSLondon event at AWS during WWDC week. »

1 June 2023

Around we go again. Today is my 8th PSPDFBirthday. 🎂 »

My top wish for WWDC: Spotlight on iPad to be as fast as it was on iOS 14. (Ideally as fast as Alfred was a decade ago on slower hardware.) »

The readability problems with forms in Ventura are also a problem at narrower widths with iOS menus aligning the images away from the text. Less severe, but still harder to scan. »

3 June 2023

We have a few spaces left at our NSLondon WWDC keynote viewing party at Deloitte Digital in London. This Monday from 17:30. »

Looking back at old photo albums, for some reason I have one called “WWDC highlights” containing only these three photos, one each from 2019, 2018 and 2017. Because of course the vegetarian boxed lunches were… the highlight of the week?

Screenshot of iPad Photos app showing an album titled “WWDC highlights” containing three photos: a boxed lunch with a green burrito and a brownie not really filling a plastic box, a large room with long wooden-topped tables busy with people looking at MacBooks, and a bottle of Odwalla 100% juice smoothie. »

5 June 2023

New text selection magnifying glass is bold.

iOS 17 magnifying glass for selected text, which is larger, has a stronger magnifying factor, and a blue outline. The words “operating system updates” are selected.&10;&10;Full text in screenshot:&10;&10;“Over the last several years, Apple has settled into a consistent cycle with updates to its platforms. The company won’t publicly commit to future plans, but as a software developer on Apple platforms, it’s important to know what to expect to plan your work. Apple doesn’t release all its yearly operating system updates at the same time, so some special considerations are needed for cross-platform apps — which is what this article will explore.” »

6 June 2023

If the new product line is called  Vision, will AirPods be renamed to  Hearing? »

8 June 2023

I noticed this WWDC session (and probably others) never says “Vision”. Always “this platform”. Secrecy at work! »

9 June 2023

Not fully understanding the new beta installation flow. I’m signed into my personal account (not my developer account) and given the option to change accounts, but not sure what difference this would make.

Screenshot of alert in the iPad Settings app: Apple ID for Beta Updates: Signed in as You can sign in with a different Apple ID that is enrolled in the Apple Beta Software Programme or Apple Developer Programme. Button options: Use a different Apple ID… Cancel »

19 June 2023

I feel I must be missing something, but I can’t find any info saying Apple Volume Purchase Program (VPP) for education and businesses is available for in-app purchases and subscriptions. Are there even any paid-up-front apps anymore? »

24 June 2023

iOSDevUK ticket booked. Thinking about going hiking in Snowdonia the weekend before. 🏴󠁧󠁢󠁷󠁬󠁳󠁿 »

4 July 2023

My past tweets are now available on my website. No sign in required. In the URL, replace “” with “”. Read more »

6 July 2023

Added the missing tweets in threads/tweetstorms on my website. The best examples are my open source advent, an iPad mini comparison and this train journey. »

12 July 2023

Mac quarantine seems a bit eager. Shows these scary alerts when opening files with the quarantine flag that are set to open with anything except the default app (the and extended attributes). This is macOS 13.4.1.

Mac alert: "1979-12-MVC.pdf" cannot be opened because it is from an unidentified developer.
&10;macOS cannot verify that this app is free from malware.
&10;Preview created this file today at 11:05.
&10;OKMac alert: macOS cannot verify the developer of "1979-12-MVC copy.pdf". Are you sure you want to open it?
&10;By opening this app, you will be overriding system security which can expose your computer and personal information to malware that may harm your Mac or compromise your privacy.
&10;This file was downloaded on an unknown date.
&10;Cancel »

visionOS “upcoming events, testing opportunities, and other programs” are still “Available in July”. Are we there yet? »

13 July 2023

I believe Vision Pro is a huge deal for the future of computing, entertainment, and how we interact with the world. I wrote a post exploring how this new platform fits in. Read more »

26 July 2023

visionOS is quite strict. “Spatial presentations are not permitted from popovers.” 🧑‍🏫 »

I thought I heard it was possible to upload Vision apps to TestFlight (even though not many people would be able to install app yet) but it doesn’t seem to be allowed for me.

Screenshot from Xcode: Upload failed with errors: Asset validation failed: Unsupported Xcode or SDK Version. Your app was built with a version of Xcode or SDK that is not yet supported for upload to App Store Connect. For more information about supported versions of Xcode and SDK for Testflight or App Store submissions, view the App Store Connect What's New page ( (ID: 39f7753-0fc9-4cf4-bd61-ae610194f17f) »

28 July 2023

That narrows things down.

The following API for accessing user defaults requires reasons for use. […]

From Describing use of required reason API »

10 August 2023

The new .inspector modifier for trailing sidebars is not available on visionOS 😢

Hard to get a sense at this stage how “desktop-class” Vision apps should be. »

15 August 2023

My first time managing to crash RealityEnvironment in the Vision Simulator. The world fades to black, and it makes a sad noise. »

17 August 2023

If an Apple Bluetooth Magic Mouse/Trackpad/Keyboard normally paired to an iPad is paired to a device you no longer have access to, you can pair it back to the iPad like this:

  1. Plug the peripheral into a Mac
  2. Forget the peripheral from the Mac
  3. The peripheral will now be discoverable for the iPad »

24 August 2023

Since Apple removed the device support files that everyone used, did anyone find a way run an app linked with the iOS 16 SDK on an iOS 17 device? (Other than TestFlight, which is a very slow iteration loop.)

Edit: Using defaults write DVTEnableCoreDevice enabled as suggeted further down that thread worked for me. Presumably there’s a reason this isn’t enabled by default though. »

26 August 2023

Good turnaround on documentation Feedback I sent to Apple. They added the bold text to clarify CKRecord.encryptedValues:

When you enable Advanced Data Protection, the encryption keys are available exclusively to the record’s owner and, if the user shares the record, that share’s participants. »

30 August 2023

Updated KeyboardKit to support iOS 17 and Xcode 15. Xcode 14 is still works too. No functionality changes. »

Wow Xcode 15 beta 8. I don’t recall there being an 8 before. Looking in Xcodes, I see Xcode 11 went up to beta 7. »

Auto-correction with a hardware keyboard on iPad doesn’t seem better on iOS 17. Still need to manually accept suggestions for obvious typos, and as far as I can tell you still can’t accept suggestions with a keyboard. You can at least do it with a mouse now; previously only possible with a finger.

Typed text “improvment” with suggestion “improvement”. »

Self-sizing table view cells were introduced in iOS 8 in 2014. No need to truncate lines of text! Took a few years for them to work well. I wrote some practical tips in 2018. Obviously this is the expectation with SwiftUI.

Apple Mail in 2023: One line for the subject should be all they need. 😐 »

31 August 2023

Updated my reading app for compatibility with iOS 17. In addition, the app now has an archive to keep articles around for easy reference. »

14 September 2023

Nice surprise from the Apple event is that the OS updates are coming to iPhone, iPad and Mac this month. Xcode 15 RC includes the new SDK for both iOS and Mac. No awkwardness like previous years where the updates weren’t synced. Much credit for this: synced updates are really hard. »

19 September 2023

Typing auto-completion is really good on macOS Sonoma; I feel more productive. Shame it‘s not as good on the iPad, which I think is because on the Mac this is on top of more robust auto-correction. »

3 October 2023

➡️ Innsbruck 🚆 Munich 🚆 Frankfurt 🚆 Brussels 🚆 London »

4 October 2023

Seeing a situation on our iOS app like this:

Warnings arrive every time in a sample app. Not sure how to debug this. »

7 October 2023

Oh no I just tried turning on Sonoma’s new text size setting for system apps on my father’s Mac. Messed up the arrangement of the 153 items on the desktop. One of the most disruptive things I could have done. »

11 October 2023

It’s really tempting seeing the try! Swift Tokyo conference announced for 2024. I had an amazing time there in 2019 and stayed in Japan to ski, hike and live in a little village by the sea. But I think I’ll stick with my no flying streak (since Jan 2020) and will ski in Austria instead. »

12 October 2023

With Xcode 15, is there a way to get rid of wireless options in the run destination picker? This keeps switching back to devices that aren‘t necessarily in the same room as me instead of the one that’s plugged in!

Screenshot of Xcode run destination picker showing Doug's iPad mini (selected, wireless), Doug's iPad Pro (wireless), Doug's iPhone SE (wired). »

13 October 2023

Compiling an existing iOS codebase for visionOS breaks the deprecation cycle. You end up with deprecation warnings you can’t silence that aren’t actually a problem. We ought to be able to set our visionOS deployment target to -1.0 (two versions back) to match our iOS deployment target of 15.0. »

18 October 2023

Any recommendations for a plain text notes/scratchpad app with CloudKit sync? Importance: iPad > Mac > iPhone

Bear 1 hit the sweet spot. The Bear 2 editor is too non-standard. Tot adds angle brackets around pasted links. FSNotes has good UI but iCloud Drive sync works poorly for this. »

22 October 2023

Cool a new Swift conference in England, coming next May. »

26 October 2023

I miss the Mac behaviour where some apps would quit automatically after closing their last window. Seems excessive needing to close and quit to get rid of an app. Perfect example of why I prefer working on my iPad. »

1 November 2023

When you get a new bug B with a description identical to an older bug A, and you can fix B by reverting the fix for A, but that fix didn’t include a test or concrete steps to reproduce. »

3 November 2023

I’m really pleased how well our NSLondon events are going with our expanded organisers team. Great turnout and talks yesterday evening at Onfido. »

We hit the 10,000 limit on TestFlight testers for PDF Viewer a while ago. Using the new filtering options, I removed the 10% of these that had never installed a build, so it’s now possible to sign up again.

Tip: Filtering within groups was unreliable. Filtering from “All Testers” worked better. »

7 November 2023

Pull to reload in Safari on iPad continues to be a bad feature. I often trigger it accidentally, there’s usually no logical reason why a webpage would reload in respose to this input, and there’s a reload button anyway. »

Back from a terrific weekend seeing friends in Berlin. I worked all day on the train from London over there and back, so it was time-effective without flying. 🚆 »

15 November 2023

Accidentally left the iPad Simulator recording the screen for 7h 52m. The file is only 200 MB though. MPEG is efficient when there‘s no difference between the frames. »

Looking forward to seeing people today for an NSLondon pub evening while Chris Eidhof is in London. »

20 November 2023

Received a Bluesky invitation code many many months after registering my interest. Now I can finally “join the early conversation”. »

25 November 2023

Added Bluesky as another way to follow my posts (not that there have been many recently). This is set up a mirror of what’s on ActivityPub/ I’m »

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:;; Make sure this is where you intend to go; Visit Site; Cancel »

30 November 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 nori

Photo of eight gyoza with dipping source »

1 December 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 »

2 December 2023

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.

Dreamy views over the mist on my extra frosty run today. »

6 December 2023

Is there a way to have the initialiser of an Objective-C class be migrated into Swift as a required init? This forces subclasses to override the initialiser, which is necessary for copying an instance of a subclass to return another instance of that subclass. »

8 December 2023

John Gruber:

This trick does not work in Safari on iPadOS, because iPads are baby computers where you can’t select more than one thing at a time.

True, iPad is missing keyboard support in this case, but generally I find multiple selection easier on iPad. Multitouch dragging works fine for Safari tabs. It’s not uncommon I start dragging something on Mac then realise I can’t do what I want because there‘s only one pointer. »

11 December 2023

Sent feedback about the “required reason” APIs that we need to read the system boot time to destroy information about the system boot time that we get from UITouch.timestamp. (And yes, you could use UITouch.timestamp to help with fingerprinting.) »

17 December 2023

Close-up photo of mince pies with star shaped pastry top on a cooling rack.

Christmas baking commences! Made these for the local “mince pie run” this weekend. »

19 December 2023

App review is working quickly to get through everything this week. Managed to get a PDF Viewer update built and released on the same day. »

20 December 2023

Great team effort wrapping up the year at PSPDFKit with one last release. We overhauled how we digitally signing documents, ending up with an API that’s simpler and more flexible.

We’ve also been iterating on our public preview for visionOS that we announced in September. »

21 December 2023

I added Tumblr as another way to follow my posts. Perhaps not the best place for my mostly tech-related posts, but it’s a checkbox on, and if someone prefers Tumblr to other options that’s fine by me. I’m douglashill. »

22 December 2023

It’s a shame macOS Sonoma dropped the smooth animated transition between the phases of Dynamic Wallpapers. I still use the wonderful Big Sur coastline photos, and it’s jarring when the photo suddenly changes time of day. »

Imagine if you were having a quiet Friday at work just before Christmas… and then at 6pm you discover the live version of your app is crashing at launch on older iOS versions. Read more »

26 December 2023

Added a privacy manifest for my KeyboardKit project. Nothing to declare. »

31 December 2023

With instructions for the 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. »