Advertisement · 728 × 90

Posts by Douglas Hill

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.

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.

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.

4 days ago 0 0 0 0

Interesting evening yesterday at Rust London learning all sorts. Dan Groshev spoke about picking a dominant colour from an image. (I used a similar approach in Jamie Oliver‘s Recipes in 2014.) Jérôme Étévé gave a talk on Mokaccino and Evadne Wu on sandboxing AI agents.

2 weeks ago 1 0 1 0

At NSLondon we’re meeting for coffee on Sat 18th followed by a stroll in Hyde Park if the weather is fine. Bring a laptop and show your coding project. I’ll be there with non-iOS projects.

2 weeks ago 2 0 0 0

This was me a couple of months ago. I love it.

1 month ago 2 0 0 0

I hope everyone going has a fantastic time at NSLondon at Apple Battersea this evening. Beautiful space, and both talks sound really useful. Bit of a shame I’m away.

1 month ago 3 0 0 0
Screenshot of macOS volume change notification showing the title External Headphones

Screenshot of macOS volume change notification showing the title External Headphones

One day I assume there will be a Mac with Internal Headphones to explain the need for this precise copy writing.

1 month ago 5 0 0 0

Here’s a roundup of upcoming Swift/iOS conferences in Europe. UK conference scene is strong!

1 month ago 2 0 1 0

Hmm that‘s a good point. In the past I’m sure there was a section at the bottom of the Software Update screen that let you install updates to different major versions when available, but I’m not seeing that now (even when moving off the iOS 18 beta track).

1 month ago 0 0 1 0

Great evening at Engineering Kiosk Alps hosted by Cloudflight. Similar format to NSLondon. Talks:

Anna Larch: Nextcloud is good place to work. Like Nutrient: ~160 people, remote, high trust, no fixed hours.
Beate Öttl: Still good to avoid building the wrong thing fast.

1 month ago 3 0 0 0
Advertisement

They're good at bringing security patches to older versions. E.g. last iOS 15 update was 20 days ago, so I'm not too worried about that.

2 months ago 0 0 1 0

This trick from Cult of Mac to disable iOS 26 update nags seems to be working well on my iPad running iOS 18: Enable iOS 18 Developer Betas. Suddenly the OS is “up to date”. No more red badges or notifications that can’t otherwise be turned off.

2 months ago 3 0 1 0

In 2025, I read 50% more books than in 2024, all DRM-free, mostly audiobooks. I wrote about my reading trends and shared some book picks from the year, featuring Min Jin Lee, Marjan Kamali, Sarah Wynn-Williams and more.

2 months ago 1 0 0 0

Removed LinkedIn way to follow my posts, since it wasn’t working anyway. The cross posting from Micro.blog doesn’t seem reliable, and I don’t want to look at LinkedIn to check for replies.

2 months ago 0 0 0 0
iPhone mini simulator home screen screenshot showing a red status bar showing only the text “😳 rdar:45025538”

iPhone mini simulator home screen screenshot showing a red status bar showing only the text “😳 rdar:45025538”

😳 rdar:45025538

2 months ago 4 0 0 0

I’ll be away, but London people we have an NSLondon pub evening this coming Thursday 29th on Chancery Lane. This is in coordination with the organisers of the SwiftCraft conference in Folkestone in May, which had great speakers last year and is in a lovely venue by the sea.

2 months ago 1 0 0 0
Screenshot of Vivaldi browser showing suggestions in Nutrient API documentation search: beta, aiassistantview, scope, aiassistantbutton, changetag, v1/betaGroups/{id}/relations

Screenshot of Vivaldi browser showing suggestions in Nutrient API documentation search: beta, aiassistantview, scope, aiassistantbutton, changetag, v1/betaGroups/{id}/relations

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.

3 months ago 1 0 0 0
Advertisement

Not really. From quick research, it sounds like roughly half of people use two or more languages.

3 months ago 1 0 0 0

For me, Apple’s dictation (including Voice Control) really, really doesn’t want to recognise the words ergonomic, ergonomics or ergonomically. After dozens of tries, every time except once it instead wrote economic, economics, or economically.

3 months ago 1 0 1 0

Fantastic to see the Swift Craft conference coming back next year with tickets now available. Great talks last year in a nice setting. It’s the closest Swift conference to London after the Server-Side Swift Conference.

3 months ago 1 0 0 0
Preview
Swift Craft : News archive

We are back at the Leas Cliff Hall, May 18-20, 2026! 🌊

Super Early Bird tickets just dropped. Lowest price ever (£249 Indie / £349 Corp). Strictly limited to the first 10 tickets

Grab yours before the price goes up: swiftcraft.uk/news

#iOSDev #SwiftLang #SwiftCraft26

3 months ago 4 1 0 0

After complaining earlier this month about Xcode’s handling of branch changes, I found an older post/tweet about nearly the same thing from 9 years ago, although I don’t know what that was replying to. So many old tweets are gone. Times change, but not so much Xcode.

4 months ago 2 0 0 0
Micro.blog Post short thoughts or long essays, share photos, all on your own blog. Micro.blog makes it easy, and provides a friendly community where you can share and engage with others.

Cross-posting from Micro.blog. The Bluesky API supports rich text: docs.bsky.app/docs/advance...

4 months ago 1 0 0 0

SwiftUI in iOS 26 adds equivalents of UIBarButtonItem.SystemItem.done and UIBarButtonItem.SystemItem.cancel to get standard Done and Cancel buttons. Here’s the code we're using to wrap this new API with fallbacks for older versions.

4 months ago 1 0 1 0

The app icon is green because I happen to often use Xcode and Simulator at the same time. Two apps with icons that are the same shape and same colour and so are terrible at their main purpose of distinguishing the app.

4 months ago 0 0 0 0
Screenshot of alert from Xcode: The file

Screenshot of alert from Xcode: The file

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.

4 months ago 0 0 0 0
Advertisement

We’re seeing a UIKit crash introduced in iOS 26.1: NSInternalInconsistencyException -[UIPencilInteraction _handleHoverGestureRecognizer:]: Received updates from an unknown hover gesture recognizer Full post

4 months ago 1 0 0 0
Photo during Peter Friese’s talk — Have Your Cake and Eat It Too: Hybrid AI with Apple Intelligence and Firebase AI Logic

Photo during Peter Friese’s talk — Have Your Cake and Eat It Too: Hybrid AI with Apple Intelligence and Firebase AI Logic

Photo during Hannah Downey’s talk — Compose Yourself: SwiftUI and its Android Counterpart

Photo during Hannah Downey’s talk — Compose Yourself: SwiftUI and its Android Counterpart

Photo during Giordano Scalzo’s talk — AI-Accelerated Mobile Development: From idea to build, faster than ever

Photo during Giordano Scalzo’s talk — AI-Accelerated Mobile Development: From idea to build, faster than ever

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.

4 months ago 3 0 0 0

Since iOS 17, we saw logs about “Abnormal number of gesture recognizer dependencies”. We never observed an actual issue, and it seemed like lot of work to add ‘gate’ recognisers to silence some logging. Good news is this logging was removed in iOS 26, so it was worth holding out. Full post

4 months ago 2 0 0 0

Looks like lawyers are writing the AppKit documentation:

Methods specific to the NSTextInputClient protocol are intended for dealing with text input and generally aren’t suitable for other purposes."

4 months ago 2 0 0 0
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?

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?

That’s some long overdue cleanup. Ask your parents about Default-568h@2x.png.

5 months ago 3 0 0 0