Douglas Hill’s recent posts
Follow/subscribe for updates
18 February 2025
Really cool to see our larger NSLondon organising team allowing us to try different kinds of events for the iOS developer community. This Sunday we’re doing a walk between the Battersea and Regent Steet Apple stores, passing Buckingham Palace. (Too bad I can’t join because I’m in the Alps. 😄) »
16 February 2025
Automatic translation is hard. On a translated webpage that was supposed to show an IBAN for bank transfers, Safari ‘translates’ IBAN (which is already English) and removes part of the code.
Original:
IBAN: AT33 XXXX XXXX XXXX XXXX
Translation:
Account number: XXXX XXXX XXXX XXXX »
14 February 2025
Received an email from Apple about new South Korean rules on subscription trials — which came into effect already — saying “additional consent must be obtained” and “The App Store will help to get consent”. Unclear what we need to do, if anything. Maybe safer to remove the app from sale in Korea? »
12 February 2025
Did anyone manage to join the App Store Small Business Program? I’ve requested this twice for our company account and never heard anything back. »
Wondering if it would be a good idea to replace my M1 Pro 14-inch MacBook Pro with a 13-inch MacBook Air (if it’s updated to M4 or M5 sometime soon). On the one hand, the 14-inch Pro is a bulky accessory to my iPad just to run macOS. On the other hand, we have a lot of code to compile. »
Added LinkedIn as an experimental additional way to follow my posts. I’ve heard that while the social media landscape has been tumultuous, LinkedIn has been a rock. Everything will be cross-posted from my website, same as how Bluesky etc. are set up. No filtering for only ‘professional’ posts. »
3 February 2025
The update to Swift Playground last week added the iOS 18 and macOS 15 SDKs. It’s 4.5 months after these SDKs shipped in stable Xcode and nearly 8 months after the first Xcode 16 beta. Given this app is the only option for making iOS apps on iPad, Xcode for iPad can’t come soon enough. »
31 January 2025
In 2024, I read about as many books as I read in the three preceding years combined. I wrote a post reflecting on trends in my reading habits and sharing some of my favourite books from last year. »
Today is the first time I’ve noticed Apple Mail display a Verified Logo for a sender. Ironically, this is on an obvious PayPal spam email. »
30 January 2025
Apple’s text autocompletion has gone too far. It can take the valid word I want and replace it with a longer word with the same prefix. For example, I want to type “when” but it’s replaced by “whenever”. “Git” may be changed to “GitHub” and “app” to “Apple” (with a capital A, naturally). »
28 January 2025
I wrote a post comparing ShareLink
, mailto links, and MFMailComposeViewController
so you can choose best way to send emails in an iOS app. »
27 January 2025
Interesting finding: UIPointerInteraction
updates continuously while scrolling on Mac, but not on iPad (only when the pointer moves on screen). The Mac behaviour is more correct because the content under the pointer might change when scrolling, but this makes the performance way less forgiving.
»
22 January 2025
Is there a best practice for implementing description
and debugDescription
for main actor classes with Swift strict concurrency? I’m going with checking the thread for now, which works, but seems off. »
I requested to change our company name displayed on the App Store from PSPDFKit GmbH to Nutrient three months ago and never heard back. Just tried again. Did anyone manage this before? »
20 January 2025
Today it’s five years since I last went on a plane. I continue to have no plans to fly anywhere, while still enjoying slower travel on the ground. Here’s a brief review of my travel last year and in the coming year. »
The M4 iPad Pro introduced haptic feedback on iPad via the Pencil and trackpad. I wrote about how we went against Apple‘s recommendations to get haptics working across both iPad and iPhone. Sometimes, “trust the system” isn’t enough. »
19 January 2025
Booked my ticket for Swift Craft in May. Most European iOS conferences are around Sept/Oct, so it’s nice having this one earlier in the year. (I’d nostalgically call this the UIKonf slot — just before WWDC.) »
7 January 2025
Today’s weird low-level issue: Calls to os_log_with_type
will log <decode: bad range for [%{public}@] got [offs:318 len:1238 within:0]>
if the message has a length from 966 to 1989. The workaround is to split the message in two. »
30 December 2024
Supporting Mac Catalyst also includes apps compiled for iOS running on Apple silicon Macs. I think mailto
links should be the default choice. Best tradeoff of being simple to implement and working in the most places.
»
iOS app sending emails cheatsheet:
- If you need attachments, use
MFMailComposeViewController
- If you need Mac Catalyst, use
mailto
URLs - If you need both attachments and Mac Catalyst, use
ShareLink
/UIActivityViewController
- If you don’t need either, pick one based on the UX
Update: I wrote about this in more depth on our company blog. »
More in the archive