5 ms·
I’ve been pretty on board with SwiftUI and have adopted it liberally in 2 apps but I’m a little disappointed with the state of it right now. Apple is seemingly
by jamil7 6y ago
I’ve been pretty on board with SwiftUI and have adopted it liberally in 2 apps but I’m a little disappointed with the state of it right now. Apple is seemingly dusting their hands after this years WWDC leaving us with something thats still half baked and filled with bugs, some that haven’t been fixed since the first announcement.
- gman83 6y agoCurious how it compares with other reactive mobile frameworks like Jetpack Compose (which my colleague says is not at all ready for primetime) and Flutter (which he says is great). Any thoughts?
- jamil7 6y agoConceptually it’s great and when it’s more stable I can’t imagine a faster way of building a cross platform Apple app that looks and feels correct. Styling a react native app felt tedious in comparison. Jetpack Compose appears to be going in a similar direction but last I checked it’s a long way off as you mention. Flutter is interesting but I have very limited experience, I was initially turned off by dart and the heavy focus on Android. I keep hearing positive things on HN and from other people though so I want to give it a another proper go. Overall it’s a bit of an awkward time for mobile development.
- gman83 6y agoThanks for the response. I have some personal experience with React Native which feels like a dead end to me. We've been building our apps with our small team with Swift (not SwiftUI) and Kotlin on Android, but the difficulty in keeping feature parity and UI consistency across platforms has tempted us to try Flutter, but as you say we're worried about how well the iOS widgets are replicated, also the accessibility story on Flutter seems not great, which is a moral problem for us as we don't want to exclude people with disabilities.
- ghostwreck 6y agoWhy do you feel React Native is a dead end? I've built apps of all sizes with it and had a good amount of success. I love Swift as a language, but building the same app across platforms (Android/iOS) always feels so wasteful.
- biztos 6y agoIs React Native also OK from an accessibility point of view? I'm just starting to work on apps and I feel the same moral imperative, but have no special love for Xcode &co.
- kall 6y agoIt is not going to be as good out of the box as a native iOS app, but it is is workable with a little bit of effort. Unlike Flutter, react native does not have a fundamental architecture that makes accessibility tricky.
- jameshush 6y agoBackground: I worked on the NFL mobile app and then worked on a search engine app both of which were in React Native. Specifically I worked on the team that did the developer tooling side for other teams. I made it so experienced JavaScript developers who had no experience with native mobile could create features more easily. Both get millions of downloads. React Native is a pain to work with when the scope of your app becomes any larger than an agency level project (e.g. an app for an event that's only going to be used one weekend). Once you start getting into requirements for a prime time production app (setting up APM tool, setting up tracking, setting up Google Analytics, native specific features that don't have a React Native hook yet) React Native is an extra layer of abstraction that slows you down. The experienced native developers hate working with it because they'd rather just use the related native platform themselves, but at the same time for any slightly complicated app you still need their expertise. Also, out of the box animations in React Native is difficult to work with, especially with less experienced developers, so you end up having to do a variety of work arounds to get animations between screens to look nice which you'd get out of the box just using Kotlin/Swift. In 2020 if I needed to make an app quickly, cheaply, that worked on both platforms, I'd make a great mobile website and wrap it in a native shell. Any screen that needed a little bit extra "magic" I would do 100% native code for both platforms. This also allows you to ship updates to screens as you go without a complicated "codepush" JavaScript setup, as it's just a webview on the other end. I'm still maintaining the React Native search app now, it works fine, but if we need to create an iOS version of it I'd definitely pitch doing it in native code.
- neilv 6y agoYour comment is refreshing. I made the mistake of choosing iOS and SwiftUI for the first platform of a niche app, a few months ago. Trying to do things in the way Apple wants seems a good strategy in general, but the experience was bad in countless ways. The developing&publishing approval barrels don't help. I succeeded, but only by throwing vastly more experience and energy at it than should've been necessary. One of the engineering culture surprises was realizing that a lot of iOS developer chatter seemed to be repeating PR talking points, rather than the frank critiques that I'd expect in analogous situations in many other software development communities. Besides a theory of fandom or Stockholm Syndrome, or dreaming of a job at Apple, or fearing being deplatformed... maybe there's an incentive for someone with hard-earned knowledge in something marketable to play along and be reassuring about their own expertise in it?
- babesh 6y agoThere is plenty of critique in the community but it’s usually done in private. It doesn’t pay to be on Apple’s bad side and it’s a promotion opportunity to advocate for the newest and shiniest. Also, experience shows that you need to look at Apple with a multi year lens especially nowadays. Sometimes it takes them a couple of years to get things right.
- neilv 6y agoThanks. I think the bad experience was partly my fault. When I picked iOS and SwiftUI, I think I extrapolated too much from the overall fit&finish of the user-visible iPhone universe, and consequently didn't vet SwiftUI (and some of the more general barrel aspects) as much as I should've.
- readarticle 6y agoA sad truth is, the higher end of fit and finish on iOS almost always includes writing or hacking about at a lower level than one “should be”. And SwiftUI is at least one level above that, so it’s going to be some time before it’s stable enough to get that spit and shine properly. I’m off to muck about in the internal view hierarchy of a navigation bar to animate its button label..