開発者コンソール

アプリの動作を確認する

アプリの動作を確認する

アプリのビルドが完了したら、さまざまな画面を確認しましょう。以下のセクションでは、Fire App Builderのサンプルアプリの各画面について説明します。

アプリの画面

スプラッシュ画面
スプラッシュ画面。 この画面は、最初にアプリを起動してから、アプリの読み込みが終了するまでの間だけ(通常は1秒未満)表示されます。

この画面を含め、「Fire App Builder」というテキストが表示される画面は、すべてカスタマイズが可能です。たとえば、「Fire App Builder」の部分を会社の名前や独自のデザインに置き換えることができます。

アプリの読み込みが完了すると、ホーム画面が表示されます。

ホーム画面
ContentBrowseActivityを使用したホーム画面。このビューでは、ビデオをさまざまなカテゴリーやグループに整理して表示します。チャンネルを表示すると、チャンネルグループの最初のビデオが背景画像として使用され、そのタイトルと説明が左上に表示されます。これはデフォルトのレイアウトです。

選択したアクティビティに応じて、ホーム画面にはいくつかの表示オプションがあります。デフォルトでは、ホーム画面にContentBrowseActivityアクティビティが構成されています。ただし、この画面をFullContentBrowseActivityアクティビティに関連付けて、よりコンパクトなビューを読み込むこともできます。

FullContentBrowseActivityを使用したホーム画面
FullContentBrowseActivityを使用したホーム画面。このアクティビティを使用すると、より簡潔なグリッドにすべてのビデオが表示され、左側にカテゴリーの一覧が表示されます。どのビデオも、背景に大きな画像として表示されることはありません。

ビデオを選択すると、そのビデオがハイライトされ、背景画像が右上に表示されます。

選択されたビデオ
ビデオが選択されたホーム画面。選択したビデオは背景に大きな画像で表示されます。

ビデオをもう一度クリックすると、コンテンツ詳細画面と再生ボタンが表示されます。

コンテンツ詳細
コンテンツ詳細。この画面には、ビデオのタイトルや説明など、特定のビデオの詳細が表示されます。

ビデオの説明が表示幅を超える場合は、モーダルが表示されます。ユーザーは、このモーダルで説明の全文を確認できます。

詳細
コンテンツ詳細ページ。コンテンツ詳細画面に割り当てられたスペースに説明が収まらない場合は、説明を展開して続きを読むことができます。

メディアを再生すると、レンダラー画面が表示されます。

レンダラー
レンダラー。この画面は、メディアを再生すると表示されます。

ビデオにコントロールが表示されると、その下に関連コンテンツが薄く表示されます。リモコンで下矢印をクリックすると、関連コンテンツがはっきりと表示されます。

関連コンテンツ
関連コンテンツの表示と選択

既に再生したことがあるメディアの場合、コンテンツの詳細を確認すると、ビデオの下に表示されるコントロールセットが変わります。

再生の再開。
詳細からの再生の再開。ビデオの視聴を途中で停止した場合は、[今すぐ観る] ボタンの代わりに、[再生を再開] ボタンと [最初から観る] ボタンが表示されます。

ビデオを検索するには、ホーム画面で検索ボタンを選択します。検索画面が表示され、キーワードを入力できるようになります。検索では、title要素とdescription要素から一致するキーワードが検索されます。

検索
検索。この画面でメディアを検索できます。マイクボタンを押しながら、検索する語句を話しかけることができます。音声がテキストに変換され、ここに入力されます。

検索結果画面では、グリッドに結果の一覧がメディアカードとして表示されます。

検索
検索。検索結果は、検索バーの下にサムネイルとして表示されます。この例では、「diving」という語に一致するさまざまなビデオが表示されています。

各画面で実行されるアクティビティ

アクティビティとは、アプリで実行できるさまざまな機能のことです。アクティビティごとに異なる画面が呼び出されます。Fire App Builderには、次の6個のアクティビティが用意されています。

  • ContentBrowseActivity
  • ContentDetailsActivity
  • ContentSearchActivity
  • FullContentBrowseActivity
  • SplashActivity
  • VerticalContentGridActivity

(ホーム画面には、ContentBrowseActivityFullContentBrowseActivityのどちらも使用できます。)

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に用意されている各種のライブラリ、モジュール、コンポーネントを見てみましょう。

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の音声コマンドを試して、音声によるメディア操作を体感してください。