The main issue with SwiftUI is sheer lack of maturity. People don't think about it, but UIKit now has ~15 years of effort put into it, and got a serious boost from its shared roots with AppKit (even though big chunks of UIKit were freshly written, its structuring and API design were largely informed by AppKit), which has history tracing all the way back to the 1980s. Of course something as fresh out of the oven as Sw…
It is already three years old. I doubt AppKit, UIKit or any of the predecessors were in a bad state for three whole years after their launch.
Why I quit using SwiftUI
171–180 of 257 posts
Re: Why I quit using SwiftUI
#172Earlier quoted context omitted.
I’m with you, however mac os remain the best dekstop OS and iOS remain the best mobile one, even after all those years. So, they must be doing something right..
iOS lacks many features that have been standard on Android for years and the only reason it feels so smooth is because the UI thread has pretty much the highest QoL that anything can ever have. iOS would rather drop your network call than drop a single frame. Android variants all have things that iOS can only dream of having in five years (notifications was a fun one), just spread very unevenly throughout manufacture…
Re: Why I quit using SwiftUI
#173This is an interesting article, because SwiftUI has a lot of constraints and quirks (which I definitely will not go into here) but it identifies performance specifically as something they ran into problems with. SwiftUI, like all "reactive" frameworks, specifically tries to make your UI a function of state, trying to "logically" redraw everything so that it's always up-to-date. Obviously, this kind of UI is untenable…
React and Jetpack Compose aren't so lucky, having to rely on the underlying optimizations of JS engines and ART, on escape analyis and GC algorithms.
I never understood the love for reactive for interactive GUIs, when they are so bad in memory management and its effects to jank.
Re: Why I quit using SwiftUI
#174The author talks about SwiftUI on macOS, which I also find to be much much more buggy than what's on iOS. Very unexpected things happen, like items in a specific region in the App UI stop responding to clicks next time once you interact with them. However I find it fine on iOS and the issues are usually around Apple changing something in the behaviour of the UI or API and breaking it, then you need to fix it for spec…
Tying the SwiftUI version to the iOS version is seriously asinine. In the Android world Compose is a regular library so devs can pick the version. That's partly why there has been much more adoption of Compose even though it was released years later than SwiftUI.
Re: Why I quit using SwiftUI
#175Earlier quoted context omitted.
> They are pretty wise for keeping SwiftUI be the "for kids" vanity UI toolkit to lure in React webdevs, while keeping UIKit and AppKit for serious stuff. At WWDC 2022 they specifically said that Swift+SwiftUI is the best way to build apps, and the future of their platforms. I thought AppKit/UIKit would stick around, but I guess not. --------------------------- Edit: Here's the direct quote from the "Platforms State…
There is no evidence to suggest that Apple are deprecating AppKit and UIKit
> The Objective-C language, AppKit & UIKit frameworks, and Interface Builder have empowered generations of developers. These technologies were built for each other, and will continue to serve us well for a long time to come, but over time new abstractions become necessary. For a while now, you've seen us hard at work defining the next generation of integrated language, frameworks, and tools: Swift, SwiftUI, and Xcode Previews.
>
> Tight integration in a development platform like this requires that all three pieces be designed and evolved together, both driving and driven by one another. Swift result builders were inspired by SwiftUI's compositional structure. SwiftUI's declarative views were enabled by Swift value types. And Xcode Previews was specifically designed for, and enabled by, both. Now, the result is the best development platform that we have ever built. And this year, Swift, SwiftUI, and Xcode all have fantastic updates that take this vision further, and make it even easier for you to build great apps for all of our platforms. And it all starts with Swift. Now Ben from the Swift team is gonna tell you all about what's next.
Re: Why I quit using SwiftUI
#176Earlier quoted context omitted.
It'll be around for many years. I know, for a fact, that some AAA applications are still using ObjC. Also, I am quite sure (but don't know ) that Apple still has a plenty big ObjC codebase at home.
Some? More like all AAA applications use ~100% ObjC. I'm talking about apps like Facebook, Messenger, Instagram, YouTube, etc.
Re: Why I quit using SwiftUI
#177Earlier quoted context omitted.
At my company we've been slowly rewriting our UIKit app in SwiftUI. We were due for a rewrite when SwiftUI dropped. I'd say we're about 75% done. For those "stupidly complex UIs", SwiftUI just doesn't have enough hooks for customization. And the improvements are too slow. Using SwiftUI has been bitter-sweet. It feels like you just can't use it to craft a high quality app that doesn't look like a generic iOS app.
Is looking like a generic iOS app that bad?! Especially here on HN where the sentiment is pro plain html etc. a generic iOS UI should be well received
Re: Why I quit using SwiftUI
#178Earlier quoted context omitted.
There’s a back port of the nav view at https://github.com/johnpatrickmorgan/NavigationBackport
Obviously, this should be something Apple invests into itself. But they're not going to do it because their culture does not value it; actually, they're often culturally blind to the fact that it might even be useful to provide this. With SwiftUI this kind of nearsightedness really hurts the platform.
decoupling is hard to do and i was shocked (and gratified) they backported async/await... but swiftui is ui-level, im guessing there must be some real pushback for backporting it...
as a customer/developer, the whole os release every year is getting kind of old tbh...
Re: Why I quit using SwiftUI
#179Earlier quoted context omitted.
There is no evidence to suggest that Apple are deprecating AppKit and UIKit
From the same WWDC, > The Objective-C language, AppKit & UIKit frameworks, and Interface Builder have empowered generations of developers. These technologies were built for each other, and will continue to serve us well for a long time to come, but over time new abstractions become necessary. For a while now, you've seen us hard at work defining the next generation of integrated language, frameworks, and tools: Swift…
Re: Why I quit using SwiftUI
#180Earlier quoted context omitted.
iOS lacks many features that have been standard on Android for years and the only reason it feels so smooth is because the UI thread has pretty much the highest QoL that anything can ever have. iOS would rather drop your network call than drop a single frame. Android variants all have things that iOS can only dream of having in five years (notifications was a fun one), just spread very unevenly throughout manufacture…
You must be kidding. There's no excuse for Android's incompetent architecture, which orphans millions of devices with every release because it apparently lacks a competent hardware-abstraction layer and driver model. You can install creaky old Windows on millions of devices with disparate hardware configurations on the day of its release, but Android users must wait weeks, months, or forever for their telcos to dribb…
Apple would have the same problem if iOS was open source and distributable by anyone, their chips being able to be made by anyone. Once again, Apple has picked the easiest (and least open) path, so, yeah, they can upgrade easily.