Here's a prime example of what developers mean when they question "is SwiftUI ready for production?”

A simple menu. Left iOS 16.4. Right iOS 17.0.

One works. One fails. Same code.

I love SwiftUI, but it's this kind of thing that make me lose confidence in it.

No doubt you can ship amazing things with SwiftUI. I see many great examples of it.

But I also see many examples of developers pulling their hair out trying to understand why their app isn't behaving as expected.

Things that once worked now don't because of an OS update. Or some modifier begins interacting with something in an unexpected way. Or something isn't clearly documented.

Airbnb's recent article highlighted something I think about a lot:

"While Swift and its surrounding foundation have been open sourced, SwiftUI’s implementation remains a black box. If SwiftUI were open sourced, we could better understand the framework and debug more effectively.”

I don't think Apple will ever do it, but boy that would go a long way in fixing many of the issues SwiftUI has today.

(The whole article is great read, btw)

And look, Apple's frameworks have always had bugs. Many of us lived through UISearchDisplayController 💀

But there are two differences:

1. UIKit/AppKit's API surface is much larger. There are just more knobs and dials to turn when things aren't working. Abstracting complexity comes with a cost.

2. The frequency and severity of issues. It would be unimaginable if UINavigationController was left broken for several cycles, but that's exactly what's happened:

@phill i'm writing my first swiftui app (for the company i work for)

There are some workarounds and mentality change to perform, but its doable

But our UI is almost all Custom, i think the main source of problem for swiftui is the usage of Navigation/TabBar ecc…

As UI Layout composition is really great, as abstraction layer i dunno


@GiorgioRomano anecdotally it does seem to be the boundaries of UIKit/AppKit that have the most issues.

And you're right, it’s phenomenal for layout composition 🙂

Sign in to participate in the conversation
The Not So Big Company

The home of The Not So Big Company on Mastodon.