開発

React Nativeとは?仕組みとNew Architectureの構造・採用判断を実装目線で解説【2026年版】

React Nativeは、ReactとJavaScript/TypeScriptでiOSとAndroidのアプリを1つのコードベースから作るためのフレームワークです。Meta(旧Facebook)が開発してMITライセンスで公開しており、画面の描画にはWebViewではなく各OSのネイティブUI部品を使います。

ただ、2026年時点のReact Nativeは、数年前の解説記事に書かれている姿とは内部構造が変わりました。JavaScriptとネイティブの間で非同期にメッセージをやり取りしていた「Bridge」が姿を消し、0.86系では新規プロジェクトが完全にBridgelessで動きます。この記事では、定義から内部構造、そして受託開発で採用するかどうかの判断材料までを実装者の目線で整理します。

まとめ

  • React Nativeは、Reactの書き方でiOS・Android向けのネイティブUIアプリを作るフレームワークです。表示はWebViewではなくOS標準のUI部品が担います。
  • 内部構造はNew Architectureへ移行済みです。JSIがC++層でJavaScriptとネイティブを直結し、描画はFabric、ネイティブ機能の呼び出しはTurboModulesとCodegenが受け持ちます。
  • 2026年8月時点の最新安定版は0.86系です。0.85系で旧Bridgeへのフォールバックが外れ、0.86系では新規プロジェクトが既定でBridgeless構成になります。
  • 公式ドキュメントは、新規アプリではフレームワーク(Expo)の利用を推奨しています。素のReact Nativeだけで構成すると、ビルドや配信の仕組みを自前で用意する範囲が広がります。
  • 採用が向くのは、Web側にReact資産があり、画面数が多くOS固有機能の比重が小さいアプリです。逆に描画性能を限界まで詰める用途や、OS最新APIを発表直後から使う要件では見送りが妥当です。
  • 運用コストの中心はバージョン追随です。年に複数回のマイナー更新と、それに追随するライブラリ側の対応を織り込んだ保守計画が要ります。

React Nativeの定義とモバイル開発における技術的な立ち位置

React Nativeは2015年にMetaが公開したオープンソースのフレームワークで、Reactのコンポーネント記述をそのままモバイルアプリの画面構築に持ち込みます。掲げられている考え方は「Learn once, write anywhere」で、Reactの書き方を一度覚えれば出力先を変えられる、という設計思想です。1つのコードから全ての環境で同じ見た目を出す方針とは異なり、プラットフォームごとの差は残す前提に立っています。

技術的な特徴は、画面をWebViewで描かない点です。<View><Text>といったコンポーネントは、iOSではUIView、AndroidではViewGroupなど各OSのUI部品に対応づけられる仕組みです。そのため、スクロールの慣性やフォントの扱い、アクセシビリティの挙動にはOS標準のものが適用されます。

クロスプラットフォーム開発という枠組みそのものの整理や、他の選択肢との並べ方はクロスプラットフォームアプリ開発とは|メリット・デメリットと主要フレームワークの選び方で解説しています。Flutterと迷っている段階であれば、FlutterとReact Nativeの違いと選び方|2026年の判断基準が判断材料として適切です。本記事で扱う範囲は、優劣の比較ではなくReact Native側の構造に限定します。

New Architectureを構成する主要技術と各層の役割の全体像

React Nativeの内部構造は、旧来のBridge方式からNew Architectureへ置き換わりました。ここを把握しておくと、性能問題の切り分けやライブラリ選定の判断が速くなります。

JSI:JavaScriptとネイティブを直結するC++層の仕組み

JSI(JavaScript Interface)は、JavaScriptエンジンとネイティブコードをC++レベルで結ぶ層です。旧Bridgeでは、JavaScript側の指示をJSON文字列に直列化してネイティブ側へ非同期に送り、返答も同じ経路を通していました。この直列化と非同期キューが、リスト描画やジェスチャー追従で遅延として現れる原因になっていました。

JSIでは、JavaScriptがネイティブオブジェクトへの参照を保持し、メソッドを同期的に呼べます。データを複製せずに共有できるため、往復のたびに発生していた変換コストが減ります。

Fabric:画面更新を担う新しいレンダラの仕組みと実務上の違い

Fabricは画面描画を受け持つレンダラです。UIの更新を同期的に行える経路を備え、更新の優先度を区別して処理する設計です。アニメーション中に別の状態更新が挟まってフレームが飛ぶ、といった事象への耐性も向上しました。実装者にとっては、ネイティブUIコンポーネントを自作するときのインターフェースが変わる点が実務上の差です。

TurboModulesとCodegenが担うネイティブ機能連携の仕組み

TurboModulesは、カメラや位置情報などネイティブ機能を呼び出すモジュールの新しい仕組みです。旧方式では起動時に全モジュールを読み込んでいましたが、TurboModulesは必要になった時点で読み込みます。起動時間とメモリ使用量の抑制につながります。

Codegenは、TypeScriptの型定義からネイティブ側のインターフェースコードを生成する仕組みです。JavaScript側とネイティブ側の型の食い違いを、実行時ではなくビルド時に検出できます。

Bridgeless構成がReact Nativeの既定になるまでの移行経緯

移行は段階的に進みました。0.76系でNew Architectureが既定となり、0.85系では旧Bridgeへのフォールバックと互換レイヤーが外れています。2026年8月時点の最新安定版は0.86系で、新規プロジェクトは既定でBridgeless構成になります。バージョン番号と適用範囲は更新が続くため、着手時点で公式のリリースノートを確認してください。

既存アプリを移行する場合、影響が出やすいのは自作のネイティブモジュールと、更新が止まっているサードパーティ製ライブラリです。移行判断では、依存ライブラリがNew Architectureに対応済みかを先に棚卸ししてください。

React Native公式が推奨するフレームワーク経由の開発構成

公式ドキュメントは、新規アプリを作る場合にフレームワークの利用を勧めています。ドキュメントには「if you’re building a new app with React Native, we recommend using a Framework.」と明記されており、production-grade Frameworkとして案内されているのがExpoです。Expo側の全体像はExpo(React Native)とはにまとめています。

素のReact Nativeだけで組む選択も可能です。ただしその場合、ビルド構成、ネイティブ依存の管理、配信、OTA更新といった周辺の仕組みを自前で用意する範囲が広がります。既存のネイティブアプリへ部分的に組み込むケースや、社内にモバイル基盤の専任チームがある場合を除けば、フレームワーク経由のほうが工数を見通しやすい構成です。

Expo側の変更点を追う際はExpo SDK 56の新機能と変更点まとめ|React Native 0.85対応・SDK 55からのアップグレード手順を、ネイティブUIをExpo経由で描く仕組みはExpo UI(@expo/ui)とはを参照してください。

React Nativeで実装できる機能と自前実装が必要になる範囲

画面遷移、フォーム、API通信、状態管理、カメラや位置情報といった一般的なアプリ機能は、公式コンポーネントとエコシステムのライブラリで組めます。スタイリングにTailwind CSSの記法を持ち込む構成も選べます(NativeWindとは?Tailwind CSSをReact Nativeで使うための統合ライブラリを解説)。

一方、次のような領域ではネイティブコードの記述が発生します。

  • OSが公開した直後のAPIを使う場合。ライブラリ側の対応を待たずに進めるにはブリッジ実装が要ります。
  • 独自のカメラ処理や映像エンコードなど、フレーム単位の処理を挟む場合。
  • SDKがネイティブでしか提供されていない外部サービスと連携する場合。
  • バックグラウンド実行や省電力制御など、OSごとに作法が分かれる機能を細かく制御する場合。

見積もり時は、要件のうちネイティブ実装が必要な割合を先に切り分けてください。ここを曖昧にしたまま「1コードで両OS対応」と置くと、後工程で工数が膨らみます。

React Nativeを採用する条件と見送るべきプロジェクトの特徴

受託開発の現場で判断材料になる条件を、言い切る形で整理します。

採用が向く条件

  • Web側にReactの実装資産と開発者がいて、その知識をモバイルへ持ち込みたい。型定義や検証ロジックを共有できる余地があるほど効果が出ます。
  • 画面数が多く、業務フォームやリスト表示が中心のアプリである。両OS分を別々に作るコスト差が大きく出る領域です。
  • OS固有機能の比重が小さく、必要な機能が既存ライブラリの範囲に収まる。
  • リリース後も継続的な改修が見込まれ、保守体制を確保できる。

見送りが妥当な場面

  • 描画性能を限界まで詰める要件がある。ゲームや常時描画するグラフィックスは、ネイティブや専用エンジンのほうが素直です。
  • OSの最新APIを発表直後から本番投入する方針である。エコシステム側の追随を待てない要件とは相性が良くありません。
  • 納品後に改修予定がなく、保守要員も置かない。バージョン追随が止まると、OS更新時にビルドが通らなくなるリスクが残ります。
  • 片方のOSしか対象にせず、今後も広げる計画がない。クロスプラットフォーム化の利点が働きません。

KotlinやSwiftの資産を活かす方向で検討するならKotlin Multiplatform(KMP)とFlutter・React Native比較|導入判断を、新興のフレームワークまで視野に入れるならLynxとは?ByteDance製クロスプラットフォーム開発フレームワークの特徴とReact Native・Flutterとの違いも判断材料になります。

React Nativeの運用フェーズで継続的に発生する保守コスト

React Nativeを採用したプロジェクトで見落とされやすいのが、バージョン追随の工数です。マイナーバージョンは年に複数回リリースされ、New Architectureへの移行のように構造へ踏み込む変更も入ります。追随を止めると、OSの新バージョンやストアの要件変更に対応できなくなる時点が来ます。

実務では、次の3点を保守計画に織り込んでおくと安全です。

  • 年に1〜2回のバージョン更新枠を、あらかじめ工数として確保する。
  • 採用するライブラリを、更新頻度とメンテナ体制で選別する。星の数ではなく直近のコミットとIssue対応を見ます。
  • 自作のネイティブモジュールは数を絞る。増えるほど移行時の作業量が比例して増えます。

自社にモバイル開発の体制がない状態で内製に踏み切ると、この保守負荷が後から顕在化します。一創のFlutter / React Native開発は、要件の切り分けから実装・保守までを請け負うサービスです。ネイティブ実装が必要な範囲の見極めから相談いただけます。

よくある質問

React NativeとReactでは役割や画面の出力先がどう違いますか

Reactはコンポーネントの考え方と状態管理の仕組みを提供するライブラリで、出力先を規定しません。React NativeはReactの記述をモバイルのネイティブUIへ結びつける実装です。DOMではなくネイティブのビュー階層を扱うため、HTMLタグやCSSはそのまま使えません。

React NativeはWebViewでアプリを表示する仕組みですか

違います。標準のコンポーネントはOSのUI部品へ対応づけられます。WebViewを埋め込む使い方もできますが、それは選択肢の1つであり、既定の描画方式ではありません。

Expoを使わずReact Nativeアプリを開発することはできますか

フレームワークなしの構成でも開発は可能です。公式ドキュメントにも、その構成を選べる旨の明記があります。ただし同じ箇所では、新規アプリにフレームワークを使う構成が推奨です。既存のネイティブアプリへ組み込む場合を除けば、Expo経由のほうが構成の手間を抑えられます。

New Architectureへ移行しないままでも動きますか

旧構成のまま古いバージョンに留まる選択はできます。ただし0.85系で互換レイヤーが外れているため、そのバージョン以降へ上げる時点で移行は避けられません。OS更新への追随を続ける前提なら、依存ライブラリの対応状況を確認したうえで計画的に移行してください。

1つのコードでiOSとAndroidの開発工数は半分になりますか

半分にはなりません。画面実装やロジックの多くは共通化できますが、OSごとの表示調整、権限まわりの作法、ストア審査への対応、実機検証は個別に発生します。共通化の効果は、要件のうちネイティブ実装が必要な割合で決まります。

関連記事

資料請求

RELATED POSTS 関連記事