Fire App Builderのサンプルプロジェクトをカスタマイズする
独自のアプリを作成する最初の手順は、「Application」フォルダをカスタマイズすることです。Applicationフォルダには、Fire App Builderで作成されたサンプルアプリが含まれています。
アプリのカスタマイズ
-
左上隅にある [Project] ペイン([Project] ビューではありません)を展開して、ファイルを表示します。[Android] ビューが表示されていることを確認します。特に記載がない限り、このドキュメントでは常に [Android] ビューを使用してファイルの場所を記述しています。
-
[Project] ペインのフォルダの一覧で、appを展開し、res > values > custom.xmlの順にクリックします。
app_name
文字列にアプリの名前を入力します。次に例を示します。<string translatable="false" name="app_name">Write the Docs Podcast</string>
AndroidManifest.xmlファイル(app > manifests内)は、この編集した文字列からアプリの名前を読み取ります(Androidマニフェスト内でこの文字列を参照するコードは
android:label="@string/app_name"
です。Fire App Builderの大部分はこのようにしてセットアップされます。カスタマイズするコードはXMLファイルに抽出されているため、Javaを直接編集する必要はありません)。 Android Studioでは、すべてのXMLファイルから参照が検索されるため、参照で特定のXMLファイルを指定する必要はありません。アプリのcustom.xmlファイルの文字列により、ほかのXMLファイルの文字列は上書きされます。app_name
とapp_name_short
の各文字列には、translatable="false"
というプロパティがあることに注意してください。つまり、アプリの名前は翻訳されません。res > values > stringsフォルダには、アプリがさまざまなロケールに対応できるように、複数のstrings.xmlファイルが用意されています。ロケールがドイツのユーザーがアプリを開くと、(アプリがそのマーケットで使用できる場合は)「strings.xml (de)」ファイルが使用されます。同様に、日本のユーザーがアプリを開くと、「strings.xml (ja)」が使用されます。言語固有の文字列が見つからない場合、アプリはstrings.xmlにフォールバックします。
-
app_name_short
文字列に、アプリの略称を15文字以内で追加します(アプリ名が既に短い場合は、アプリの名前をそのまま使用してください)。<string translatable="false" name="app_name_short">WTD Podcast</string>
アプリの略称はおすすめ機能(オプション機能)で使用されます。Fire TVのホーム画面でおすすめが表示される領域には、15文字を超えるアプリ名は表示できません。
-
アプリのAndroidManifest.xmlファイル(app > manifests内)を開き、パッケージ名を示す
package
の値com.fireappbuilder.android.calypso
を、新しいアプリ名を反映したパッケージ名に更新します。たとえば、アプリの名前が「acmemedia」の場合は、次のように変更します。<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.fireappbuilder.android.acmemedia">
警告: Amazonアプリストアに申請するアプリのパッケージ名は一意でなければなりません。また、amazon
という文字列を含めることはできません。パッケージ名にamazon
を使用すると、Amazonカタログとの統合時に競合が生じます。さらに、アプリのパッケージ名は、アプリの存続期間をとおして同じでなければなりません。パッケージ名を変更すると、アプリの履歴や以前に申請したアプリとの関連性が保持されなくなります。Androidのパッケージ名の要件により、パッケージ名は英文字で始める必要があります。Fire App Builderのサンプルアプリの
com.fireappbuilder.android.acmemedia
パッケージにはクラスが含まれていませんが、カスタムクラスを追加することで、Fire App Builderの既存の機能を上書きしたり、新しい機能を追加したりできます。 -
[Android] ビューで、Gradle Scriptsフォルダを展開し、build.gradle (Module: app)ファイルを開きます。パッケージ名に一致するように
applicationId
プロパティを更新します。次に例を示します。defaultConfig { applicationId "com.fireappbuilder.android.acmemedia" minSdkVersion 21 targetSdkVersion 23 versionCode 10 versionName "1.0.7" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true }
注: このドキュメントでは、特に記載がない限り、ファイルのパスは [Android] ビューを使用して記述されています。以下に例を示します。
-
同じbuild.gradle (Module: app)ファイルで、
versionCode
とversionName
を確認します。これらの値はそのままにしておくことができます。ただし、アプリのアップデートを申請する場合は、バージョンを上げる必要があります。これらの2つのコードには以下の違いがあります。-
versionCode
は、アプリのバージョンの内部ナンバリングスキームです。AmazonアプリストアにアップロードするAPKごとに、一意に増加するversionCode
が必要です。versionCode
の初期値には任意の数値を指定できますが、APKのアップデートを申請するときは、versionCode
の値を大きくする必要があります。詳細については、Androidドキュメントのandroid:versionCodeを参照してください。 -
versionName
(文字列)は、ユーザーに表示されるバージョンです。versionCode
と一致している必要はなく、任意の値を使用できます。詳細については、Androidドキュメントのandroid:versionNameを参照してください。
versionCode
要素とversionName
要素は、アプリのマニフェストには必要ありません。APKをAmazonアプリストアにアップロードすると、Amazonアプリストアは、これらの情報をAndroidManifest.xmlではなく「build.gradle (Module: app)」ファイルから読み取ります。 -
-
Gradle Scriptsフォルダを展開し、gradle.properties (Project Properties)ファイルを開きます。
applicationName
をカスタマイズして、アプリ名からスペースを除外した名前に設定します。Android Studioは、この名前をAPKファイル名に使用します(APKファイルは、後でアプリをAmazonアプリストアに申請するための署名付きAPKを作成するときに生成します)。 -
Gradleファイルを変更すると、Gradleをプロジェクトと同期するように求められます。右上隅にある [Sync Now] リンクをクリックします。
プロジェクトのクリーンアップとビルド
- [Build] > [Rebuild Project] の順にクリックします。これにより、以前のアプリのアーティファクトがクリーンアップされ、プロジェクトが再ビルドされます(このプロセスが完了するまでに数分かかる場合があります)。
- [Run 'app'] ボタンをクリックして、新しいアプリを実行します。
アプリをビルドできない場合、またはFire TVにインストールできない場合は、もう一度 [Build] > [Rebuild Project] を実行してみてください。また、Fire TVには、同じパッケージ名の2つのアプリを同時にインストールすることはできません。このため、パッケージ名をcom.acme.media
に更新したとして、Fire TVにある別のアプリが既にこのパッケージ名を使用している場合は(Amazonアプリストアで既に公開した公式アプリがある場合など)、開発中のアプリを(ADB経由で)サイドロードする前に、まず既存のアプリをアンインストールする必要があります(Fire TVで [設定] > [アプリケーション] > [インストール済みアプリケーションを管理] の順に選択します)。
次のステップ
ここでは、Fire App Builderでデフォルトのアプリをビルドしてカスタマイズしました。次は、メディアフィードを読み込んで構成しましょう。メディアフィードを読み込むに進みます。次からの一連の手順は、II: フィードを構成するのプロセスです。