アプリの動作を確認する
アプリのビルドが完了したら、さまざまな画面を確認しましょう。以下のセクションでは、Fire App Builderのサンプルアプリの各画面について説明します。
アプリの画面
この画面を含め、「Fire App Builder」というテキストが表示される画面は、すべてカスタマイズが可能です。たとえば、「Fire App Builder」の部分を会社の名前や独自のデザインに置き換えることができます。
アプリの読み込みが完了すると、ホーム画面が表示されます。
選択したアクティビティに応じて、ホーム画面にはいくつかの表示オプションがあります。デフォルトでは、ホーム画面にContentBrowseActivity
アクティビティが構成されています。ただし、この画面をFullContentBrowseActivity
アクティビティに関連付けて、よりコンパクトなビューを読み込むこともできます。
ビデオを選択すると、そのビデオがハイライトされ、背景画像が右上に表示されます。
ビデオをもう一度クリックすると、コンテンツ詳細画面と再生ボタンが表示されます。
ビデオの説明が表示幅を超える場合は、モーダルが表示されます。ユーザーは、このモーダルで説明の全文を確認できます。
メディアを再生すると、レンダラー画面が表示されます。
ビデオにコントロールが表示されると、その下に関連コンテンツが薄く表示されます。リモコンで下矢印をクリックすると、関連コンテンツがはっきりと表示されます。
既に再生したことがあるメディアの場合、コンテンツの詳細を確認すると、ビデオの下に表示されるコントロールセットが変わります。
ビデオを検索するには、ホーム画面で検索ボタンを選択します。検索画面が表示され、キーワードを入力できるようになります。検索では、title要素とdescription要素から一致するキーワードが検索されます。
検索結果画面では、グリッドに結果の一覧がメディアカードとして表示されます。
各画面で実行されるアクティビティ
アクティビティとは、アプリで実行できるさまざまな機能のことです。アクティビティごとに異なる画面が呼び出されます。Fire App Builderには、次の6個のアクティビティが用意されています。
ContentBrowseActivity
ContentDetailsActivity
ContentSearchActivity
FullContentBrowseActivity
SplashActivity
VerticalContentGridActivity
(ホーム画面には、ContentBrowseActivity
とFullContentBrowseActivity
のどちらも使用できます。)
Fire App Builderの各アクティビティでは、それぞれ異なる画面が使用されます。各アクティビティで使用される画面は、Navigator.jsonファイル(app > assets内)によって構成されます。Navigator.jsonのgraph
オブジェクト(下記参照)には、アクティビティを画面に関連付けるキーと値のペアと、その他のプロパティが含まれています。
"graph": {
"com.amazon.android.tv.tenfoot.ui.activities.SplashActivity": {
"verifyScreenAccess": false,
"verifyNetworkConnection": true,
"onAction": "CONTENT_SPLASH_SCREEN"
},
"com.amazon.android.tv.tenfoot.ui.activities.FullContentBrowseActivity": {
"verifyScreenAccess": false,
"verifyNetworkConnection": true,
"onAction": "CONTENT_HOME_SCREEN"
},
"com.amazon.android.tv.tenfoot.ui.activities.ContentDetailsActivity": {
"verifyScreenAccess": false,
"verifyNetworkConnection": true,
"onAction": "CONTENT_DETAILS_SCREEN"
},
"com.amazon.android.tv.tenfoot.ui.activities.ContentSearchActivity": {
"verifyScreenAccess": false,
"verifyNetworkConnection": true,
"onAction": "CONTENT_SEARCH_SCREEN"
},
"com.amazon.android.uamp.ui.PlaybackActivity": {
"verifyScreenAccess": false,
"verifyNetworkConnection": true,
"onAction": "CONTENT_RENDERER_SCREEN"
}
}
たとえば、SplashActivity
はスプラッシュ画面を表示します。ContentBrowseActivity
はホーム画面を表示します。ほかのアクティビティも、それぞれ対応する画面を表示します。
どのアクティビティも任意の画面に関連付けることができますが、変更する意味のあるアクティビティはContentBrowseActivity
だけです。このアクティビティをFullContentBrowseActivity
に置き換えると、前述のとおり、ホーム画面のレイアウトをコンパクトにすることができます。
以下に、このコードで各アクティビティに指定されているその他のプロパティについて説明します。
アクティビティのプロパティ | 説明 |
---|---|
verifyScreenAccess |
画面を表示するときに認証を要求します。コンテンツを表示する前にユーザーにログインを求めるには、この値をtrue に設定します。ほとんどの場合、画面へのアクセスの検証は、コンテンツレンダラー画面でのみ要求するようにします。これにより、まずユーザーにメディアの雰囲気を伝えて、ログインしたい気持ちをかき立てることができます。 |
verifyNetworkConnection |
画面を表示するときにネットワーク接続を要求します(ページに設定のみが含まれていて、オンラインメディアがない場合は、この値をfalse に設定できます。ただし、ほとんどの画面では、この値をtrue のままにしてください)。 |
onAction |
アクティビティの実行時に実行するアクション(特定の画面の表示など)。 |
AndroidManifest.xmlファイルは、アプリの起動時にSplashActivity
アクティビティを開始します。
<activity
android:name="com.amazon.android.tv.tenfoot.ui.activities.SplashActivity"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
</activity>
このSplashActivity
アクティビティは、スプラッシュ画面を読み込みます。
これらのアクティビティや画面のほかに、独自のアクティビティを記述して、独自の画面に関連付けることもできます(この高度なカスタマイズ方法の詳細については、このドキュメントでは扱いません)。
Fire App Builderの内容の確認
アプリの作成を開始する前に、Fire App Builderに用意されている各種のライブラリ、モジュール、コンポーネントを見てみましょう。
次の表で、各コンポーネントについて簡単に説明します。
フォルダ | 説明 |
---|---|
AMZNMediaPlayerComponent | ストリーミングメディアを再生するために使用されます。 |
AdsInterface | 広告用のインターフェイス。 |
AmazonInAppPurchaseComponent | Amazonアプリ内課金の課金インターフェイスを実装するコンポーネント。 |
AnalyticsInterface | 分析用のインターフェイス。 |
AuthInterface | 認証用のインターフェイス。 |
ContentBrowser | アプリ内のコンテンツを閲覧できるようにする(Model-view-controllerアーキテクチャパターンの)コントローラー。フィードを取得し、フロー、レシピ、構成を制御します。 |
ContentModel | ブラウザがレンダリングに使用するデータの格納方法を定義する(Model-view-controllerアーキテクチャパターンの)モデル。 |
DataLoader | ネットワークからデータを読み込む再利用可能なモジュール。通常、フィードの読み込みに使用されます。 |
DynamicParser | フィードを解析し、モデルにデータを入力する構成可能なモジュール。 |
FacebookAuthComponent | Facebook認証の認証インターフェイスを実装するコンポーネント。 |
FlurryAnalyticsComponent | Flurry Analyticsの分析インターフェイスを実装するコンポーネント。 |
ModuleInterface | Fire App Builderフレームワークで各種コンポーネントをモジュール化するコアコード。 |
PassThroughAdsComponent | Fire App Builderで使用される、広告インターフェイスのダミー実装。アプリに広告が実装されていない場合は、これをベースコードとして使用して、独自の広告モジュールを作成できます。 |
PurchaseInterface | 支払いをセットアップするためのインターフェイス。 |
TVUIComponent | Leanback Support LibraryをベースとしたTV UIコードが含まれています。また、アクティビティのクラスも含まれています。 |
UAMP | Universal Android Media Player。Amazon Media Playerは、UAMPをベースとして構築され、追加機能によって拡張されています。 |
Utils | 再利用可能なJavaクラスが含まれています。たとえば、いくつかのコンポーネント(Facebook認証、Adobe Pass、Flurry Analyticsなど)で使用される鍵の暗号化と暗号化解除を行うセキュリティクラスがあります。 |
Application | Fire App Builderフレームワークのさまざまなライブラリとコンポーネントを使用するサンプルアプリ。このアプリをカスタマイズします(Fire App Builderのサンプルプロジェクトをカスタマイズするを参照)。 |
サブフォルダの内容
Fire App Builderの各フォルダには、通常、同じパターンのサブフォルダがあります。次の表で、各サブフォルダについて説明します。
サブフォルダ | 内容 |
---|---|
build | Androidで必要とされるサブフォルダです。プロジェクトのビルド時に自動的に生成されます。buildフォルダのファイルは編集しないでください。 |
libs | このサブフォルダがある場合は、コンポーネントやほかの外部サービスで必要な外部ライブラリが格納されています。このフォルダのファイルは編集しないでください。多くの場合、コンポーネントが必要とするライブラリは、build.gradleファイルで依存関係として参照され、プロジェクトのビルド時に取得されます。 |
src | コンポーネントや機能に対応する実際のコードが含まれています。resサブフォルダにはコンポーネントのリソースが含まれ、コンポーネントを使用する場合に頻繁に使用されます。ファイルを編集するときは、主にresサブフォルダ内のファイルを編集することになります。 |
test | ユニットテスト用のファイルです。testフォルダの内容はメインフォルダのミラーですが、ユニットテストの作成を目的としています。ユニットテストではAndroidの依存関係は必要とされません。Fire TVデバイスを使用せずに自分のコンピューターで実行できます。通常、このフォルダでは何もする必要はありません。 |
androidTest | Androidの依存関係を必要とするテストです。これらのテストでは、コードの実行にFire TVデバイスが必要です。通常、このフォルダでは何もする必要はありません。 |
構成可能なJSONファイルについて
Fire App Builderの基本的なアプリでは、Javaのコーディングが必要になることはほとんどありません。代わりに、シンプルなキーと値のペアを含むさまざまなJSONファイルを使用してアプリを構成します。これらのファイルにより、必要なオプションを指定できます。構成可能なJSONファイルを以下に示します。
構成するJSONファイルまたはXMLファイル | 場所 |
---|---|
Navigator.json | app > assets |
BasicFileBasedUrlGeneratorConfig.json | app > assets > configurations |
BasicHttpBasedDownloaderConfig.json | app > assets > configurations |
DataLoadManagerConfig.json | app > assets > configurations |
LightCastCategoriesRecipe.json | app > assets > recipes |
LightCastContentsRecipe.json | app > assets > recipes |
LightCastDataLoaderRecipe1.json | app > assets > recipes |
LightCastDataLoaderRecipe2.json | app > assets > recipes |
custom.xml | app > res > values |
(現時点では、JSONファイルやXMLファイルの構成について気にする必要はありません。これらのファイルは、後で実行する構成タスクの紹介として記載したものです。ここで重要なことは、Javaプログラミングを行わなくても、JSONファイルまたはXMLファイルを調整するだけでアプリを構成できるという点です。)
次のステップ
ここでは、Fire App Builderの基本的な機能、ライブラリ、コンポーネントについて説明しました。次はAlexaの音声コマンドを試して、音声によるメディア操作を体感してください。