Though I don’t discount Catalyst’s usefulness — we will get lots of apps new to the Mac — the real news this week was about SwiftUI and the Combine framework. This, finally, is a new way of writing apps, and it’s based on Swift and not on Objective-C. It’s very much not from NeXT.
We were all biting our lip waiting for Marzipan/Catalyst to not suck and Apple was busy building an all-new way to create interactive UIs for their entire line-up of devices.
I’ve watched some of the SwiftUI sessions already. It looks very impressive. It has definitely taken cues from declarative web frameworks (in the best way possible) and brought those lessons into the more structured native app world*.
If I were rebuilding Summit, my never released iOS app, I’d throw out my entire UI layer and use SwiftUI without even thinking about it. As Brent wrote, SwiftUI is the future of UI development on all Apple platforms – both released and as-yet-unreleased – for the next few decades.
* It may be because I’m currently writing a React app, but I can’t help but notice the similarities between it and SwiftUI. To have a framework that manages state and updates the UI according to that state is such a powerful way to build modern UIs. Where SwiftUI keeps a “source of truth” about a view’s state, React keeps a “virtual DOM”. Great tools and each have their place.