logoalt Hacker News

Shopify is moving from React Native back to Swift and Kotlin

669 pointsby fnthawar2today at 2:09 PM447 commentsview on HN

Comments

manlymuppettoday at 4:42 PM

This is probably one of the things that excites me most about AI.

Companies can now just afford to maintain a hundred different native apps, rather than settle for a write once, run anywhere approach.

gargstoday at 3:59 PM

What I want to know is if the agents are so good that they can convert React Native code to native with amazing efficiencies along the way, what's stopping them from improving React Native itself?

show 1 reply
BringItBacktoday at 3:43 PM

Makes sense in the LLM age.

With cheap/fast code, it's easy to support multiple software stacks since most of the abstract engineering problems are already solved.

Code - especially straightforward low-level code - is so cheap and easy to write now that some people are building their own version control systems, game engines, and other low-level tooling.

Thus, some of the most demanding, human-centric work in software dev right now - where we now spend more time than coding - is in technical PM, UI/UX, devops, and overall architecture. The decision-making and design aspects of the job.

Exciting times.

crossroadsguytoday at 3:29 PM

Few of the biggest reasons for "migration" to the likes of React Native, and web-views et cetera, were "lack of talent", and not getting that talent fast, and for cheap, et cetera, while of course terming that as innovation, embracing the future, and "that's where the game is at" et cetera. Now with the LLMs that is mostly sorted. So if anything I'd be able to see the eradication of the Electron infestation in my lifetime. But then I see the very tools these LLMs are accessed with i.e harnesses (and of course mostly made by the LLM houses) are made of Electron or similar things (sometimes a Frankenstein like mix). And even today Claude Code shows up as `2.x.yyy` for process name ffs! So if anything, this is getting worse.

Then they say:

> We decided to switch from native to React Native in 2020 for three reasons:

> Stop building the same features twice

> Allow developers to work across the stack

> Spend less time chasing feature parity and more time shipping value

Totally!

Is there some kind of shame in just saying:

- we didn't want to hire more people

- we didn't want to pay those salaries

- we fired a lot of engineers with move to react native/hybrid in mind

- we could reuse the frontend devs (aka "full stack" folks) with or without some extra whippings ensuring they grok the bare minimum they'd need to build for mobile and test in on mobile.

nsheliatoday at 3:32 PM

The rendering layer and APIs differ significantly between iOS and Android. Agents currently do not know how to test the UI, at least in my experience. I would be scared to do that migration right now.

robofanatictoday at 4:02 PM

this motivates me to rewrite my Flutter app in Swift. I gave up on deploying the app to Android because of their 20 testers requirement at that time (not sure if its still true).

running101today at 3:04 PM

I suspected we would start seeing these types of blog posts. Code is becoming low level, where people do not care what language, it is written in anymore. The cost of moving from one to another is becoming low.

ICHxtoday at 9:50 PM

While Meta's Whatsapp just dropped native Windows client for Electron

Lack of vision?

thisismyopiniontoday at 4:44 PM

Would be nice if Spotify and Notion did the same.

shawabawa3today at 3:36 PM

"native" shouldn't be capitalized in the title

1saadcodestoday at 3:16 PM

What I find interesting is how AI has changed the cost of maintaining two native apps enough that a decision that made no sense a few years ago is worth revisiting now

BatchJobtoday at 8:54 PM

This article makes more sense if you remove the self congratulatory verbiage from it, and the cost rationale which I believe is zero.

Most orgs used REACT native becuase they simply didnt have the interest or talent to build mobile apps using native tech. Many many companies outsource the entire thing for the same reason.

So NOW that its been many years, and LLMs are there to help them they arent simply AFRAID to build a native mobile app anymore.

Thats the entire article. The rest is utter nonsense and bullshit.

yusufnbtoday at 3:48 PM

Web based mobile made sense pre AI. It is just simpler now to use different languages and have AI implement features across the board.

randysalamitoday at 2:33 PM

“We debated between gradually migrating to native (brownfield) versus rebuilding them from scratch (greenfield)… However, this time greenfield emerged as a clear winner for the following reasons”

“To solve this problem, we built a system called Helix that takes a more gradual approach. It doesn't expect the first output to be correct, and builds a loop where an imperfect attempt simply cannot move forward until it becomes a good result.”

If this is driven by proper engineering then hats off! Supposedly a simpler app has already been migrated and they are working on migrating the main app using this approach. I don’t even know how I can be a cynic here… because the technology is good enough and so are the engineers I don’t know how management or executives could ruin it.

“…product quality people expect today. This isn’t just the same apps rewritten in different languages. We’re rebuilding them so both humans and agents can understand, test, and change them quickly.”

If this was written using AI and human-edited, you missed a spot.

synergy20today at 5:02 PM

wow, what about electron.js the bloated cross-desktop GUI, can LLM either totally modernize wxWidgets(to avoid Qt's license mess), or create some light-weight cross platform GUI widgets to make GUI easy on windows/macos/linux that is not resource heavy?

show 1 reply
weightedreplytoday at 3:54 PM

Isn't it silly that this even needs to be a conversation? Shouldn't we be able to write in any language we want and have the bindings for it to work cross platform? And shouldn't AI aid in building those cross-platform tools?

Maybe React Native isn't the right choice - but two tech stacks for virtually identical interfaces is dumb. Three stacks if you include browsers.

quotemstrtoday at 2:27 PM

The wheel of fashion turns once more.

aurareturntoday at 2:57 PM

How long until LLMs just write machine code?

show 1 reply
starlineventuretoday at 2:30 PM

Native. Metal. Remove the abatraction layers

faangguyindiatoday at 2:42 PM

React Native is slow.

Hermes VM doesn't even have JIT.

If the majority of your app is native code and only a few places are stitched together via JS code that runs in the Hermes VM, then React Native is suitable for you.

Look at V8 vs. Hermes performance.

We use Flutter; we rarely need to write native code. We have three apps: Symbiote workout app, CalorieCodex, an AI calorie tracker app, and MacroCodex with 17,000+ users, all of them completely free

show 1 reply
mt_today at 4:35 PM

The article failed to provide reasons on they why move back to native.

show 1 reply
giebischtoday at 2:30 PM

Their reasoning makes sense. I'd love to read a follow-up and their thoughts in half a year.

kraig911today at 2:29 PM

A side effect of perceived LLM Generated code is now easier to just make it write native I guess.

tower-shieldtoday at 5:08 PM

Finally some common sense. Time to put electron to rest.

j45today at 9:09 PM

Its interesting that the move is back to native and not towards a technology better suited to delivering the same experience on multiple devices from one codebase.

AJRFtoday at 4:59 PM

Most large tech companies are just job programmes, i've seen so much effort, time, cost go into things that are truly unimportant.

React Native gives you (with asterisks) - one "source" for things to go wrong (as it sits on top of the native implementations of the UI + Native APIs). You are writing at that source level, and that filters down to the native builds. I am WELL aware to do certain things on each platform you need to get your hands dirty, but most apps are just serialising JSON from a database and displaying it.

AI writes very buggy, sloppy code.

They've decided - instead of containing that code to 1 surface, they would now have 2 surfaces they throw slop on top of.

I look forward to the 2027 version of this where they've gone back

basepurposetoday at 3:08 PM

if native became easier to tackle with coding agents, react native would have been even more easier to scale. this decision doesn't sit well with me.

evilfredtoday at 2:29 PM

using React Native you end up having to drop into native code to do anything interesting or optimized, so it feels kind of pointless to not just use the platforms directly

timedudetoday at 4:09 PM

This is what happens when you have too much cash on hand. You start wasting it and doing dumb things. Like rewriting entire apps in two different languages.

psadritoday at 2:53 PM

Thanks to coding agents, there is no reason not to

tonymettoday at 3:51 PM

Let’s see their app size (and heap)

WhereIsTheTruthtoday at 3:48 PM

If you build with electron in the age of LLMs, you should change career

gadflyinyoureyetoday at 3:40 PM

Out of curiosity why not look at Flutter? I know you don't get native look-and-feel, but most apps are branded who cares?

jgwil2today at 5:10 PM

I wish more companies would just focus on webapps. It's infuriating how many services try to push an app on you when it's completely unnecessary. The other day I went to a restaurant that had an app. Not a fast food chain, a nice full-service place. No, I'm not going to download an app to order dinner.

MaoSYJtoday at 3:07 PM

Who could have guessed it!

ex-aws-dudetoday at 2:43 PM

I don’t understand why building an app twice is a big deal in the first place if that’s a core part of your business

Like wouldn’t you want to invest in platform specific expertise long term?

It’s not like this is a small company or it’s just a dinky side project off of the main business

yieldcrvtoday at 2:36 PM

Perfect, yeah the obvious answer and comment is in the subtitle right at the top. Good way to write an article

> Coding agents changed what it costs to build mobile apps twice. Here’s why Shopify is moving from React Native back to Swift and Kotlin.

moomoo11today at 5:57 PM

i think many ppl don't understand this news

IMHO...

if you have a large org, a large app, lots of revenue and $$$ and resources...

it makes sense to do fully native now.

if you're a startup, you don't have the resources and $$$, you stick to RN

you can obviously have AI maintain both, but that is a cost. double maintenance = more $$$ on tokens

so many people are being doomer about this, but most people are also not Shopify

AtNightWeCodetoday at 5:25 PM

Why on earth is Shopify not just a web wrapped in an app like most apps? I mean, they implement most of that stuff for the desktop anyway.

show 1 reply
madducitoday at 4:56 PM

The article itself comes from AI ? It says twice why they switched from Native to React Native in two distinct paragraphs at the beginning. The rest sounds also AI slop jargon.

Hamukotoday at 5:01 PM

I'm certain that small startup Shopify could not afford to build native applications before AI became a thing. Thank god Sam Altman stole all the information in the world so that small family companies like this can finally have software too.

BatchJobtoday at 3:08 PM

im not a fan of react native per se , but this reasoning does not add up.

they are going to "delete an app" because they got some LLM to slop out 2 apps?

The architect who wrote that is batshit and will be unemployed after this blows up in his face.

m3kw9today at 4:40 PM

They are admitting React was a shtty choice for a mobile app if they have a choice.

show 1 reply
xysttoday at 4:19 PM

Can’t wait for the blog post mentioning move back to react native or other cross platform framework.

jeffrallentoday at 3:59 PM

Too late. My kids called the app Stop-ify because it was so unreliable. Switched to Apple music and won't go back. On Android!

show 1 reply
krttherealesttoday at 3:42 PM

this AI stuff is goin crazy

philipwhiuktoday at 3:09 PM

> It doesn't expect the first output to be correct, and builds a loop where an imperfect attempt simply cannot move forward until it becomes a good result.

So... local maxima?

philipwhiuktoday at 3:08 PM

I guess expect no new features on mobile until their token budget gets through all the screens?

🔗 View 21 more comments