Hacker News new | ask | show | jobs
by WoodenChair 1405 days ago
It's really not an impressive showing for SwiftUI. 4 iterations later and after being told it's "the future" in unequivocal terms, it's still at 12% (and only like 3% without any AppKit combined (last chart)). It's not dogfooded for any productivity apps. For Ventura, rewriting "Font Book, System Settings, and Tips" is not exactly confidence inducing. If they rewrote Pages or Final Cut Pro, that would wake people up. One showcase productivity app. The thing is, in its current state, I don't they can.
4 comments

> 4 iterations later

AppKit (NextStep) has been iterated on for over 30 years now.

Apple's development strategy is like that of old school Microsoft. They make a choice like Win32 and just keep on iterating on it over the long haul. Four years of SwiftUI would still be described as very early days.

Nothing like the development strategy of the week you see Google and the Microsoft of the past decade push as the one true future then abandon almost immediately.

UIKit after four iterations (i.e., iOS 6 in 2012) was far from its "very early days": it was a well-designed, production-ready, powerful UI framework that was way closer to AppKit than SwiftUI (in its fourth iteration) is to UIKit now.
UIKit started out with more polish because they took the AppKit they had iterated on for so many years and slimmed it down for extremely resource constrained devices.

They weren't starting from scratch.

People were building huge productivity apps on NeXTStep even in the early ‘90s.
Why would they rewrite Final Cut Pro in SwiftUI? Rewriting code is a large effort and a waste of time without proper justification – new developer tooling for UI is not usually a good enough justification to rewrite the entire UI
> Why would they rewrite Final Cut Pro in SwiftUI? Rewriting code is a large effort and a waste of time without proper justification – new developer tooling for UI is not usually a good enough justification to rewrite the entire UI

It's not about Final Cut Pro specifically. It could be a new app. It's about having a single showcase complex app that says to developers—look hey we can build something really performance intensive and sophisticated in SwiftUI. We're dogfooding it. Look what can be accomplished with it!

It could be anything—Final Cut Pro, Logic, Pages, Numbers, a new productivity app all together. Some showcase sophisticated, complex productivity app to show what can be done with it and we're in the trenches with you using it.

Absolutely! So you need to align that goal with a project that is actually going to provide value to the end user. There aren’t enough new features each year to (re)write large portions of macOS UI.

The Shortcuts app in macOS 12 and the Settings app in macOS 13 are almost entirely SwiftUI and the most substantial projects in this regard

Even John Gruber has been down on the Settings app, courtesy of Niki Tonsky's preview

https://daringfireball.net/linked/2022/08/15/ventura-system-...

The same reason they created Final Cut Pro X and alienated the users of FCP 7? ;-)
I converted the Android App I work on to Compose with zero problems everything just worked. Everything that didn't work was my fault because I didn't grok something about how recomposition worked. I was able to convert everything in small encapsulated pieces without breaking other parts of the app.

I'm converting the iOS version of the app from UIKit app to SwiftUI and it is a nightmare. Nothing works, everything is tightly coupled, and nothing works out of the box without some hacky modification and much googling. I've also come to the conclusion that they don't use SwiftUI before releasing it.

So why are you doing it? Why not just leave it UIKit. Is it just a learning experience? Clearly, UIKit is not going anywhere for a LONG time, so I don't feel compelled to update old code.

  > everything is tightly coupled
just curious, but what do you mean specifically?
>after being told it's "the future" in unequivocal terms

Who told you this? :D

SwiftUI is mostly useful for apps that show a bunch of nested lists. Basically websites, but natively. It's Apple's answer to React Native or something, and it looks cool in demos with the live preview and whatnot. But serious apps like Pages, FCP, Finder, Calendar, etc. will never be written with SwiftUI. The paradigm is just too wasteful for these kinds of interactive apps.

Heck, large apps aren't even using Swift! It's just too inefficient at their scale. And before you say it's due to legacy ObjC code - no, Facebook rewrote Messenger from scratch in ObjC(++) a few years ago. Swift is cute, but it lacks the maturity and stability of ObjC.

> Who told you this? :D

Apple explicitly said so in a WWDC 2022 video. I think it’s the State of the Platform one, or if I’m wrong, the one titled like What’s New in SwiftUI. Their statement is that while UIKit and Objective-C will serve us for a long time, the best way to write new apps for Apple platforms is with Swift and SwiftUI.

I don’t believe that though. Swift is a great language, I agree, but UIKit is way ahead of SwiftUI and I would never use SwiftUI in a product where meeting deadlines matters, at least not in the next 3 or more years.

> The paradigm is just too wasteful for these kinds of interactive apps.

Nonsense.