iOS 15 Shortcuts and SwiftUI
Unfortunately, the Shortcuts experience in iOS and iPadOS 15 is hindered by a variety of severe UI and performance bugs that have made this update the least stable and reliable one in recent memory. I believe Apple is aware of these bugs and is actively working on fixing them, but that doesn’t change the core problem: the Shortcuts app shipping with iOS and iPadOS 15.0 is buggy, crashes often, and gets in the way of power users with SwiftUI-related issues that prevent interactions with the editor.
I don’t want this section to read like a feedback report, so I’ll keep it short, but I also think it’s important to point out that the Shortcuts team should have done a better job with app performance and stability this year. For instance, due to a widely reported SwiftUI bug, it’s often impossible to click UI elements in the editor unless you close and reopen it. This bug is so bad, it has made it extremely challenging for me to work on long shortcuts this summer since I’d have to close and reopen the editor (thus losing my position in it) every 30 seconds. I’m astounded this bug shipped to customers.
Alas, there’s a lot more. Sometimes, drag and drop for actions just refuses to work or drops an action in an entirely different spot in the editor. The ‘Run Shortcut’ action – a fantastic tool for power users that lets you use shortcuts as functions – is somewhat broken at the moment and doesn’t always recognize input. The magic variable output of Choose from Menu blocks no longer works. Sometimes, the share sheet sees no input passed from other apps. When I run shortcuts that contain Files actions with the editor open on my iPad, the app crashes.
As my professional and personal technology experiences increasingly revolve around the software-as-a-service model, I have recently been thinking a lot about the lack of stability as a priority. We are on the receiving end of a firehose of changes, redesigns, new features, and reimplementations of existing products. Yet the threshold for problems that will prevent a product from being shipped seems to be getting stricter.
What Viticci describes is an application that Apple shipped — in a production release of its most popular operating system — in an entirely unusable state. It is not a solitary case, nor is Apple the only software vendor to rush something out the door. But stuff like these Shortcuts problems — some of which are UIKit problems — and Siri regressions are profoundly disruptive to frequent users.
A painful reckoning for Shortcuts & SwiftUI. I don’t think Shortcuts can afford to rewrite its UI every year anymore, it’s too critical a tool for its users and the consequences of it going wrong (like it has, this year) are devastating. SwiftUI was a misguided leap of faith
The newly-rewritten multiplatform Shortcuts app was always going to go one of two ways: a poster child for SwiftUI, or a cautionary tale. I’m really curious what, if anything, broader-Apple will learn from the experience — how it’s developing SwiftUI, and how it’s positioning it
SwiftUI still has a long way to go, especially on macOS.
Certain basic things are still broken or simply impossible to do. The bridging with AppKit can be impossible to work with so there’s just no good solution sometimes.
We’re in ‘year 3’ of SwiftUI, and my base advice remains unchanged — it is great for auxiliary non-critical UI layouts (inspector sidebars, settings windows, and panels), watchOS apps, and rapid prototyping. Beyond that, it just does not meet the bar for complex, reliable apps
[…]
There’s a clear analogy, and lesson to be learned, between ‘SwiftUI is the future’, and ‘iPad is the future of computing’
Previously:
Update (2021-10-04): Federico Viticci:
Imagine if you couldn’t trust that the Notes app for iPhone and iPad actually saves your text. Or that you fear Mail may send truncated emails to people.
That’s how bad Shortcuts is right now / has been since June. It’s painful to watch and I have no idea what’s going on there.
Previously:
Update (2021-10-19): Steve Troughton-Smith:
In 2015, you could build pretty much everything you needed to build in an iOS app with Swift. It was very much a peer to ObjC, even if very unfinished, and there was a clear path from one to the other. It could back deploy to iOS 7, and even iOS 6 (unofficially)
SwiftUI is not that. It is not a full-featured replacement for existing UI frameworks, has no back-deployment strategy, and has all manner of issues that can make your app buggier & less consistent if not properly handled as Apple’s own apps have demonstrated to disastrous effect
It is not clear at all that someday SwiftUI will power everything you see on iOS, without some bigger, better, more powerful UI framework underneath. That’s certainly the dream for a lot of folks, but I honestly don’t know if iOS is the platform that will ever get to that point
I’m afraid we’re in for a long season of Shortcuts bugs due to their SwiftUI rewrite in iOS 15. If these can get fixed before 16.
iOS 15.1 beta 3, still can’t reliably drag and drop an action.
Drag and drop…for an app based on dragging and dropping things around.
3 Comments RSS · Twitter
>Imagine if you couldn’t trust that the Notes app for iPhone and iPad actually saves your text. Or that you fear Mail may send truncated emails to people.
Or that Mail may delete messages when you move them between fold— oh wait.
(Now I'm anxious that Notes does have such a bug! But luckily, I've been using it for years, extensively, and it's been quite solid.)
Also, while I find the discussion of "SwiftUI isn't ready for prime time" interesting and frustrating (it used to be that Apple had a very clear answer: if you're doing a Mac app, you use AppKit; if you're doing an iOS app, you use UIKit; if you're doing a Watch app, use your Watch to record a long walk in the forest and reconsider that choice — now, instead, it's "well, maybe you should use a mix of AppKit and Catalyst, or maybe AppKit and UIKit, or… y'know what, forget it, just use Electron), it also misses the point. The problem here isn't that they picked SwiftUI. The problem is that someone higher up decided, "yeah, that's good enough to ship", when Viticci, one of the long-time fans and defenders of Shortcuts, begs to differ. That's the part that shouldn't have happened.
So whenever they took their leap in faith around winter, then got closer to beta around spring, someone should have put a halt to the project and said, "no, what we're doing is a minor update for iOS, and the Mac will have to wait another year, because this isn't ready".
That _that_ didn't happen is the problem. Not SwiftUI.
@Sören Yes, if SwiftUI wasn’t ready they still (at least until a certain point) had the option to scale back and not use it for this release. But it does seem like the SwiftUI team has a tendency to overstate their progress, and perhaps they did that internally as well until it was too late.