🗣️ I do enjoy a good rumor, so I'll share this nugget:

I have heard that SwiftUI has been losing political capital, and credibility, internally at Apple because it has repeatedly failed to meet software engineering goals, and needs. It's no longer thought of as clear default choice for new stuff.

That might explain why it was deemphasized at WWDC compared to the past few years.

Comforting that Apple might finally be waking up to the reality of SwiftUI, 6 years in. Glad I waited that one out 😅

This one is getting traction again lately, so I'll add some fun bits of context. Apply salt *liberally*

• I've heard Swift is also under fire from certain corners at Apple, lumped in with SwiftUI — many frameworks built atop it just aren't working to a standard people are happy with, it's dramatically increased the resources and time required to build the OS, and it does not work well enough at the OS and kernel level in embedded or secure contexts
• Paraphrased: 'Even Tim knows SwiftUI sucks'

(There are lots more supporting anecdotes to share, someday. And none of this means that SwiftUI or Swift is 'going away' by any means. I'm sure there are plenty of juicy stories about the development of AppKit, UIKit, Carbon, and all the other frameworks that have succeeded, or fizzled out)
@stroughtonsmith It sure seems like new UI frameworks are a nigh-impossible task. Apple and Microsoft certainly have a lot of almost-but-not-quite-gone frameworks between them. The recent news about Windows 11 getting more "native" apps had me legitimately pondering what that even means today. WinUI3? WPF? WinForms? Win32? What even is a UI??
@trezzer @stroughtonsmith
Only a few years ago Android very successfully adopted a new declarative UI framework that’s now widely used in production and even expanding into cross-platform. SwiftUI today is still not as capable or reliable as Jetpack Compose was on release. It’s far from an inherently bad concept but Apple’s narrow-mindedness and refusal to backport most features has made its success impossible

@trezzer @stroughtonsmith WinUI3 of course, it's pretty mature by now

I used it in 2021 without much problems, so LLMs also should know it well

@stroughtonsmith man, this makes me sad as someone who is basically all-in with swiftUI these days.

I wish they would just “fix it”, but historically Apple seems to abandon and replace things rather than give them attention.

@its_john_davis I think SwiftUI is far too big to abandon, and even if they did split it up into its individual components I imagine it would stay source-compatible
@stroughtonsmith This is probably why we’ve finally been seeing movement on big type checker improvements landing on main over the past couple of months — they finally feel the pain the rest of us have been yelling about.
@stroughtonsmith I just pray they solve it by *fixing it* rather than going the Microsoft way of adding yet another framework, or just shrugging and letting everyone default to web stack crap like React/Electron
@kalleboo @stroughtonsmith they don't have too. Just go back to improving UIKit and Objective-C.

@apple4ever @kalleboo @stroughtonsmith Is there a dev path that best supports ai-coding?

If there is then they will choose that.

@apple4ever @stroughtonsmith Aside from a handful of curmudgeons, nobody is going back to UIKit and Objective-C. If that's their plan, developers will end up going to a third-party solution not controlled by Apple.
@kalleboo @stroughtonsmith This curmudgeon can dream though!
@stroughtonsmith Well, if true it could also mean that we will get better tools to work with SwiftUI. I'm super happy with it, although some things would benefit from some polish and better integration with the system. Maybe it's time to ditch the underlying UIKit dependency and build it so it's a real first class citizen?!

@stroughtonsmith i was so angry about how apple handled the transition from objective-c to swift that i abandoned apple-native app development altogether. the more i see of their current trajectory, the better i feel about that decision.

these days i write cross-platform apps using flutter and dart. dart is a dream, compared to what apple is doing these days.

@stroughtonsmith As a user, I find the cross-platform Qt apps I have generally perform better, and are often more "mac-like" than the SwiftUI or Catalyst "native" apps I have.

At least the Qt folks understand tear-off palettes & inspectors. More than can be said for most "native" Mac developers these days.

@stroughtonsmith if so this is rather bad, Flutter, ReactNative and Jetpack Compose are taking no prisoners. Native needs to be solid and compelling or we’ll be living in a world of Android first hand-me-down apps.

@stroughtonsmith Regardless of SwiftUI's fate, I find it fascinating how political decisions shape the tools landscape. I presume that SwiftUI came into being not because it was good (maybe it is), but because it gained political traction. Now it's fading because of fizzling out said traction.

I guess the lesson is to treat SwiftUI (or any corporate framework) as a tool instead of incorporating it into one's identity.

@elfenlaid @stroughtonsmith wouldn’t take this as SwiftUI is going away. Apple not having a declarative way to build UIs would be detrimental to the platform
@stroughtonsmith What would the replacement be?
@stroughtonsmith I hope this isn’t the case. I’ve gotten quite adept at building things I like with SwiftUI. Still resorting to UI/NSCollectionView in vital locations, though.
@stroughtonsmith for me, SwiftUI solves the Auto-Layout problem (I never could visualize constraints very well) and Observability makes it so I have almost zero edge cases. AppKit and UIKit gained the latter. A Storyboard replacement in the form of some “SwiftUI Layouts” would be welcome, but it’s time to go back, I think. NSImageView is for example so unbelievably performant compared to Image() that it was a no-brainer for my launchpad clone. And we still don’t have cell reuse outside of List (and I’m not really convinced it’s _really_ reusing cells there either)… Time to go back to AppKit and UIKit. But they’ll never give us PepperUI so I guess SwiftUI on watch forever? Or maybe it’s time to trust us, Apple.
@stroughtonsmith my experience with SwiftUI can be summarized as such: it takes you 85% of the way there, you’re feeling good, and then the moment you want to make a good product into an excellent product it becomes quickly apparent you should’ve been in UIKit or AppKit the whole time
@ethanrdoesmc @stroughtonsmith As an experienced developer working on my first Mac and iOS apps, this has been exactly my experience. It’s easy to get something decent up and running, but the pain quickly sets in as you begin to tweak the defaults.
@stroughtonsmith I might be an outlier, but I am loving SwiftUI. I can finally not deal with layout issues and have cross platform code. It just needs a bit more polish.

@stroughtonsmith The design flaw in SwiftUI was exposed in Introduction to SwiftUI at WWDC 2020 at 28:55
"I imagine many of you have discovered when using a traditional UI framework the simplicity that results from collecting all of your view updates into a single method." https://developer.apple.com/videos/play/wwdc2020/10119?time=1735

This wasn't standard practice though, it's better to update views where each piece of data is changed, i.e. in multiple methods, not a giant single method.

Introduction to SwiftUI - WWDC20 - Videos - Apple Developer

Explore the world of declarative-style programming: Discover how to build a fully-functioning SwiftUI app from scratch as we explain the...

Apple Developer
@stroughtonsmith I think it being a black box is a problem. No way to really inspect what it‘s doing internally and how to fix or work around bugs.
@stroughtonsmith Document-based apps are still a mess on iPhone and iPad, but work well on macOS SwiftUI applications. The standard apps work really well for me in SwiftUI these days, whereas I used to run across odd behaviours in the past. I still want more features concerning multi-window management on macOS, though. I don’t enjoy the Web-browsing feel of programmatic navigation on a desktop (but really appreciate having that control on mobile).