Skip to content
Tech AI Wire

ShopifyがReact NativeをやめてSwiftとKotlinへ

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

著者 Tech AI Wire Team

3 分で読めます

プレーンなグレーの背景に立つShopifyのPoint of Saleカード端末。

数字で見る

to rebuild the Shop app, with 6 engineers
12 weeks
smaller Android app, a 37% cut
-109 MB
fewer crashes, per Shopify
10x
Shop app cold startup time
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 ms2,233 ms
iOSの起動3,200 ms2,466 ms
セッション安定性99.5%以上99.95%以上
Androidのアプリ容量293 MB184 MB
iOSのアプリ容量67 MB68 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年末までに保管される。

出典

  1. Native is now the future of mobile at Shopify - Shopify Engineering
  2. Migrating Shop app from React Native to native - Shopify Engineering
  3. Shopify Drops React Native for Swift and Kotlin as AI Changes Cross-Platform Development Tradeoffs - InfoQ

関連記事