Apple Vision Pro first impressions

Apple PR photo of the Apple Vision Pro viewed from the front.

This morning I tested out Apple’s Vision Pro in an Apple Store. And I’ve decided to write about it, mostly for my own future nostalgia, but also because my experience was markedly different to what’s been widely reported in tech news. I had intended to just buy an Apple Vision Pro on release day, but… Read more

Hiding SwiftUI views

There are several ways to hide a SwiftUI view, although they don’t all agree on what it means to hide the view. Do you want it to be invisible, or actually not there? To make it invisible you need only set its opacity to zero or use the hidden modifier. But the view will still… Read more

Proactive Peek & Reveal on Edge Hover

Screen capture video showing an attempt to grab the scroll handle and how it's foiled by Proactive Peak stealing the click away to resize a previously-closed sidebar.

These are two misfeatures that appeared in macOS Sonoma (I believe). They are where a closed sidebar forces its way back into view temporarily, if the mouse comes to rest near the relevant edge of the window. It’s easy to see how some UI designer thought this was a good idea. Surely if you move… Read more

Module verification must be enabled in order for Swift to use the module

Ugh. This was annoying to figure out. If you have a framework target in Xcode with a modulemap – e.g. because you’re wrapping a C or C++ library for use in Swift – you must keep the module verifier enabled (the ENABLE_MODULE_VERIFIER build setting) for that framework, otherwise any Swift targets using that framework won’t… Read more

SwiftUI drag & drop does not support file promises

SwiftUI doesn’t offer anything equivalent to NSFilePromiseProvider, i.e. to write data to the drop destination. You have to ditch SwiftUI and use AppKit’s drag & drop APIs instead. FB13583826. Is that it? I know that’s not a very helpful in some sense, but I wasted days trying to figure out how to implement this very… Read more