ShopifyがReact NativeをやめてSwiftとKotlinへ
ShopifyはReact Nativeに全面移行してから6年後、アプリをSwiftとKotlinで作り直している。移植の多くをコーディングエージェントが担った。
3 分で読めます

数字で見る
- to rebuild the Shop app, with 6 engineers
- 12 weeks
- smaller Android app, a 37% cut
- -109 MB
- fewer crashes, per Shopify
- 10x
- Android, React Native
- 4433ms
- Android, native
- 2233ms
- iOS, React Native
- 3200ms
- iOS, native
- 2466ms
Shopifyは、提供するすべてのモバイルアプリをSwiftとKotlinで作り直している。React Nativeを未来だと宣言してから6年後のことだ。2026年9月10日の同社の告知は、理由を1つ際立たせている。「LLMが、2020年の判断を支えていた中心的な前提の1つを変えた」。
その前提とは、同じ機能を二度作る費用である。ShopifyでReact Nativeを使っていたのは、それを避けるためだった。いまはコーディングエージェントがその重複作業をかなり吸収するので、損得が逆転した。
何が計算を変えたのか
Shopifyは2020年に、3つの理由でReact Nativeを採用した。同じ機能を二度作らない、開発者が領域をまたいで働ける、機能の一致を追いかける時間を減らす、である。実際に機能した。InfoQによると、アプリは500ミリ秒未満の読み込み時間と99.9%を超えるクラッシュのないセッション率に達した。
同社は2025年1月にも方針を再確認し、5年かけた移行のあとでReact Nativeを続けると述べていた。その後、同社自身の説明によれば、2025年後半のモデルの進歩が十分に大きく、判断を見直す余地が生まれた。
InfoQの報道によると、モバイル責任者のMustafa Aliがこの方針を再評価し、2つのネイティブコードベースを保守する利得と費用の比が、抽象化層を使う場合を上回ったと結論づけた。Shopifyは費用が消えたわけではないと率直に述べている。エージェントが「実装、移し替え、テスト、レビューの作業を十分にこなす」ようになり、決定要因ではなくなったということだ。
もう1つの後押しはフレームワーク側から来た。InfoQとShopifyはいずれも、React NativeのNew Architectureへの改修が控えており、いずれにせよネイティブモジュールと描画の大幅な作り直しが必要だったと指摘している。
作り直しの数字
1人のエンジニアが1週間で方式を検証した。その後6人のエンジニアがShopアプリを作り直し、300以上の画面に加えてウィジェット、Apple Watchアプリ、Siriショートカットを備えた状態で、12週間で出荷した。
| 指標 | React Native | ネイティブ |
|---|---|---|
| Androidの起動 | 4,433 ms | 2,233 ms |
| iOSの起動 | 3,200 ms | 2,466 ms |
| セッション安定性 | 99.5%以上 | 99.95%以上 |
| Androidのアプリ容量 | 293 MB | 184 MB |
| iOSのアプリ容量 | 67 MB | 68 MB |
得たものが最も多いのはAndroidだ。起動はおよそ半分になり、ダウンロード容量は109 MB減り、リリースビルドは75%速くなり、フィードのスクロールは毎秒120フレームに達した。クラッシュは約10分の1になった。iOSの改善は小さく、容量は1 MB増えた。
先に作らなければならなかった道具
真似する価値があるのは判断ではなく足場のほうだ。Shopifyの移行記事は、Piというコーディングエージェントの拡張を作ったと説明している。元アプリの調査、挙動の記録、プラットフォーム作業の計画、機能の実装、一致の確認に、それぞれ専用のサブエージェントを割り当てた。
Tardisというデバッグ道具も作った。これは動作中のアプリのイベント、ログ、状態にエージェントが構造的に触れるようにするものだ。これがエージェントに自分の作業を点検させた。React Native版とネイティブ版の画面写真とイベントの並びを節目ごとに比べ、実行時の自然な差は勘案した。
1つの原則が計画を支えた。Shopifyが掲げたのは「AndroidとiOSは常に機能が一致していなければならない」である。そして通常の管理も残った。リンター、テスト、静的解析、性能の確認、人によるコードレビューである。
開発者にとっての意味
得たものより先に失ったものを読みたい。ネイティブへの移行でShopifyは無線経由の更新を失った。ネイティブのリリースはアプリストアの審査を通るからだ。1時間で修正を配る前提の運用なら、この判断で支払うのはその項目である。
持ち帰れる教訓はフレームワークではなく道具にある。ここでエージェントが役に立ったのは、動作中のアプリを観察し挙動を自動で比べる手段をShopifyが与えたからだ。InfoQはそこから続く助言を伝えている。プラットフォームとUIのコードを安定した業務ロジックから切り離し、モデルがシミュレーターではなくデスクトップで結果を試せるようにすること。これはBunのAI主導のRust書き直しの背後にあった型と同じで、検証できる節目のほうがモデルの素の性能より効いた。
これをReact Nativeへの評決と読むのは避けたい。Shopifyは「ネイティブはいまのShopifyにとって正しい選択だが、React Nativeは2020年のShopifyにとって正しい選択だった」と明言している。InfoQは、他のチームへの助言として、どちらかを選ぶのではなくネイティブとReact Nativeの両方を考えることだと伝えている。300画面のアプリと余裕のある6人のエンジニア、独自のエージェント環境を持つ企業は、平均的なチームではない。
ShopifyのオープンソースのReact Native関連に依存しているなら、状況を確認したい。SkiaとFlashListは新しい引き受け手が見つかり、Restyleは2026年末までに保管される。
出典
- Native is now the future of mobile at Shopify - Shopify Engineering
- Migrating Shop app from React Native to native - Shopify Engineering
- Shopify Drops React Native for Swift and Kotlin as AI Changes Cross-Platform Development Tradeoffs - InfoQ
関連記事

Bun 1.4、AI主導のRust書き換え版を本番リリース
Bun 1.4はランタイムをZigからRustへ書き換えた初の本番リリース。起動高速化と新APIを提供する一方、批評家は13,044箇所のunsafeブロックを問題視している。

Swift 6.4公開、deferでのasyncとSwift Buildの既定化
Swift 6.4は、deferブロック内の非同期コード、モジュールセレクター、40倍速いWebAssemblyブリッジを導入し、パッケージマネージャーではSwift Buildが既定になりました。

React 19.3公開、View TransitionsとFragment Refsが安定版に
React 19.3が2026年9月9日にリリースされました。View Transitions(ビュートランジション)とFragment Refsが安定版になり、このリリースに破壊的変更はありません。