By John Gruber
Jiiiii — All your anime stream schedules in one place.
Michael Tsai has collected a long list of tweets and posts about the state of SwiftUI today. To pick just one, here’s a tweet from Adam Kaump:
“Hey I got 90% of what I wanted really quick! Neat!”
“… Oh turns out that last 10% is basically impossible, eh?”
SwiftUI was introduced at WWDC 2019 (the last one held in-person). It has improved and expanded since then, but not by leaps and bounds. I’d like to see leaps-and-bounds improvements announced this year.
Update: The fundamental problem with SwiftUI, I think, is that it’s been developed in a vacuum, like an academic exercise. In theory it’s possible to develop a UI framework first and then build complex, rich apps with it, but in practice I don’t think that works and I’m not sure it’s ever worked, at any point in computing history. You need to be developing real production apps alongside the in-development framework. It’s app developers who know best what an application frameworks needs. UIKit, for example, was created while Apple was literally racing to develop the entire original iPhone OS.
What’s the most complex app Apple has written in SwiftUI? Shortcuts, I think, is clearly the answer. Shortcuts as a technology is off to a great start on the Mac. But the Shortcuts app itself is simply not a good Mac app. It doesn’t even have primitives to show standard Mac alerts — it really feels like an app made by developers and designers who’ve never used a Mac, which is impossible, since they must be using Xcode to develop it. And as Shortcuts virtuoso Federico Viticci has copiously documented, the SwiftUI port of Shortcuts for iOS 15 has been shaky, to say the least. If everything on iOS worked as well as the Shortcuts app, we’d all be shopping for Android phones.
Three years in, SwiftUI should be robust enough for Apple to use it for major apps, on both iOS and MacOS, with resulting quality equal to or better than what they typically achieve using UIKit and AppKit. They need to dogfood it.
★ Wednesday, 25 May 2022