Skip to content

Build1 publisher2 min readPublished

Shopify rebuilt the Shop app in SwiftUI and Jetpack Compose with six engineers in 12 weeks

Shopify is dropping React Native five years after standardising on it, on Head of Mobile Mustafa Ali's estimate that two native codebases now beat a shared runtime. Its reported gains compare against React Native's old architecture.

The Engineer · Build desk

Photograph accompanying Shopify rebuilt the Shop app in SwiftUI and Jetpack Compose with six engineers in 12 weeks
Photo: infoq.com

What happened

  • Shopify is abandoning React Native to rewrite its flagship apps in Swift and Kotlin, five years after declaring React Native the future of its mobile architecture and reaffirming that commitment in 2025.
  • The first factor was a looming refactor to adopt React Native's New Architecture, which Shopify said would have meant revisiting native module integrations, rendering, and the boundaries between shared and platform-specific code.
  • Six engineers rebuilt the flagship Shop app from the ground up to production deployment in 12 weeks, standardising on SwiftUI and Jetpack Compose to give agents symmetrical structures across both platforms.
  • Shopify reports cold startup latency down 23% on iOS and 50% on Android, release build times 75% faster on Android, and native feed scrolling holding a sustained 120 FPS without extensive manual optimisation.

Compiled by The EngineerSomething wrong?How this is made

Why it matters

  • cost Whoever copies this pays in senior time. Architecture, planning the agent work, validating task completion and remediating errors all stayed human, so the saving does not land as headcount.
  • contradiction The gains were measured against React Native's old architecture. Part of the reported delta may be the migration Shopify skipped.
  • constraint Going full native moves patching behind app review. Any team that relies on over-the-air JavaScript updates to fix production loses that lever the day it drops the shared runtime.
  • decision A pending New Architecture migration is now a decision to argue, because the competing option on the table is a clean-slate native rebuild with agents writing the duplicate code.

Shopify isolated the parts that change, the mobile platform and the UI, from core business logic and application state management, specifically to get around the slow feedback loops of mobile simulators [19]. With that split in place, the models dispatch actions, manipulate navigation state and assert outcomes in milliseconds on the desktop, with no UI rendered and no simulator running [20]. Simulators are kept mainly for automated end-to-end integration passes [21]. A React Native team could draw that boundary too, without abandoning a shared runtime.

Six engineers over 12 weeks is 72 engineer-weeks for a flagship rebuild [12]. The proof of concept before it cost one engineer one week [10]. InfoQ's report gives no figure for the New Architecture migration Shopify decided against [26]. That left Shopify choosing between a rewrite it went on to measure and a migration it only estimated.

The 2020 case for React Native was to stop building the same features twice, keep talent portable, and spend time delivering user value instead of chasing feature parity [4]. Even then Shopify wrote: "Instead of thinking native or React Native, think native and React Native." [6] Native remained the choice for hardware features such as 2D and 3D scanning, on-device AI models, memory-constrained surfaces including widgets and Watch complications, and long-running background jobs [25]. Ali's reversal is an estimate, not a measurement: he put the benefit/cost ratio of maintaining native codebases across mobile platforms above that of an abstraction layer [2]. InfoQ names two drivers for the reassessment, and the improvement in AI coding models, agents and harnesses is the second [9]. It came a little over a year after Shopify reaffirmed its commitment to React Native [27].

The stability figures show why a table like this needs its baseline checked before anyone quotes it internally. Shopify reports session stability moving from 99.5% to 99.95%, which it describes as a tenfold reduction in sessions that crash [15]. Its React Native-era reporting had crash-free sessions above 99.9% and screen loads under 500ms [5]. The pre-rewrite baseline is therefore at least five times worse than the figure the company published earlier: five crashing sessions per thousand against fewer than one [24]. The two numbers may cover different apps and different periods. For the tenfold cut to mean anything for your app, your crashes would have to be coming from the same place Shopify's were.

What to watch

  • Whether Shopify publishes release-frequency data now that app review, not an over-the-air bundle, gates a fix.
  • Whether any team runs the counterfactual and reports New Architecture migration results on a comparable app.
  • Whether the desktop state-assertion harness is documented in enough detail for another team to copy it.
Loading claim ledger
Loading source directory links
Loading share composer
Loading topic controls
Loading related stories