Title: ShopifyがReact Nativeを廃止し、SwiftとKotlinへ移行

ShopifyはReact Nativeのコードベースを撤去し、iOSおよびAndroidアプリをSwiftとKotlinで再構築しています。これにより、クロスプラットフォーム・フレームワークを用いた6年間の試行が終了しました。この移行を後押ししたのはAIを活用した開発ツールであり、Androidの起動時間の短縮、アプリサイズの109MB削減、そしてクラッシュ率の約10分の1への低減を実現しました。

ShopifyがReact Nativeから離れた理由

2020年、Shopifyは両プラットフォームで動作する単一のJavaScriptコードベースを記述するためにReact Nativeを選択しました。これにより、2つのネイティブスタックを維持する手間が省け、迅速な機能展開を求める市場のニーズにも合致していました。

今日、その計算式は変わりました。Shopifyは「コーディング・エージェント(coding agents)」、つまり重複する作業の多くを処理するAIプログラムを運用しています。現在では、個別のSwiftおよびKotlinプロジェクトを維持するコストは、ネイティブコードがもたらすパフォーマンスと信頼性の向上によるメリットを下回っています。

パフォーマンス向上による成果

Shopifyの内部ベンチマークでは、移行後に劇的な改善が見られました。

  • Androidの起動時間が4,433msから2,233msに短縮。
  • Androidのパッケージサイズが109MB減少。
  • クラッシュの頻度が約10分の1に減少。
  • スクロールが常に120fpsに到達。

書き換えを可能にしたAIツール

この移行は、単なる「コードの書き換え」プロジェクトではありませんでした。Shopifyは、作業の負担を抑え、機能の同等性(feature parity)を保証するために、2つの社内AIツールを構築しました。

Piは、AIエージェントに既存のアプリの挙動をドキュメント化させ、各プラットフォームに必要な作業の概要を作成させ、新しいネイティブ実装が以前の機能と一致しているかを確認する役割を担います。

Tardisはデバッグアシスタントとして機能し、エージェントにライブログやアプリの状態へのアクセス権を与えることで、人間の助けを借りずに自ら変更内容を検証できるようにします。

両ツールは、「AndroidとiOSは常に同じ機能を持たなければならない」という単一のルールを徹底しています。この絶え間ないパリティチェックにより、マルチプラットフォーム・プロジェクトで頻発する「機能の乖離(drift)」を防ぐことができました。

トレードオフ:OTAアップデートの喪失

ネイティブ化するということは、Shopifyがユーザーに直接アップデートを配信できなくなることを意味します。すべての変更はApp Storeの審査プロセスを経る必要があり、ホットフィックスや新機能の導入に遅延が生じます。迅速なイテレーションを重視するコマースプラットフォームにとって、この摩擦は無視できないものです。

反論:React Nativeは死んでいない

Shopifyの決定は、独自の文脈を反映しています。つまり、重複作業の負担を肩代わりできる特注のAIエージェントを備えた、大規模なエンジニアリング組織であるということです。フレームワークは依然として進化しており、多くのアプリが共有コードベースによる恩恵を受け続けています。

今後の注目点

  • AI主導のネイティブ開発
  • React Nativeのエコシステム
  • App Storeの審査期間

まとめ

Shopifyの転換は、AIがモバイル開発の経済性を書き換えられることを示しています。インテリジェントなエージェントがコードの重複という反復作業を引き受けるとき、ネイティブなSwiftやKotlinによるパフォーマンス向上は、単一のJavaScriptコードベースという利便性を上回るほど強力なものとなります。この動きはReact Nativeそのものに対する審判ではなく、ツールがいかに劇的に天秤を傾かせ得るかを思い出させるものです。