Fire OSアプリをVegaに移植する
アプリ移植は、既存のFire OSアプリをVegaアプリに移行するAI支援ワークフローです。AI向けAmazon Devices Builder Toolsを使用して、ソースコードを分析し、移行計画を生成し、動作する Vega アプリを作成します。画面ごとに手動で書き換えることなく、既存のFire OSアプリをVegaに移行したい場合に使用します。
このページでは、アプリの移植がサポートする内容、仕組み、実行方法について説明します。
アプリの移植の機能
アプリの移植は、Fire OSアプリからVegaアプリへの変換を自動化します。4つの移行パスを処理します。
| ソースアプリタイプ | 出力 |
|---|---|
| Fire OS WebViewアプリ | Vega WebViewアプリ |
| Fire OS React Nativeアプリ | Vegaアプリ向けReact Native |
| Fire OS ネイティブアプリ(Java または Kotlin) | Vegaアプリ向けReact Native |
| ウェブURL(ソースコードなし) | Vega WebViewアプリ |
アプリの種類を自分で判断する必要はありません。アプリの移植はプロジェクト構造を検査し、どのタイプがサポートされているかを検出し、一致するパスをたどります。検出速度を上げるためにプロンプトでアプリタイプに名前を付けることができますが、アプリの移植ではその名前がプロジェクト構造と照らし合わせて検証されます。確信が持てない場合は、続行する前に確認メッセージが表示されます。
動作のしくみ
アプリの移植は6段階に分かれています。
- フェーズ1: 検証 - アプリの移植はアプリタイプを検出し、メタデータ(パッケージ名とアプリ名)を収集し、プロジェクト構造を検証します。
- フェーズ2: 計画 - アプリの移植は、ソースコードをファイルごとにスキャンし、Fire OSのAPIとパターンを同等のVegaにマッピングし、移行ガイドを生成します。
- フェーズ3: 実行 - アプリの移植は、適切なテンプレートからVegaプロジェクトをスキャフォールディングし、移行ガイドを適用してアプリのコードを作成します。
- フェーズ4: ビルドと検証 - アプリの移植は、Vegaアプリをビルドし、移行検証テストを実行し、接続されたデバイスにインストールし、起動します。
- フェーズ5: ガイド付きAIレビュー - アプリの移植はインタラクティブなセッションを開きます。このセッションでは、デバイス上でアプリをテストし、問題を報告してAIエージェントが診断して修正できるようにします。
- フェーズ6: パフォーマンスの比較(オプション)- アプリ移植では、アプリの起動時間、UIの流動性、メモリ使用量をガイドラインのしきい値または元のFire OSアプリと比較してベンチマークします。
プロセス全体を通して、アプリの移植は自動的に移行できないものはすべて、生成されたプロジェクトのNextSteps.mdファイルに文書化します。
前提条件
アプリの移植を開始する前に、以下のものが揃っていることを確認してください。
- AIエージェント用にAmazon Devices Builder Toolsがインストールされ、設定されています。
- Vega SDK v0.22以降Vega SDKのインストールを参照してください。
- フェーズ4以降向けのVegaデバイス。物理デバイスが接続されていない場合、アプリケーションポーティングはVega仮想デバイス(VVD)を起動するので、フローはブロックされません。スクリーンショットのサポートやパフォーマンスツール分析はVVDでは利用できないため、物理デバイスをお勧めします。
- Fire OSアプリのソースコード、またはラップするウェブURL。
- Fire OS デバイス(オプション、Fire OSとVegaのパフォーマンス比較をフェーズ6で有効にする)。
package.jsonまたはAndroidManifest.xmlが存在する場所)を指していることを確認します。他の場所を指している場合、アプリの移植はアプリの種類を判断できません。トラブルシューティングを参照してください。アプリ移植を開始する
アプリの移植を開始するには、AIエージェントのチャットで以下のいずれかのプロンプトを使用してください。
Port my TV app to Vega(TVアプリをVegaに移植してください)
アプリタイプをより具体的に指定するには、次のいずれかのプロンプトを使用してください。
Convert my Fire OS WebView app to a Vega Web App(Fire OS WebViewアプリをVegaウェブアプリに変換してください)
Port my Fire OS React Native app to React Native for Vega(Fire OS React Native アプリをVega向けReact Nativeに移植してください)
エージェントは、何を変換したいのか、どこで出力を作成するのかを尋ねます。以下のいずれかを指定してください。
- エージェントがアプリタイプを自動検出できるようにするFire OSアプリのソースコードへのパス。
- ウェブURL。エージェントはこれを使用してURLをラップするVega WebViewアプリを作成します。
その後、エージェントは6つのフェーズを実行します。フェーズ5(ガイド付きレビュー)中に対話して機能を検証し、問題を報告します。
npm installの失敗は、フェーズ3(実行)でよく発生しますが、通常はバージョンの競合やNPMレジストリトークンの有効期限が切れていることが原因です。修正方法については、トラブルシューティングを参照してください。サポートされている移行パス
アプリの移植は、次の移行パスをサポートしています。
Fire OS WebViewアプリからVega WebViewアプリへ
アプリ移植は、UIがWebView内でWebコンテンツとして実行されるWebViewベースの(HTML5ハイブリッド)アプリをVega WebViewアプリに変換します。検出では、JavaScriptからネイティブへのブリッジ、読み込まれるバンドルされたWebアプリ、またはメイン画面サーフェスとしての<WebView>を探します。WebViewを1つまたは2つの画面でのみ使用するアプリは、WebViewではなくネイティブとしてカウントされます。エージェントは、読み込まれたURL、設定、およびJavaScriptインターフェイスをソースコードから抽出します。
Vega WebViewアプリへのウェブURL
アプリの移植は、指定されたURLをロードする新しいVega WebViewアプリを作成します。既存のソースコードは必要ありません。また、参照コードベース(既存のFire OSアプリまたはFire OS以外のラッパー)を指定して、エージェントがそれをスキャンして、ディープリンク、認証、広告SDKなどの統合の詳細を確認することもできます。
Fire OS React NativeアプリからVegaアプリ用のReact Nativeアプリへ
アプリの移植は、Fire OS向けに構築されたReact Nativeアプリ(Expoベースのテレビアプリを含む)をVegaアプリ用のReact Nativeアプリに変換します。エージェントはReact Nativeコンポーネントとサードパーティライブラリを同等のVegaにマップします。
Fire OS ネイティブアプリ(Java または Kotlin)からVega向けReact Nativeアプリへ
アプリの移植は、ネイティブAndroidアプリ(アクティビティ、フラグメント、ビューモデル)をVega向けReact Nativeアプリに変換します。このパスはJavaやKotlinからReact Nativeに完全に書き直されたものなので、生成後に手作業によるレビューが最も多く必要になります。エージェントはAndroid UIコンポーネントとAPIをReact Nativeの同等のものにマッピングし、Vega対応でないAPIはすべてNextSteps.mdに文書化します。
アウトプットを理解する
アプリの移植が完了すると、生成されたVegaアプリディレクトリには以下が含まれます。
- アプリソースコード。 適切なテンプレートに基づいたビルド可能なVegaプロジェクト。
- migration_guide.md。 エージェントがコードを生成する前のフェーズ2で作成する計画。元のアプリのすべての画面、機能、アセットを同等のVegaにマッピングします。アプリはこのファイルから構築されているため、ここに欠けているものはすべてアプリにはありません。フェーズ2(計画)の後とフェーズ3(実行)の前に確認して、ギャップを早期に発見してください。
- NextSteps.md。 以下を含む、手動による注意が必要なギャップを文書化したファイル
- Vegaと同等のものを含まないAPIまたはネイティブモジュール
- フェーズ4でビルドエラーが発生しました。
- 移行検証テストの結果。
- パフォーマンスベースラインまたはリグレッションノート(フェーズ6を選択した場合)
- 移行したすべてのインテグレーションを網羅したテストチェックリスト。
ワークフローが完了したら、必ずNextSteps.mdを確認してください。
制限事項
アプリの移植はベータ版であり、以下の制限があります。
- カスタムネイティブモジュール。 アプリの移植はカスタムTurboモジュールをサポートします。
NextSteps.mdでは、自信を持ってマッピングできないネイティブモジュールや、Vegaと同等のモジュールがないネイティブモジュールにのみ手動でフラグを立てます。 - サポート対象外のサードパーティ製ライブラリ。 ネイティブコードに同等のVegaコードがないライブラリは、自動的に移行できません。ワークフローは依存関係をチェックし、サポートされていないものはすべて手動で処理できるようにフラグを立てます。
- 複雑なカスタムビュー。 Canvasで描画するカスタムビューサブクラス(カスタムウィジェット、チャート、ドローイング、またはゲームサーフェス)には、React Nativeと直接同等のものはなく、手動で実装するようにフラグが付けられています。標準レイアウト、ウィジェット、リストは自動的に変換されます。
- Fire OSとAndroid API。 ナレッジベースでカバーされていないFire OSまたはAndroid APIとの緊密な統合には、手動による解決のフラグが付けられます。
- コード品質。 生成されたコードは機能的な出発点にはなりますが、プロダクションのコーディング標準には一致しない場合があります。コードレビューパスの計画を立ててください。
トラブルシューティング
| 問題 | 解決策 |
|---|---|
| エージェントはアプリタイプを判断できません。 | ソースパスがプロジェクトルート(package.jsonまたは AndroidManifest.xmlが存在する場所)を指していることを確認します。 |
vega: command not found. |
Vega SDKのインストールを参照してください。 |
npm installはバージョンの競合で失敗します。 |
npm install--legacy-peer-deps--userconfig.npmrcを実行するか、移行ガイドでバージョンの不一致がないか確認してください。 |
npm installが認証トークンのエラーで失敗します。 |
harmonynpmを実行してNPMレジストリの認証情報を更新してから再試行してください。 |
| アプリはビルドされますが、空白の画面が表示されます。 | WebViewアプリの場合、com.amazon.webview.renderer_serviceがmanifest.tomlの [wants] セクションにあることを確認してください。 |
| 生成されたコードが期待と一致しません。 | フェーズ2で生成された移行ガイドを確認してください。アプリがサポートされている移行パスと一致することを確認してください。 |
トラブルシューティングの詳細については、アプリ移行ワークフローで期待どおりの結果が得られないを参照してください。
NextSteps.mdに残りのブロック項目がなくなると、Vegaアプリをさらにテストして認定する準備が整います。
関連トピック
- AI向けAmazon Devices Builder Toolsで開発を始める
- Vegaモジュールリゾルバーのプリセット
- サードパーティライブラリのVegaへの移植
- テンプレートを使用した新しいアプリの作成
- AI向けAmazon Devices Builder Toolsのトラブルシューティング
Last updated: 2026年9月30日

