powered by TechFeed
表示モード
Deep Dive

ShopifyがReact Nativeを捨ててSwift/Kotlinのネイティブ実装に回帰 — AIで6人・12週間の再構築が可能になり、クロスプラットフォームの優位性が崩れた

9月16日、Bruno Couriolが「Shopify Drops React Native for Swift and Kotlin as AI Changes Cross-Platform Development Tradeoffs」と題した記事を公開した。2020年にReact Nativeを「モバイル開発の未来」と宣言し、5年かけて全アプリを移行したShopifyが、2025年に改めてコミットを表明したわずか1年余り後に方針を全面撤回した。AIコーディングモデルの急速な進化が、クロスプラットフォーム開発の経済的な前提を根底から覆したためだ。5年間の投資を捨てた決断ShopifyのモバイルエンジニアリングはReact Nativeを中心に構築されてきた。2020年の移行宣言以来、全アプリをReact Nativeベースに統一し、2025年にも公式ブログで改めてReact Nativeへのコミットを表明していた。ところが、モバイル責任者のMustafa Aliは、AIコーディングモデルの急速な品質向上を受け、ネイティブコードベースを維持するコストとベネフィットの比率が逆転したと判...

9月16日、Bruno Couriolが「Shopify Drops React Native for Swift and Kotlin as AI Changes Cross-Platform Development Tradeoffs」と題した記事を公開した。2020年にReact Nativeを「モバイル開発の未来」と宣言し、5年かけて全アプリを移行したShopifyが、2025年に改めてコミットを表明したわずか1年余り後に方針を全面撤回した。AIコーディングモデルの急速な進化が、クロスプラットフォーム開発の経済的な前提を根底から覆したためだ。

5年間の投資を捨てた決断

ShopifyのモバイルエンジニアリングはReact Nativeを中心に構築されてきた。2020年の移行宣言以来、全アプリをReact Nativeベースに統一し、2025年にも公式ブログで改めてReact Nativeへのコミットを表明していた。

ところが、モバイル責任者のMustafa Aliは、AIコーディングモデルの急速な品質向上を受け、ネイティブコードベースを維持するコストとベネフィットの比率が逆転したと判断した。「クロスプラットフォームであること」の優位性が薄れ、むしろネイティブ実装の方が合理的になったという判断だ。

転換を後押しした2つの要因

1. React Native新アーキテクチャへの移行コスト

React Nativeには「New Architecture」と呼ばれる大規模なリファクタリングが控えており、ネイティブモジュール統合やレンダリング層、プラットフォーム固有コードの境界を全面的に見直す必要があった。これは相当な工数を要する作業であり、改めてアーキテクチャの選択肢を精査する契機となった。

2. AIコーディングの実用化

たった1人のエンジニアが1週間でPoC(概念実証)を完成させたことが転換点となった。その後、6人のエンジニアが12週間でフラッグシップアプリ「Shop app」を本番環境向けにゼロから作り直した

UIフレームワークにはApple SwiftUIGoogle Jetpack Composeを採用した。両者は宣言的UIという共通の設計思想を持つため、AIエージェントへの指示出しがしやすく、プラットフォーム固有のイディオムにも沿いやすいという利点があった。

計測された成果

移行後、Shopifyが報告した数字は以下の通りだ。

  • コールドスタート遅延:iOS 23%減、Android 50%減
  • セッション安定性:クラッシュフリーセッション率(クラッシュなしに完了したセッションの割合)が**99.5%→99.95%**に改善。これはクラッシュが発生するセッションが約10分の1に減少したことを意味する
  • Androidリリースビルド時間:75%短縮
  • スクロール性能:Androidのネイティブフィードで手動最適化なしに120FPS持続

(Android上のネイティブとReact Nativeの比較。出典: Migrating Shop app from React Native to native

AIエージェントをどう使ったか

興味深いのは、AIエージェントの作業効率を上げるためのアーキテクチャ上の工夫だ。Shopifyはビジネスロジックとアプリケーション状態管理を、UIやモバイルプラットフォーム層から明確に分離した。

モバイルシミュレーターはフィードバックループが遅い。そこでAIモデルはシミュレーターやUIのレンダリングを使わず、デスクトップ上でアクションのディスパッチ、ナビゲーション状態の操作、結果のアサーションをミリ秒単位で実行できるよう設計された。シミュレーターは自動エンドツーエンドテストにのみ使用する構成だ。

とはいえ、AIが全てを担ったわけではない。アーキテクチャ設計、エージェントへのタスク分割、完了検証、エラー修正には依然として人間のエンジニアが深く関与した。

コミュニティの反応

この発表はモバイル開発コミュニティで大きな議論を呼んだ。

Redditでは「Shopifyが比較対象にしているのは旧React Nativeアーキテクチャであり、新アーキテクチャに移行すれば同等かそれ以上の結果が得られた可能性がある」との指摘がある。

Hacker Newsでは、OTAアップデート(Over-the-Air Update)が使えなくなる点が大きなトレードオフとして挙げられた。ネイティブアプリはアップデートのたびにアプリストアのレビューを通過する必要があり、リリース頻度が下がる。これに対してあるエンジニアはこう述べている

私はネイティブとクロスプラットフォームの両方を経験してきた。レビューなしに素早く変更を加えられるというメンタリティは、クロスプラットフォーム、特にWeb出身の開発者から来ることが多い。

変更が安くて速いから、リリース前に全てを徹底的にテストするプレッシャーが少ない。

ネイティブでは各リリースのロールバックが難しいことを知っているので、リリース周りのツール整備に力を入れ、変更を慎重に考え、出荷前に徹底的にテストする傾向がある。数週間ごとに1回、大きくて安定したリリースを選ぶ形になる。

最終的には、どちらのアプローチも機能する。

今後の予定

ShopifyはPoint of SaleアプリとInboxアプリを今後1年かけてネイティブに移行する予定だ。Point of Saleはオフライン決済や周辺機器連携など、ネイティブAPIへの低レイヤーアクセスが求められる複雑なアプリであり、Inboxは通知・バックグラウンド処理の信頼性が重要なコミュニケーションツールだ。いずれもShop appよりも要件が多岐にわたり、移行の難易度は高いと見られる。

また、300以上の画面、ホーム・ロック画面ウィジェット、Apple Watchアプリ、Siriショートカットを含む本体のShopifyアプリは今年中に完了させる計画だという。Shop appでの12週間という実績がそのまま再現できるかは未知数だが、アーキテクチャの知見とAIツールの活用ノウハウが蓄積された状態での挑戦となる。

詳細はShopify Drops React Native for Swift and Kotlin as AI Changes Cross-Platform Development Tradeoffsを参照していただきたい。