跪拜 Guibai
← All articles
Kotlin · Android

Shopify Leaves React Native for Swift and Kotlin, Crediting LLMs for a 12-Week Native Rewrite

By RockByte ·
Read original on juejin.cn ↗ Google Translate ↗ Alt translation

The economic case for cross-platform frameworks rests on "don't write twice". When LLMs can translate a React Native feature into Swift and Kotlin with acceptable quality, that case weakens; Shopify's move shows the cost gap is closing. Teams relying on Shopify's open source libraries face reduced maintenance, and cross-platform frameworks generally must now answer why their abstraction layer beats a cheaper native build.

Summary

In 2020, Shopify bet on React Native to avoid writing the same features twice and to let non-mobile developers build apps. By 2026, after using LLMs since 2021, the cost of building and maintaining separate Swift and Kotlin codebases has dropped enough that the write-once advantage no longer outweighs native's cleaner platform access. Shopify rebuilt the Shop app from scratch in 12 weeks using AI, and plans to migrate all its mobile apps to native.

The migration is not a blind "let AI rewrite everything" exercise. Shopify built Helix, a system that breaks each page into sequential checkpoints, each requiring passing tests, visual review against the running app, two adversarial reviewers, and human sign-off. They also decoupled business logic from UI so agents can verify changes at millisecond speed through a CLI instead of a sluggish simulator. The open source libraries React Native Skia and Restyle are being wound down or archived, while FlashList will get critical fixes and a new maintainer.

Takeaways
— Shopify has used LLMs for software development since 2021, a year before ChatGPT launched.
— The Shop app, Shopify's largest consumer app, was rebuilt natively from scratch in 12 weeks using AI-assisted development.
— Helix is Shopify's checkpoint-based migration system: each page is broken into small pieces that require tests, visual review, two adversarial reviewers, and human approval.
— Shopify decoupled business logic from UI to run headless and expose actions via CLI, cutting agent verification from minutes to milliseconds.
— React Native Skia will be forked by William Candillon after Shopify's sponsorship ends in 2026; FlashList (about 2 million weekly downloads) will get critical fixes and is seeking a new maintainer.
— Shopify chose greenfield (full rewrite) over brownfield for the migration, citing AI's ability to reference the existing React Native codebase.
Conclusions

The reversal is a cost decision, not a performance one; Shopify says React Native apps can be fast, but shared implementation no longer saves enough time when LLMs can generate and verify native code quickly.

The success of AI-driven native rewrites depends on having an existing cross-platform codebase to serve as reference; a greenfield project without that would not get the same speed.

Verification, not code generation, is the new bottleneck; Shopify's headless architecture and CLI tools show that making agents fast to validate is a prerequisite for working at scale.

The author's side story about Uni App reinforces a broader point: as AI reduces the cost of building native, cross-platform frameworks lose their default-first position, especially for small teams focused on cost.

Concepts & terms
Helix
Shopify's internal system for AI-assisted migration from React Native to native code. It splits a page into sequential checkpoints, each requiring passing tests, visual review against the running app, two adversarial reviewers, and human approval before proceeding.
From the discussion
Featured comments
村口二大爷

AI solving cross-platform is indeed a good point. But cross-platform frameworks also tend to support hot updates, which is something native doesn't handle well.

RockByte

Mm, actually each has its own merits; my title was a bit clickbait-y. But reading the full article carefully, everyone is still in the exploration phase right now.

See top comments, translated →
Source: juejin.cn ↗ Google Translate ↗ Backup ↗