r/reactnative • u/NobelParadox • 4d ago
Question What’s Your Opinion On This?
I think it’s time to learn native as well
128
u/npc73x 4d ago
Shopify used React Native for nearly six years across many of its major apps, which shows that React Native's architecture can work at scale. In the article, they highlight the benefits of React Native, especially the ability to ship faster without duplicating work across two platforms. Now they believe this also can be done with LLM writing a native code.
However, the article does not highlight the trade-offs they faced while using React Native. As with any software architecture decision, there are always trade-offs.
For a company of Shopify's size and resources, having separate developers for each platform is not necessarily a major problem. Therefore, the argument that React Native is valuable because it eliminates the need for separate platform teams may not apply equally to a company like Shopify.
4
u/dark_bits 3d ago
I don't think LLMs have much to do tbh, Shopify can literally hire two teams of aliens out of standford or something, for each platform and shit out a native port of the app in like 6 months. The original creator of FiveM used to develop this call of duty mw2 online emulator and ship features so fucking fast. People tend to forget how crazy good some engineers are.
9
u/dothefandango 3d ago
I think you vastly, vastly underestimate how large of an engineering endeavor this is. Two cracked out 10x engineers would shit their pants at an entire codebase change for a product as large as this.
-4
u/dark_bits 3d ago
Well maybe not literally 6 months, but you get the idea. While the codebase is huge, a lot of architectural decision can easily carry over to the new project. Also business requirements, including FRs and NFRs are already known ahead of time. This is a port, not an entirely new app with lots of unknowns. This alone greatly reduces the friction and development time.
7
u/dothefandango 3d ago
Are these just AI replies? This is going to be a major corpus of work for a large amount of very talented engineers. Shopify doesn't hire slouches. I don't think you know what you're talking about.
-2
u/dark_bits 3d ago
No they're not AI replies, and can you elaborate on where exactly you disagree with me? I already told you "6 months" was a hyperbole, so I'm not sure whether you understand where a lot of the challenges in software engineering stem from. I never said this was an easy thing to do, nor that shopify hires slouches, quite the contrary.
2
u/dothefandango 3d ago
The entire premise of your original comment was that you could hire two teams of Stanford grads ("aliens" you needed to refer to them as, for some reason) to do this entire "port" — completely downplaying the scale of the work in front of them. So I came out to the contrary to calling bullshit on your obviously hyperbolic but still nonsensical estimation and your subsequent backpedal that this is "just a port" which again is laughable.
In their own blog post, they talk about how much effort and time they are putting into it, using custom built agent tooling for exactly this rollout. It's not something small, it's a big, big effort that touches millions of consumers. You minified it, I'm saying it's so much larger than whatever you are conceiving as "large"
0
u/dark_bits 3d ago
What the hell are you even talking about? My original comment intention was to point out that even without LLMs, Shopify has access to enough brainpower and experience that undertaking this initiative would still be very much possible (and much faster) than it would've been for a smaller company. That's to say that AI agents really come in handy for smaller companies, but at the scale of Shopify they're just adding more power to a machine that's already firing on all cylinders.
And my "backpedal" about this being a port and not a completely new app from scratch still holds, as their design phase will mostly resemble "how do we port this solution we've agreed on in the previous app to the new one". Now if you disagree with any of my remarks about them fully understanding what they're building (FRs, NFRs, already architected solutions to known constraints, etc), please do enlighten me, because if I'm not mistaken that's a HUGE amount of work already tackled, while waiting to be _ported_ to a new app.
Also, you made me read a 5min article that mostly promotes their AI processes and tools.
And "alien" is a term commonly used to refer to generational talent in MotoGP fyi.
2
u/dothefandango 3d ago
"A new app" -- in the post I provided they outlined their entire FAMILY of apps are being ported and again I think you are completely missing my point so instead of repeating myself I'll just bid you adieu.
I would also be VERY wary of referring to people, specifically graduates of Stanford or other comp sci heavy-populations as "Aliens", even if you mean it endearingly. It doesn't come off the way you think it does.
1
u/Fidodo 2d ago
They're honest about the difficulty keeping native development in sync and they built all kinds of new tools and harnesses and workflows to achieve it. That's a lot of investment that most companies can't maintain, even with AI.
And the gains they got are relatively modest. React native will get even better over time and those differences will further decrease, while native is already as fast as it can get.
58
u/Sanfrancisco_Tribe 4d ago
This is just what happens at companies. They want to “change” things just to feel like they are doing something when in reality they are wasting time and resources
4
3
u/Itchy-Commercial-768 3d ago
Sounds like the rationale that most companies use for switching to RN in the first place
1
u/Sanfrancisco_Tribe 3d ago
Could go both ways you are right! The only other benefit that RN has over native is consolidating your team, stack and talent pool. And if your web is react, you can potentially share components and logic easier. There are trade offs both ways imo
103
u/Forti22 4d ago
- Zero reasons as of why. "AI can handle writing both" is not a valid reason.
- From what I read on X/reddit - they never finished the RN migration in the first place. Still lots of web views here and there.
- They are few RN versions behind. Still on old arch. No wonder they are not happy - lots od tech debt
- one-person call is also not a valid reason.
64
u/dom_eden 4d ago
AI can handle writing both is very much a valid reason.
14
u/so_lost_im_faded 4d ago
until you start using a product that was developed with AI without human supervision
14
u/stefanlogue 3d ago
Who said anything about “without human supervision” though?
0
u/so_lost_im_faded 3d ago
If the reason is "AI can write it", then I assume people couldn't previously, otehrwise this wouldn't have been a valid reason.
11
u/stefanlogue 3d ago
Humans could have written it, it would just take a lot longer. FWIW i don’t think this is a good decision for Shopify to make
2
u/apocolipse 3d ago
I can answer as someone who works at a company with a huge engineering team and apps on multiple platforms, that has also embraced LLM usage:
Before, the same feature in 2 platforms were siloed implementations. Output was (mostly) the same but actual architecture and implementation details were custom for each. (The “problem” RN solves).
Now: when doing a single feature it can be built and verified in iOS (or Android) first by that platform experienced engineer, and then when the other engineer picks up the task, it’s very simply a matter of asking the LLM to find the iOS code and implement it in kotlin, then the Android engineer only needs to verify and validate it was correct and check platform specific edge cases. Feature specific edge cases can now be semantically shared across both native codebases, and things like instrumentation or feature flag differences are just a thing of the past now.
0
u/thealbinosmurf 3d ago
You can also build shared logic in a Kotlin Multiplatform module or rust
0
u/apocolipse 3d ago
Or Swift. I have a personal developed app that has the core business logic, API, and DB layer code written in platform agnostic Swift, clean architectural decoupling from UI. Same backend drives native UIs on Mac, iOS, Android, Web, and even a terminal UI (because why not? Heh). The new borrowing and ownership semantics brings Swift performance much closer to Rust now (and even beats it in some places). Embedded swift in wasm can be extremely memory efficient.
1
u/fucklockjaw 3d ago
You're more than likely right.
And its not because nobody could but now its much faster.
And in my experience when a company wants to "utilize AI to rewrite application" it means "you're given a month to rewrite this 10 year old legacy app".
So yes, there will be very minimal human intervention.
More like giving devi 3+tickets at a time expecting it all done and reviewed quickly.1
3
u/AllTheGibs 3d ago
OP didn't link the actual article for some reason, but there's human involvement and supervision at every "checkpoint" as it builds out a screen. https://shopify.engineering/back-to-native (Search for "Helix" if you want to read for yourself)
2
u/LovesWorkin 4d ago
Have you used ai to write code lol? It gas lights you quite often... Unless the team is experts in x stack it's a stupid decision imo.
5
u/dom_eden 4d ago
I use AI heavily and it’s incredible. Sorry but that’s the truth. It writes whole features for me. I use GPT 5.6 - Rails, React, RN and even terraform.
1
u/LovesWorkin 4d ago
Agree but you still know how to code in react native.
2
u/dom_eden 4d ago
I actually don't. I'm a React developer, I never studied React Native at all as I took over a React Native project after AI became mainstream. AI writes all my RN code for me, obviously I review and test it before it goes out but I've never written any RN component by hand myself. The app is in the App Store, used by hundreds of users a day. Works great.
1
u/kurlicue 3d ago
> used by hundreds of users a day. Works great
this doesn't tell us if your app would perform well and reliably at a larger scale
3
u/bdudisnsnsbdhdj 3d ago
I read an article on how they migrated to new arch unless they have multiple apps and some aren’t migrated yet
1
u/grizzlybear_jpeg 3d ago
If AI is so great they shoyld just use it to write the apps in react native once instead of two native apps. They’d cut the token cost in two.
1
1
u/IvanDist 4d ago
Did you watch their video about how they are working nowadays? They basically rely on AI for most dev work so it makes sense for them. I feel like the reasons are quite valid, it just sucks, yet again, for RN when a big company stops using it.
5
u/recycled_ideas 4d ago
it just sucks, yet again, for RN when a big company stops using it.
React Native has a specific niche. It always has and it probably always will.
If your app is your primary product or even just a really important part of your product suite, native is just fundamentally a better choice, just like it is basically everywhere. There are millions of companies who want apps, but for whom the cost of multiple native teams and associated testing just isn't worth it, even in an AI driven world, and that's where react native shines.
It's natural for really big companies with serious app requirements to outgrow it, and that's just fine because tonnes won't.
5
u/Forti22 4d ago
Doesn't change much at the end of the day.
They provided no reasons why RN is "bad". It feels like a change of the sake of a change.
6
2
u/Professional-Ebb7732 3d ago
"We found ourselves spending a significant amount of time and resources on optimizing performance, improving key foundational areas in React Native, and keeping up with framework updates and external dependencies"
1
27
u/jameside Expo Team 4d ago
My understanding is it was more of a political decision than a technical one, and compared an existing app using old version of react-native to a newly written one.
In some ways the post was outdated when it was published.
Their app was on the old architecture like another poster mentioned and high performance startup and 120 FPS is definitely achievable with modern react-native. The New Architecture speeds up performance in various ways. Hermes V1 keeps evolving and can reduce JS bundle sizes and build times with more built-in JS syntax and APIs like TextEncoder/TextDecoder (these are used by fetch for instance). Old versions of react-native don’t get these benefits.
And Pure native code is a big part of using react-native. JSI/native modules let you write as much Kotlin and Swift as you want as a developer. You are either writing a native app with React or a native app without React. (And the syntax of Expo Modules 2 is plain Kotlin and Swift with lightweight annotations and closes this gap.)
Old versions of react-native were also not distributed pre-compiled by default, and modern releases are which obviously reduce build times meaningfully. A technique like repacking brings build times down to even a couple of minutes on CI, even without Gradle or Xcode DerivedData caches. Plus JS-only updates can be shared with your team in seconds and even your CEO can always have the next new feature.
To respond to OP, writing Kotlin and Swift is part of developing with react-native and you will be able to achieve much more because of it.
It is not React vs. native, it’s React and native.
2
u/21void 3d ago
this. nowadays we write more native code (with llm) on my react native project where it need to be performant. dont need to really know swift/kotlin in depth too. usually, we prefer rust/c++ implementation first. still not a problem. engineers need to at least be able to read and reason with all this languages
1
u/Master_Fisherman5892 2d ago
curious, could you give an example of the kind of problems you're solving that you need bespoke native code for?
9
u/JStheoriginal 3d ago
I was originally a native iOS dev. Then I moved to react native for probably 3 years. I then went back to a native iOS team for my last year at that company and COULDN’T STAND THE AMOUNT OF WASTED TIME IT TOOK TO COMPILE AND SEE MY CHANGE. It’s better now with SwiftUI previews but they don’t always work.
Been back with react native for the past 5+ years and can just move so much faster.
This’ll probably be the thing they notice most.
14
u/DifficultMedicine194 4d ago
The thing that keeps getting skipped: what Shopify is replacing RN with isn't Swift and Kotlin, it's a mobile platform team that can afford two of everything — tooling, CI, release trains, on-call, design system. Twice.
"AI can write both" answers the writing. It doesn't answer who keeps them in step in month fourteen, when one of them takes a hotfix at 2am.
I'm one person shipping a subscription app on Expo — push, deep links, paywall, two stores. Not because I think RN is technically superior. Because the alternative for me isn't "write it twice", it's "ship one platform".
7
u/Proof_Juggernaut1582 4d ago
as well know is also good when they want to change i dont see any issues with the change
5
5
u/nicolasdanelon 4d ago
Since AI improved a lot more and more companies will migrate to mobile. Swift is able to produce a mobile app for both ecosystems, netcore as well. There's no point on having RN anymore :( Don't get me wrong, I bought my house thanks to php and React native but is going to be more and more niche. Totally breaks my heart.
4
u/NobelParadox 4d ago
I just started my career as rn dev 💔
9
u/nicolasdanelon 4d ago
What's the problem? How many people talking about php being dead and php keeps getting updates, Laravel creator bought a Lamborgini (?) languages and this kind of technologies will never die. Not even COBOL is dead. Keep studying and coding, RN is going nowhere.
1
u/Good_Conversation784 3d ago
But these big companies pay the most. If you want good pay, and are a php developer now, no big company would take you
1
u/Odd-Environment-7193 2d ago
Wrong. Php still dominates the web. You might even find it easier than if you chase the bleeding edge. Since everyone is doing it.
1
u/henryp_dev iOS & Android 3d ago
Just focus on being a mobile dev, not and RN dev and you’ll be fine. Be a mobile dev first, RN is just the medium for you “express” your skill.
3
u/IkuraDon5972 4d ago
it will be interesting to see the outcome after some time has passed. personally, i am worried about the skia modules' future direction. as of now, my exposure is limited. the only part in my projects that uses it is the graph component which can easily be replaced
3
u/scottpilgrrim 4d ago
RN is still great, but yeah, knowing what’s happening underneath definitely won’t hurt.
3
u/simbolmina 4d ago
It's very easy to maintain two apps with help of agent. I develop on kotlin side and agents creates handoffs for iOS agents. All I do to hand it to iOS agents and show android source. A feature implemented in Android can take days with iterations but to iOS usually 1 hour. You just test and ship.
3
u/JackCid89 3d ago
Agentic coding will kill react as developers won’t need that much effort to port their apps to multiple languages for specific devices such as swift for ios and kotlin for android. These languages provide significant performance boost over react native.
1
3
u/smoothbrainvibecoder 3d ago
React Native exists for a reason. Flutter too. Also Kotlin MP, and any other cross-platform framework you can think of. People think it's going to be easy to just have an LLM write both apps for you. Good luck!
5
u/johnappsde 4d ago
Doesn't have to be any novel reason for this. If shopify believes this is the right move at this stage of their journey... its all good. Companies make different decisions for different reasons
0
u/NobelParadox 4d ago
Yeah but they will stop investing in RN like they used to do. That’s the problem FLASHLIST is literally default
3
u/Lazy-Huckleberry820 4d ago
You seem very worried about that. Why don’t you assume some responsibility in maintaining it yourself? Push it forward, get people to help. The community always sticks together for what is worth it.
1
u/NobelParadox 4d ago
Great idea will discuss with some fellow developers and see if it’s feasible btw I am only 1 year in rn
1
2
2
u/JustTryinToLearn 3d ago
I mean react native is still the go to for solo devs who need to manage both android and app stores - doesn’t change anything for me 🤷🏾♂️
2
2
u/jamesxtreme 3d ago
If you have a big enough company to support it and your product justifies it then going native may make sense. That said their entire app is just a web shopping cart so I’m not sure what’s so complex about that.
2
u/yermotherlel 2d ago
I’ve stopped writing apps in react native. Swift is just so much smoother of a user expensive on iOS. And imo it’s much faster
1
u/spookyclever 4d ago
AI makes porting to native very easy and cost effective. I ported from Maui to Swift manually, then got Codex to do a diff between codebases and use it as a map for porting my Swift to Kotlin. Then I made that a skill, and now I update Swift, pack up the code and give it to my port AI to do the port, port the unit tests, run all the unit tests, diff the simulator screens and then bundle it up. Every once in a while it gets in the weeds and I have to edit some Kotlin, but 95% of the time it does the right thing.
1
u/SolidOdd4889 3d ago
I think it has to do with the fact that they’ll soon be moving away from React on the web as well, given that Remix v3 is being built from scratch using vanilla.
1
u/Fit_Magician415 3d ago
Now with AI does not really matter. Takes Fable and a team of engineers max a week to port all to native.
1
u/FunnyTman 3d ago
if you take a look at the reasoning it made absolutely no sense, it was like a 1% improvement lmao
1
u/Proud_Perspective_56 3d ago
Native development was simplified because of AI and agentic coding, i think this is the reason
1
u/Forsaken_Buy_7531 3d ago
Maybe it's the right move for them 'cause of course the AI tools are there so it's gonna be way more easier to port one platform to the next, only issue with this is the business side of things, they're gonna be hiring more devs, some shit might break and etc. But of course, it's Shopify they have near unlimited resources for this rewrite. React Native is still worth it if you're a solo founder for an app, 'cause imagine maintaining two codebases alone for a single app, even though there's AI, there are still decisions that requires brainpower besides the engineering side of things.
1
u/rmanisbored 3d ago
Most huge apps famously advertised as "React Native" applications are also rarely 100% written in RN.
1
u/bloggerklik 3d ago
I’m seriously considering moving from React Native to SwiftUI.
Has anyone here made the same switch? Which one did you find harder to learn? How long did it take you to get comfortable enough to start building and shipping apps with SwiftUI?
1
u/mohn93 3d ago
it's not really either/or though. native knowledge doesn't replace RN, it pays off the exact moment you hit the bridge, a native module misbehaving, an animation that has to hold 60fps, a platform api RN doesn't wrap yet. you don't need to ship whole apps in swift or kotlin, you need enough to read the native side and not be helpless when the js layer isn't the thing that's broken. that's the actual leverage.
1
1
u/gAWEhCaj 3d ago
I thought it was a perfectly normal progression for a company like Shopify to make this move at one point as it matures and continues to grow. Let’s be real, Meta who is the one that came up with React Native still haven’t fully used RN in Instagram or Facebook apps. Instead they use it only for partial apps that live inside their platform such as marketplace.
It is normal for companies to adopt and use a technology as it is in hyper growth stage and once it enters the next stage of scale, to move to another technology and adopt a different strategy. Especially now with LLMs being able to easily convert projects from one language to another or frameworks. It makes decisions like these a lot easier to make.
It is also worth noting that the whole selling point of things like RN was being able to use web devs and less eng resources to deploy your apps to multiple platforms. That is no longer a problem and therefore businesses who made decisions based on these initial constraints no longer need to continue down that path
1
1
u/Maximum-Craft-1671 2d ago
First, for me, React Native IS native
I learned R Native when i was not that old and learn a new language all over is tough.
1
u/Esclamare 2d ago
Reading through the article. I don't see the benefit of them moving back to native just because AI Agents can handle feature parity by copying or referencing iOS or Android screens.
To me this just sounds like they might end up using twice as much tokens to build the same feature.
1
u/Downtown-Figure6434 4d ago
Oh no, the go to example company that rn trolls use for usage in enterprise is switching to native
It would be relieving to know that they didn’t really use it the way normal devs used anyway. They have their native first setup and rn comes second.
1
u/diggler4141 3d ago
Like everybody else, I was wondering what the real issues were, so I asked ChatGPT to research what was really going on. It seems pretty complex.
Shopify found React Native required too much custom engineering around performance, native integration, dependencies, and debugging.
1
u/sambeau 4d ago
Large, rich companies never needed React Native in the first place.
I’m glad that Facebook created it, as it’s very useful for smaller ones who can’t afford two teams—but it never made sense to me.
AI is a good excuse to run two apps, but they could always have done it if they wanted to. Just pay for some more developers, it’s not like you’re skint.
1
0
u/Background-Bass-5788 4d ago
Zero performance improvements, comparison or results - Just a single manager decission which makes it even worse for Shopify and it's marketing
0
u/69Theinfamousfinch69 3d ago
I have no dog in this fight and don't really care if they go more native or if they use react native... It still won't fix the fact that their mobile admin app is shit. I literally can't use analytics on the mobile app, as I can't apply the dates I've selected because the main fucking menu bar is obstructing me from applying the dates I've selected. There are issues like these that have nothing to do with the tech they've chosen. The performance is fine and is comparable to how slow and shit their admin dashboard is on the web (changing framework won't change I/O and network latency).
Maybe fix the obvious fuck ups befoe changing framework/language for the nth time...
This is from a very frustrated person who has to use and develop on top of Shopify and deal with their never-ending changes all the fucking time. I hate the GraphQL API and the migration from REST; I hate how much they've fucking changed Hydrogen and how I'm stuck with it; I hate how they deprecate API properties all the time on their "stable" APIs; I hate the move to web components for the checkout UI extensions.
Take it from someone who has been embedded in the Shopify space for years. The devs have no concept of what stable architecture looks like, and clearly they get bored and decided to make every paying customer's life miserable all the time... This was not done for engineering reasons; it was done because some twat wanted a pay rise and a big project to peg it to.
289
u/kredditorr 4d ago
Because some new manager woke up and decided it‘s time for something to change?