Vega向けReact Nativeの概要
React Nativeについて
React Native(RN)(英語のみ)は、ウェブ開発フレームワークであるReactを利用してネイティブアプリを構築する、オープンソースのモバイルアプリ開発フレームワークです。React Nativeでは、ReactプリミティブはネイティブプラットフォームUIにレンダリングされます。つまり、作成されたアプリは、サポートされているプラットフォーム言語で構築されたほかのアプリと同じネイティブプラットフォームAPIを使用することになります。React Nativeは当初、モバイルプラットフォーム向けに設計されていましたが、コミュニティの支援を得て行われたさまざまなソースツリー外の取り組みにより、TV、ウェブ、デスクトップなどのほかのプラットフォームにサポートが拡大されました。
React Nativeは、次のような機能により、迅速な開発サイクルと効率的なエンジニアリングを実現します。
- クロスプラットフォーム開発 - 単一のコードベースを使用して複数のプラットフォーム用のアプリを作成します。
- ネイティブのパフォーマンス - ネイティブコードにコンパイルすることで、ネイティブに近いパフォーマンスを実現します。
- 迅速な開発とイテレーション - ホットリロード機能により、変更をリアルタイムで確認できます。
- 対話操作パターン - 複数の対話操作パターン(リモコン、タッチ、音声)をサポートします。
- フォーカス管理 - 組み込みのフォーカス管理機能により、リモコンでTVアプリを操作できます。
- ネイティブモジュールとの統合 - 必要に応じてOS固有の機能に簡単にアクセスできます。
Vega向けReact Native
Vegaは、すべてのサポート対象デバイスで動作する単一のアプリを作成できる、Amazonの新しいSDKです。Vega向けReact Native(RNV)は、Vega SDKでReact Native開発をサポートするソースツリー外のプラットフォーム実装です。RNVでは、なじみのある開発者エクスペリエンスを活用しながら、AmazonのポータブルなSkiaベースのUIフレームワークやその他のネイティブプラットフォームAPIを利用します。
Vega向けReact Nativeは、React Nativeエコシステムのクロスプラットフォームの原則を取り入れ、RN APIや人気のあるライブラリと同等の機能を提供することを目指しています。RNVでは、多くのRNコアコンポーネントとAPIがサポートされ、Vega OSとその他のOSプラットフォーム間でアプリコードを再利用できるように、RNライブラリが移植されています。また、Vega SDKには一般的なRNツールのほか、追加の開発ユーティリティとテストユーティリティのサポートが含まれているため、高パフォーマンスのランタイムを利用しつつ、アプリの開発スピードも速めることができます。
Vega向けReact Nativeの拡張機能
RNVでは、現在のTVデバイスはもちろん、将来登場するほかのデバイスカテゴリーでVega OS固有の機能をサポートするために、React Nativeが「ストック」バージョンを超えて拡張されています。これらの拡張機能により、RNコアとRN TvOSからの機能を適応させ、Vega固有のAPIを備えた追加機能を提供して、Amazonデバイスの要件に対応します。
この統合によって提供される主な機能は次のとおりです。
- RNの新しいアーキテクチャに基づいたファブリックモジュールおよびターボモジュールのサポートと、JSI経由でNode-APIを利用してターボモジュールを開発するための安定したAPIサポート。
- OSによって提供されるRNランタイムと、アプリのフットプリントを小さくし、起動時間を短縮するその他のコアコンポーネント。
- RN TvOSのコア機能。
TVFocusGuideViewやTVEventHandlerがあります。 - W3C MSE/EME仕様に準拠したメディアフレームワーク。再生およびメディアコントロールでウェブJSプレーヤーの再利用が可能になります。
- Vega固有のAPI拡張。
VegaAppState、FocusManager、SplashScreenManager、I18Nなどがあります。 - 存続期間の短いタスクやサービスを実行するヘッドレスRNプロセスのサポート。
- レイテンシ指標(描画完了までの時間(TTFD)など)とストレージ指標の最適化。
- オープンソースのReact Nativeライブラリの適応化と移植(可能な場合)。
Vega向けReact Nativeでの開発
Vega向けReact Nativeは、通常のReact Nativeのアプリ開発ワークフローに従います。Vega SDKのプロジェクトテンプレートのいずれかを使用して開発を始めることも、既存のReact NativeプロジェクトのコードベースにRNVサポートを追加することもできます。RNVには、Vegaアプリをビルドするためのreact-native CLI統合を提供するReact Nativeプラグインが含まれています。さらに、Vega SDKにより、ネイティブモジュールの自動リンクと、Vegaアプリのビルド、実行、テストのサポートが提供されます。
開発者ツール
Vega SDKは一連の開発ツールをサポートしています。これには、Vega専用に構築されたツールと、よく使用されるReact Nativeコミュニティのツールが含まれています。
Vega固有のツール
- Vega Studio - VegaアプリをビルドするためのメインのIDEとして機能するVS Code拡張機能です。Vega Studioでは、アプリの作成、ビルド、実行に加えて、パフォーマンスツールを使用したテストを行うことができます。
- Vega CLI - アプリをビルドしてシミュレーターで実行できます。
- Vega仮想デバイス - 開発中にアプリをローカルで実行するために使用します。
- VDAユーティリティ - アプリをVega対応デバイスにインストールして実行するためのコマンドラインツールです。
コミュニティツール
- Appium - 統合テストとエンドツーエンドテストを自動化します。
- Charles Proxy - ネットワークトラフィックを検査します。
- Flashlight - RNアプリのパフォーマンス指標を自動化します。
- React DevTools - Reactコンポーネントのデバッグと検査を行います。
今後も、Shopify Performanceなどのほかのコミュニティツールや、開発エクスペリエンスを向上させるその他のツールとの統合が続けられる予定です。
バージョンとアップグレード
Vega向けReact Nativeは、React NativeランタイムをOSでネイティブにサポートするという独自のアプローチを採用することで、ディスク上のアプリサイズを最適化し、アプリの起動時間を短縮します。RNVでは現在、新しいアーキテクチャを備えたRN 0.72がサポートされています。将来のリリースではRN 0.76がサポートされる予定です。Vega OSは、アプリが将来のReact Nativeバージョンおよびライブラリとの互換性を維持できるように設計されています。
詳細については、RNVのバージョン管理を参照してください。
関連トピック
Last updated: 2025年9月30日

