Micro.blog Moving iOS App to React Native
We are a small team, and maintaining so many different versions of our apps is difficult. On top of that, why invest so much time in Apple-only frameworks when Apple could upend our business with a new App Store tax or other disruptions?
Going forward, the tentative plan is to abandon most of the current iOS codebase for Micro.blog, instead sharing it predominantly with Android using React Native. This will free up development time to keep making the Mac version even more Mac-like, sticking with AppKit.
Mobile platforms like iOS and Android are much more similar to each other than either one is to the Mac. I love the Mac and don’t want to compromise the UI on macOS with a cross-platform framework. macOS also remains the only open Apple platform, so investing in it feels right.
Previously:
- App Store External Purchase Fee: 27%
- Schneier on Sideloading
- Catching Native Apps
- 1Password 8 for Mac Early Access
- Rewriting Facebook Messenger
- Airbnb Switching Away From React Native
- Swift and React Native at Artsy
Update (2022-02-11): Micro.blog is combining the Android and iOS apps, whereas 1Password combined Mac with other non-iOS platforms. Apple would like developers to use Catalyst or SwiftUI to combine the iOS and Mac apps, but neither company decided to do that.
Apple has lost the hearts and minds of so many talented developers. They’ll realize soon enough just how valuable a resource they’ve squandered. Yes, people will still build for their platforms, but when it’s purely transactional, things are just… different.
First, to clear up some potential confusion: we are not abandoning iOS! I still love my iPhone, even if I’m very frustrated with how Apple is treating developers. We are embracing Android more fully, and limiting how much time we spend in Apple-only frameworks. Our iOS apps will still be the best we can make them.
[…]
The toolchain for React Native makes me a little nervous. It uses every package manager you can think of: Node, Yarn, Ruby Gems, CocoaPods… It feels fragile, but there are so many thousands of developers using this framework, I’m also not very worried about it breaking.
Update (2022-02-16): Matt Birchler:
Whenever we hear about a company moving to non-native app development, I always hear people say it’s because the company either took massive funding and needs to develop fast, quality be damned.
That’s not the case here.
[…]
I have felt alone out here banging the drum of, “developers don’t use things like React and Electron because they hate you,” so I’m eagerly watching my feeds to see if that’s the conclusion people come to here or not.
One thing I haven’t heard: are React (Native) & Jetpack Compose dependable? Is SwiftUI outlier here, in how much of a mess it is in production? Or is that inherent in the other UI frameworks it’s competing with?
Apple’s UI frameworks have never been bottom of the barrel before
I never said ReactNative is bad. However, based on my experience using ReactNative I can’t think of one person whom I love so little as to be willing to recommend they use it.
See also: Manton Reece.
5 Comments RSS · Twitter
Ugh. I despise these frameworks and apps that use them. Every. Single. One. has a terrible user experience… and I leave them. ☹️
"Frameworks for Apple platforms are fragmented. UIKit vs. SwiftUI vs. Mac Catalyst vs. AppKit. There are compromises with each path."
I don't know about you, but I definitely didn't have fragmentation as a reason why devs would move away from iOS.
It all looks good on paper. But I'd ask you to find a testimonial from a small sized company that's done it well and is seeing benefits. Maybe I'm missing something - but the react native app (write once / run away) that I've inherited is riddled with bugs / has been a flop - and I've been hired to rebuild it natively across ios / android. Yes the web guys can easily read the code. But you don't get away from complexities/ view life cycles and having rogue outbound requests that get responses when user navigates away. First week or RN - excuse the tiny rant. I wouldn't rule out flutter - as this has rendering engine that beats the html style from react.
One key piece here is that they already have a React Native app anyway (for Android).
However, I think the focus is a mistake. An AppKit Mac app is nice, yes, but surely most people microblog from a phone. So personally, I wouldn't have abandoned the UIKit app, but instead the AppKit app, and moved the Mac app to Catalyst.
I really think someone at Apple needs to wake up and figure out a roadmap on how to attract developers again. This ain't it.
The roadmap to attract developers is more redundant frameworks obviously. Make another “first class” language too while you’re at it. Make so many frameworks so developers don’t know which one to choose.
We all know objc/appkit/uikit will be deprecated in a couple years…but swiftui still sucks so i’m confused 😥? Write an app the old folks way with proven tech or use Apple’s new pet project that still kind pf sucks but gets 90 percent of the attention af WWDC?
If there are this many “native” ways to make an app…..might was well go cross platform and let the maintainers of the cross platform framework sort this shit out for me.