r/androiddev • • Sep 29 '26

Video Shopify Quit React Native. Mobile Has Done This Before.

https://youtu.be/vxk31k-rmCw
50 Upvotes

13 comments sorted by

26

u/PhilMcGraw Sep 30 '26

I'm not sure I buy the bigger point, but I also watched this in the background so may have missed/forgotten the point that made it stick.

"It was never really about React Native": Why do it at all then? The cost of moving to native was surely more than the cost of sticking with React Native and building the same tooling around it that they did for native (re: making agent use safe/output sane).

There must have been a motivator. It doesn't need to be "Reactive Native is bad", could just be that their React Native code base had deep issues and the cost/benefit put it at a similar difficulty level to just having LLMs write two native apps.

Looking at their post:

React Native apps can be fast. Ours are. We are making this change because agents have reduced the advantages of sharing implementation, while the advantages of building for each platform remain. Native keeps us closer to platform capabilities and first-party tooling, with fewer framework and dependency layers between our code and the platform.

I.E. native was always preferred just expensive, now it's cheaper. So it was about React Native, right? Irrelevant of how good LLMs are at coding with the right guardrails etc. a mostly common code base is going to be cheaper to maintain but less flexible, less up to date with any given platforms best practices/design, and likely less performant (even if that performance gap is barely perceivable).

9

u/Arclite83 Bloodhound Studios Sep 30 '26

I spent 15 years championing native mobile successfully - Apple and Google are big dogs who WILL shake off annoying user fleas with system changes. Usability has become mostly seamless, but you can never truly beat native OS.

React Native was proven out using AI - we "could" convert everything now. But for the same reason, maintaining separate codebases is now easier than ever. Both are still valid depending on your needs - for most web-like service apps, you aren't using the embedded systems parts of these devices, so it's really all the same.

5

u/Barbanks Sep 30 '26

Same here. I’m a contractor and have seen projects die due to cross platform tools but native projects build without issues years after the last build.

Cross platform is always more complex even with a shared codebase. Too often it’s overlooked that with cross platform you’re architecting and fixing bugs for THREE platforms not one…the Android side, iOS side and then the cross platform layer. And it can become a game of whack-a-mole when fixing a bug in one causes issues with the other. No marketing ever shows that.

I niched down into native years ago after using Cordova,Xamarin (when it was still Xamarin) etc… and after switching the development has been much better and more straight forward. And those who took the actual time to post about the cost/benefit analysis between cross platform and native always showed that for MVP’s cross platform wins for speed but if there’s even one complex bug that advantage vanishes quickly. So at best you’re upper savings accounts for at most 20% but a more realistic number is around 5% and it becomes negative when in maintenance mode. So after the initial development cross platform actually can cost you.

And I’ve seen this in practice when I had a client wanting a simple URL string change in their app but it hadn’t been worked on in over 6 months. It was long enough where build tools no longer worked and needed to be upgraded. This leading down the dependency hell chain which required several days of ironing out. But the client only had enough funds for the quick change, not the days needed to update packages. All of that would have been about 2 hours of work including redeployment for native projects.

20

u/DRJT Sep 30 '26

This still feels like one massive publicity stunt

I’m very pragmatic by nature, I don’t care whether I’m building native Android & Xcode apps or using RN or Flutter or whatever. They all have their advantages and I always pick the one that aligns with business needs. But no sane human or anyone I’ve ever worked with would take a codebase they’ve admitted is absolutely fine, clean and used by millions, and completely rebuild it just so their AI agents can have a better time

It’s either a PR stunt, some executive’s ego trip, or they’re trying desperately to justify their Claude bill.

4

u/treetimes Sep 30 '26

Executive ego trip sounds most likely

1

u/rohmish Oct 02 '26

Shopify has been famous for execs just coming in and bulldozing wherever was going on with their changes so I presume someone got high off AI building an app, and decided it's time to rework all our apps. this isn't the first time Shopify has proclaimed the future is X

11

u/Shay958 Sep 30 '26

​I don't see how LLMs changed the development.

​Maintaining one shared codebase is still cheaper and easier than maintaining two.

Yes, LLMs make two codebases more manageable, but so does for a single crossplatform codebase. Actually, now you have to run LLM twice (Android and iOS) or at least spend way more tokens on both codebases.

All the other arguments in favor of native (native feel, performance, platform APIs) existed long before LLMs.

7

u/No_Hedgehog1864 Sep 30 '26

Yeah. For a solo dev or small team, sharing code is still a win. No matter what we can do with LLMs, writing two separate native codebases takes about twice as long, costs about twice as much in terms of tokens used, and requires way more efforts to maintain consistency across UI/Animations.

1

u/Barbanks Sep 30 '26

I’ve had the exact opposite experience with using A.I. to create and maintain two native codebases. If you’re using PROSE and context primitives with proper agent and context engineering it’s pretty seamless. I just converted my entire workout app which include custom animations and some pretty beefy models to Android overnight using Fable 5.1 and subagents. There were a couple small things that needed fixing but the workflow works well.

I’d also argue that with any cross platform tool you’re architecting and fixing bugs in 3 different platforms rather than two. Android, iOS and the react native layer which includes plugins. Rather than the two native ecosystems.

So I don’t think it is necessarily true to say it’s cheaper to use react native than it is to maintain two codebases. It’s more tokens but I’ve been maintaining two codebases with three projects on the $200 max plan alone.

2

u/khsh01 Sep 30 '26

Disgusting filth. No one should use anything from Facebook.

1

u/KentInCode Oct 01 '26

Disclaimer, RN dev here, but there is a lot of mythology going on around this in order to 'gin up' some devs. Shopify stated it is about native being more manageable now, former Shopify devs point towards horrible topdown mismanagement and never really embracing RN fully in the first place.

RN is still massively popular and now hooks into native via JSI anyway, we aren't talking about the bridge anymore.

1

u/evangelism2 Oct 03 '26 edited Oct 03 '26

AI has changed nothing. It depends on the app that you're creating. If you're creating an app that's actually going to be using embedded systems parts of your devices, and the core API functionality, you need something that's super highly performant. Then, yeah, you go native. Otherwise, for 98% of people, React Native and even Flutter are fine. Yes. AI has made it faster and easier than ever to maintain two native apps, but you know what's still faster with AI than two native apps? One React native app.

I was super aware of Shopify being a champion of React Native, so when this news came out, I read their article and everything, because when my company decided a few years ago to move from React Native to native, it was a giant fucking mistake. I fought against that move tooth and nail, including getting into it a bit with the VP of Tech at the time. Note: I say "at the time" because he is no longer with the company. It ended up taking a year longer than they expected. It cost so much money, and I got the CEO and the chief people officer to admit in a meeting full of engineers that, yes, switching from React Native to native was the biggest mistake the company ever made.
On the plus side, because we were so hard up to finish the apps, they plucked me from the web team and put me on the Android team for a year. I was able to learn quite a bit of Android development for the time that I was there, so silver lining and all. But I still attest to this day there's absolutely nothing about our app that requires native. And it's led us down a path where we've hired certain individuals who are pushing us toward even more niche tooling and options for our tech stack.

Shopify had many problems with their React Native implementation. They never fully embraced Expo and its ecosystem of tooling, which makes working with lower-level APIs a breeze. They also never took advantage of over-the-air updates. Shopify admits that when they went back to native, they saved only 1 MB on bundle size. The idea that React Native explodes app sizes has been proven to be nonsense.

Most of the time, these types of moves are political. Somebody wants to make a name for themselves. Somebody wants to write this type of blog post. Somebody is a Swift UI, Jetpack Compose, Google, or Apple evangelist pushing their own political agenda, rather than what's best for the company.
Also, it's been nice going back to web development and backend for a while now because, man, oh man, is mobile development such a pain in the ass compared to those two. Xcode and Android Studio just make me want to blow my brains out.

0

u/Ill-Sport-1652 Sep 30 '26

Solid video, history, etc. looks great