LASSIC Media らしくメディア

2026.06.23 らしくコラム

React Nativeの新アーキテクチャ移行を外注する進め方【Fabric/TurboModules】

LASSIC IT事業部|元請(プライムベンダー)としてシステム保守・運用を受託

mobile app development code

この記事のポイント

  • React Native新アーキテクチャはBridgeを廃止してJSI(JavaScript Interface)を基盤とし、TurboModulesとFabricにより低レイテンシ・高パフォーマンスを実現しています。React Native公式で0.76以降デフォルトとなっており、今後のアップグレードを続けるうえで移行は避けられない対応です。
  • 移行の進め方は「現状調査→依存ライブラリ棚卸し→ネイティブモジュール対応→段階的検証→リリース」の5フェーズで、依存ライブラリの新アーキ対応状況の確認が最初のブロッカー特定として重要です。
  • 移行調査・実装・回帰テストを外注で進める場合は、React Native経験とネイティブ(iOS/Android)実装の両方を持つ委託先を選ぶことが、手戻りリスクを抑えるうえで大切です。

React Nativeの新アーキテクチャとは — Bridge廃止からJSI・TurboModules・Fabricへ

smartphone software

React Native新アーキテクチャへの移行外注とは、既存のReact NativeアプリをBridge(非同期メッセージキュー)ベースの旧構造から、JSI(JavaScript Interface)を基盤とした新しいアーキテクチャへ書き換える作業を、専門知識を持つ外部パートナーに委託する取り組みです。

旧アーキテクチャ JavaScript ↕ Bridge(非同期) Native Modules レイテンシ大・同期不可 移行 新アーキテクチャ JavaScript(Hermes) JSI(共有メモリ) TurboModules / Fabric 低レイテンシ・C++コア
図:旧アーキテクチャ(Bridge)と新アーキテクチャ(JSI/TurboModules/Fabric)の構成比較

React Native公式によると、新アーキテクチャの中心にあるのはJSI(JavaScript Interface)です*1。旧アーキテクチャではJavaScriptとネイティブ層の通信にBridgeと呼ばれる非同期メッセージキューを使っていました。Bridgeは通信のたびにシリアライズ・デシリアライズが発生するため、頻繁なネイティブ呼び出しを行う画面でパフォーマンスが低下しやすい構造でした。

新アーキテクチャではBridgeを廃止し、JSIを介してJavaScriptからC++のネイティブ関数を直接呼び出せるようになりました。これによって通信のオーバーヘッドが減り、JavaScriptとネイティブ層の同期処理も可能になっています。

TurboModules — 新しいネイティブモジュール方式

TurboModulesは、JSIを基盤とした新しいネイティブモジュールの仕組みです*1。旧アーキテクチャのNative Modulesがアプリ起動時に全モジュールを初期化していたのに対し、TurboModulesは必要なモジュールのみを遅延ロードします。起動時間の短縮と、使わないモジュールのメモリ消費削減が期待できます。

既存のネイティブモジュールをTurboModules対応に書き換えるには、TypeScriptによる型定義(Codegen)とiOS/Android側のネイティブコード修正が必要です。独自のネイティブモジュールを多数持つアプリでは、この書き換え作業が移行コストの中心となります。

Fabric — 新しいレンダラ

FabricはReact Nativeの新しいUIレンダラです*1。旧レンダラはJavaScriptスレッドとUIスレッドを非同期で橋渡しする構造でしたが、FabricはC++で実装されたコアを持ち、UIの更新をJavaScriptと同期できるようになりました。スクロール中のアニメーション滑らかさや、ネイティブコンポーネントとReact Nativeビューの組み合わせ時の描画精度向上が見込まれます。

Hermes — デフォルトのJSエンジン

React Native公式はJavaScriptエンジンとしてHermesをデフォルトで採用しています*1。HermesはReact Native向けに最適化された軽量エンジンで、アプリの起動時間短縮とメモリ使用量の削減に寄与します。新アーキテクチャはHermesと組み合わせることで性能面のメリットをより大きく引き出せます。

なぜ今移行が必要か — デフォルト化・エコシステム対応・サポート動向

React Native公式によると、0.76リリースで新アーキテクチャがデフォルトとなり、0.80系でさらに安定度が増しています*1。最新の対応状況はReact Native公式サイト(reactnative.dev)でご確認ください。この変化により、移行は将来対応ではなく現在進行中の実務課題となっています。

バージョンアップを続けるには移行が前提

新アーキテクチャがデフォルト化されたことで、React Nativeのバージョンアップを追い続けるうえで旧アーキテクチャのままでは非互換が生じるリスクが高まっています。将来的なOSアップデート対応やセキュリティパッチ適用のためにも、新アーキテクチャへの移行は避けられない対応です。

エコシステムの対応が進んでいる

React Nativeの主要なライブラリやコミュニティも新アーキテクチャへの対応を進めています。新アーキテクチャ対応済みのライブラリが増えるほど、移行後の開発体験が向上します。反対に対応を先送りすると、旧アーキテクチャに依存したライブラリを使い続けるリスクが蓄積します。

新規機能開発への影響

Fabricが提供するConcurrent Mode(Reactの並行レンダリング)との統合や、新しいReact機能(Suspenseなど)を活用するためにも新アーキテクチャが前提となります。新アーキテクチャへの移行は、現在の技術的負債を解消しながら将来の機能拡張の基盤を整える作業でもあります。

移行を外注で進める5つのフェーズ

既存のReact Nativeアプリを新アーキテクチャに移行するにあたっては、段階的なアプローチが推奨されています*1。外注で進める場合の標準的な5フェーズを整理します。

フェーズ1:現状調査 — 移行コストの見積もり

まず現状アプリのReact Nativeバージョン、使用している依存ライブラリの一覧とバージョン、独自ネイティブモジュール・カスタムネイティブコンポーネントの有無を確認します。この調査結果が移行コスト全体の見積もり根拠となるため、発注前にある程度の情報整理を行っておくか、初期フェーズとして調査を委託することが大切です。

独自ネイティブモジュールが多いほど移行コストは増加します。ネイティブモジュールが少なくサードパーティのライブラリのみで構成されているアプリは比較的移行しやすく、独自モジュールが多いアプリは移行の難易度が上がります。

フェーズ2:依存ライブラリの棚卸しと対応方針の決定

使用しているすべてのライブラリについて、新アーキテクチャへの対応状況を確認します。React Native Directory(reactnative.directory)では、ライブラリごとの新アーキテクチャ対応状況を確認できます*2。対応済み・対応予定・未対応・メンテナンス停止の4分類で整理し、未対応ライブラリには「対応版の採用待ち」「代替ライブラリへの切り替え」「独自ラッパーの実装」のいずれかの対応方針を決めます。

この棚卸し作業は移行のスコープと工数の確定に直結します。ライブラリ数が多いアプリでは、外注先に依頼する際に調査対象の優先順位付けを事前に行っておくと効率的です。

フェーズ3:ネイティブモジュール・コンポーネントのTurboModules/Fabric対応

独自のネイティブモジュールをTurboModules方式に書き換えます。TypeScriptによるCodegenの型定義ファイルを用意し、iOS(Objective-C/Swift)とAndroid(Java/Kotlin)のネイティブ実装をJSIに対応した形式に変更します。カスタムネイティブコンポーネントはFabric対応のViewManager実装に書き換えます。

ネイティブ実装の変更はiOSとAndroidの両方が必要です。ReactとJavaScriptの知識だけでは対応できないため、ネイティブ開発の経験を持つエンジニアが必要な工程です。内製チームにネイティブ開発のリソースがない場合は、この工程を外注に委ねることがリスク軽減につながります。

フェーズ4:段階的な有効化と動作検証

React Native公式は新アーキテクチャへの移行を段階的に進めることを推奨しています*1。アプリ全体を一度に切り替えるのではなく、画面単位・モジュール単位で新アーキテクチャを有効化しながら動作を確認します。Hermesエンジンの有効化から始め、TurboModulesとFabricを順に有効化する流れが一般的です。

この段階では、UIの描画タイミングや非同期処理の挙動が旧アーキテクチャと異なる箇所が見つかることがあります。主要な画面とユーザーフローを対象とした実機テストが欠かせません。

フェーズ5:回帰テスト・QA・リリース

新アーキテクチャへの移行後、全機能・全画面を対象にした回帰テストを行います。特にネイティブモジュールを使う機能、アニメーション・スクロール処理、非同期処理を含む画面は重点的に確認が必要です。自動テスト(Detox等のE2Eフレームワーク)が整備されていれば確認工数を抑えられます。テストを経て問題がないことを確認してからリリースに進みます。

移行の難所と注意点 — 未対応ライブラリ・独自モジュール・回帰テスト

react programming

React Native新アーキテクチャへの移行には、一般的なバージョンアップ対応とは異なる固有の難しさがあります。よくつまずくポイントを3点に整理します。

難所1:未対応ライブラリがブロッカーになる

移行の際にすべての依存ライブラリが新アーキテクチャに対応済みとは限りません。移行に取り掛かった後で未対応ライブラリが見つかると、そのライブラリの代替を探すか、独自でラッパーを実装するかの判断が必要になります。代替ライブラリへの切り替えはAPIや挙動が変わるため、呼び出し元コードの修正が連鎖することもあります。

この問題を防ぐには、フェーズ2の依存ライブラリ棚卸しを移行着手前に完了させることが重要です。棚卸し結果によっては移行計画そのものを再検討する必要が生じるため、調査を後回しにするとスケジュールのずれが大きくなります。

難所2:独自ネイティブモジュールの書き換えはiOS/Android両方が必要

独自のNative Modulesをそのまま移行しようとすると、TurboModulesの仕様に合わせてTypeScriptの型定義(Codegenの仕組み)を追加し、iOSとAndroid双方のネイティブ実装を書き換える作業が発生します。これはReactの知識だけでは対応できず、Swift/Objective-CとJava/Kotlinの両方の知識が必要です。

独自モジュールの書き換えを誤ると、特定の機能が動作しなくなる障害に直結します。内製チームにネイティブ実装の経験がない場合、この工程を外注に任せることでリスクを抑えられます。

難所3:回帰テストのカバレッジ確保

Fabricへの移行はレンダリングエンジン自体が変わるため、旧アーキテクチャでは問題なかったUIの描画タイミングや状態管理の挙動が変化することがあります。自動テストが少ないアプリでは、変更後の全画面・全機能を手動で確認する工数が膨らみます。

移行作業と並行してE2Eテスト(Detox等)を整備しておくと、移行後の品質確認を効率化できます。回帰テストのカバレッジが不十分なままリリースすると、本番環境で予期しない動作が発生するリスクがあります。

難所 発生タイミング 対策
未対応ライブラリの発見 フェーズ2(棚卸し)以降 移行前にReact Native Directoryで全ライブラリの対応状況を確認し、ブロッカーを早期特定する。
代替ライブラリへの切り替えスコープを計画に含める。
独自ネイティブモジュールの書き換え フェーズ3(実装) Codegen(TypeScript型定義)とiOS/Android両対応の実装が必要。
ネイティブ実装経験のあるエンジニアを確保するか外注に委ねる。
回帰テストのカバレッジ不足 フェーズ4〜5(検証・QA) Detox等のE2Eテストを事前に整備し、主要フローを自動化する。
自動化が難しい場合は実機テストの対象範囲を事前に明確化する。

外注の使いどころ — 調査・実装・検証の委託判断軸

React Native新アーキテクチャへの移行を外注で進める場合、どの工程を委託するかの判断が費用対効果に直結します。内製チームのスキルセットと移行の難所を照らし合わせて、委託スコープを決めることが大切です。

外注が効果的な工程:ネイティブモジュール実装

TurboModules/Fabric対応の実装は、React Native・iOS・Androidの三つの技術領域にまたがる作業です。内製チームがJavaScript/Reactのみでネイティブコードのスキルがない場合、この工程を外注に委ねることでリスクを大きく下げられます。

移行実装を誤るとアプリ全体のクラッシュや特定機能の停止につながるため、実績のある外部パートナーへの委託は品質確保の手段として有効です。

外注が効果的な工程:初期調査・現状把握

移行コストの見積もりに必要な現状調査(依存ライブラリの棚卸し・独自モジュールの洗い出し・移行可否の判断)を外注として切り出す方法があります。調査結果を踏まえて社内で移行のGo/No-Go判断を行い、移行実装に進む場合は改めて委託範囲を決める流れです。

調査フェーズは要件が不確定なため、準委任(SES)形態で柔軟に進める選択肢が向いています。調査完了後に作業スコープが固まれば、実装フェーズは請負(固定スコープ)での委託も選べます。

外注が効果的な工程:回帰テスト・QA支援

移行後の回帰テストは、Detox等のE2Eテストフレームワークの知識とモバイルアプリのQAノウハウが必要です。テスト計画の設計から実機での検証実施まで外注に委ねることで、内製チームは通常の機能開発業務と並行して移行を進めやすくなります。

委託先を選ぶ3つの確認ポイント

  • React Native経験とネイティブ実装の両立:TurboModules/Fabric対応にはiOS(Swift/Objective-C)とAndroid(Kotlin/Java)のネイティブ実装経験が必須です。React Nativeのみでネイティブ実装の実績がない会社では対応が困難です。
  • 新アーキテクチャ対応の実績:実際に新アーキテクチャへの移行を手がけたプロジェクト実績があるかを確認します。提案書や技術ヒアリングでCodegen・JSIへの言及があるかどうかが指標になります。
  • 移行後の継続保守体制:移行フェーズが終わった後も、React Nativeのバージョンアップ追従やOSアップデート対応を継続的にサポートできる体制を持つ会社を選ぶと、リリース後のリスクを抑えられます。

依頼前の技術ヒアリングでは「独自ネイティブモジュールをTurboModules対応に書き換えた経験があるか」「移行中に未対応ライブラリが見つかった場合の対処方針はどうするか」を具体的に確認することで、技術力と問題解決力を見極めやすくなります。

まとめ:React Native新アーキテクチャ移行外注で押さえる3つの判断軸

本稿では、React Native新アーキテクチャ(JSI/TurboModules/Fabric)への移行を外注で進める際の仕組み・フェーズ・難所・委託判断軸を整理しました。要点を3点に集約します。

第一に、移行の難易度は依存ライブラリの対応状況と独自ネイティブモジュールの数で決まります。着手前に現状調査と棚卸しを完了させ、ブロッカーを早期特定することが計画の精度を高めます。

第二に、TurboModules/Fabric対応の実装はReact Native・iOS・Androidの三領域にまたがるため、内製チームにネイティブ実装のスキルがない場合は外注に委ねることがリスク軽減につながります。

第三に、委託先を選ぶ際はReact Native経験だけでなくネイティブ実装の実績と新アーキテクチャ対応経験を確認し、移行後の継続保守まで対応できる体制があるかを確かめることが大切です。

よくある質問

React Native新アーキテクチャへの移行は今すぐ必要ですか?

React Native公式によると、0.76以降で新アーキテクチャがデフォルトとなっており、0.80系でさらに安定度が増しています。今後のバージョンアップを続けるうえで移行は避けられない対応です。依存ライブラリの対応状況やネイティブモジュールの数によって移行コストが変わるため、早めに現状調査を始めることをお勧めします。最新の対応状況はReact Native公式サイト(reactnative.dev)でご確認ください。

BridgeとJSIの違いは何ですか?

旧アーキテクチャのBridgeはJavaScriptとネイティブ層の通信に非同期メッセージキューを使っており、通信のたびにシリアライズ・デシリアライズが発生します。JSI(JavaScript Interface)はこのBridgeを廃止し、JavaScriptからC++のネイティブ関数を共有メモリを介して直接呼び出せる仕組みです。通信のオーバーヘッドが減り、同期処理も可能になるため、高頻度のネイティブ呼び出しを行う画面のパフォーマンス改善が期待できます。

移行に使う外注の形態はSESと請負のどちらが向いていますか?

移行の初期調査・現状把握フェーズは要件が不確定なためSES(準委任)で柔軟に進める選択肢が向いています。依存ライブラリ棚卸しと移行可否の調査が終わり、作業スコープが確定したら請負(固定スコープ)で受託する形態も選べます。どちらの契約形態が適切かは移行規模・ネイティブモジュールの複雑さによるため、見積り前に現状調査を委託して規模感を把握することが大切です。

新アーキテクチャに未対応のライブラリが使われていた場合はどうすればよいですか?

まず対象ライブラリのGitHubリポジトリやIssuesで新アーキテクチャ対応計画を確認します。近い将来対応予定のライブラリであれば、バージョンアップを待つか対応版のベータを採用する判断ができます。対応予定がない場合は、同等機能を持つ別ライブラリへの代替、もしくは自社でラッパーをTurboModules方式で書き直す対応が必要です。どのライブラリがブロッカーになるかを早期に特定することが、移行スケジュール管理の前提となります。

移行後に回帰テストはどの程度必要ですか?

新アーキテクチャへの移行はレンダリングエンジン(Fabric)とネイティブモジュール(TurboModules)の両方が変わるため、UIの描画タイミングや非同期処理の挙動が変化する場合があります。主要な画面・ユーザーフロー・ネイティブモジュールを使う機能を対象に、実機での動作確認が必要です。自動テスト(DetoxなどのE2Eテストフレームワーク)をある程度整備しておくと、回帰確認の工数を抑えられます。

著者:テレリモ総研編集部 鈴木 亮佑

LASSICに相談するメリット

LASSICは元請(プライムベンダー)としてスマートフォンアプリ・Webシステムの受託開発に対応しています。React NativeアプリのiOS/Androidネイティブ実装から新アーキテクチャ(TurboModules/Fabric)対応まで、要件定義・設計・実装・リリース後の保守を一貫して支援できる体制を整えています。移行コストの概算調査や委託スコープのご相談もお気軽にどうぞ。


ITアウトソーシング・システム開発のご相談はLASSICへ

元請(プライムベンダー)として、貴社の課題に合わせた体制構築・開発支援をご提案します。まずはお気軽にご相談ください。

無料相談はこちら

ご不明な点はお問い合わせフォームからもご連絡いただけます。

  1. *1 出典:React Native「The New Architecture」(https://reactnative.dev/docs/the-new-architecture/landing-page)— React Native公式による新アーキテクチャ(JSI・TurboModules・Fabric・Hermes)の概要・移行ガイド
  2. *2 出典:React Native Directory「reactnative.directory」(https://reactnative.directory/)— ライブラリごとの新アーキテクチャ対応状況を確認できるコミュニティ公式ディレクトリ

View