Shopify rebuilt its Shop app from React Native into fully native Swift and Kotlin, using AI coding agents to go from proof of concept to a published app store release in 12 weeks — cutting Android cold-start time by half and Android crash-adjacent instability by roughly 10x.
Going native used to mean building everything twice — coding agents made "twice" cheaper than the cross-platform compromise it was meant to avoid.
React Native from day one, and a New Architecture bill coming due
Shop app has used React Native since Shopify introduced it in 2020, part of the company’s broader investment in the framework for mobile development. That choice served the app well as it grew to serve hundreds of millions of customers. But Shop app’s next major React Native investment would have been adopting React Native’s “New Architecture” — a change that meant revisiting native module integrations, rendering, and the boundaries between shared and platform-specific code.
AFTER
Faster starts, far fewer crashes, and a smaller Android build
Comparing cold starts from tapping the app icon to visible home-feed content, the native Android app started in 2233ms versus 4433ms for React Native — a 50% reduction — while native iOS improved 23%, from 3200ms to 2466ms. Session stability climbed from a historical 99.5%+ to 99.95%+, a roughly 10x reduction in crash-adjacent sessions. The native Android release build shrank by 109MB (about 37%) compared to its React Native counterpart, while iOS stayed roughly the same size. Android release build times fell approximately 75%.
THE BRIDGE
A one-week proof of concept, then agents working from checkpoints
Before committing to a full migration, one engineer spent a week using coding agents to port as much of the existing React Native app as possible into a native SwiftUI app, using the React Native version purely as reference. It wasn’t production-ready, but it proved a close, feature-for-feature migration was achievable — giving Shopify confidence to commit a core group of six engineers to build the native foundations and main user journeys, with feature teams joining later to validate their own areas.
The team built a reusable migration workflow, with specialized subagents inspecting the React Native source, documenting its behavior, proposing platform-specific plans, implementing features, and reviewing parity — each checkpoint requiring passing tests, a visual match against the running app, and approval from two adversarial code reviewers before a human signed off.
COST
A plan-approval system, and native expertise that still mattered
To keep human review meaningful at agent speed, plan approval was tied to a hash of the plan’s contents — editing a plan after approval automatically invalidated that approval, so engineers could never unknowingly sign off on stale intent. Generated code could still satisfy feature requirements while introducing duplication, architectural drift, or performance problems, so native expertise, linting, static analysis, and code review all remained essential rather than optional once agents were writing most of the code.
Coding agents didn’t remove the cost of building native apps twice — they lowered it enough that “build it twice, correctly” beat “share one codebase, with compromises,” a tradeoff that had run the other way for years.
Shopify's original move to React Native for its native apps — this page covers the reversal.
A plain-language, AI-drafted and human-edited retelling of the article published on shopify.engineering, reorganized and explained in our own structure and words, with original analysis in the editor's note above. The facts, numbers, and decisions belong to the original author and are not altered. For the full depth, read the source.