開発者コンソール

既存のアプリをAmazonアプリストアへ移行する方法


既存のアプリをAmazonアプリストアへ移行する方法

アプリによっては、そのコードベースを更新しなければFire OSデバイスで正常に動作しないものもあります。このページでは、AmazonアプリストアにFire OSアプリを申請する際に満たすべき要件と、移行時の推奨事項について説明します。

移行プロセスの概要

既存のAndroidアプリをAmazonアプリストア向けのFire OSに対応させるには、以下の手順を踏む必要があります。

  1. API、サービス、機能をFire OS対応のものに移行させます(必要な場合)。
  2. サポート予定のFire OSデバイスに合わせて最小APIレベルを更新します(必要な場合)。
  3. サポート対象外の機能をすべてアプリから削除します。
  4. アプリを再コンパイルします。
  5. Amazonアプリストアにアプリを申請します。

サポート対象のAPI・サービス・機能

アプリでFire OS非対応のAPI・サービス・機能が使用されている場合は、Amazonがサポートしている同等のサービスや機能を使用するようにコードを更新します。

移行すべき一般的な機能・サービス

AndroidアプリをFire OSに対応させるために変更が必要なAPI・サービス・機能は、以下のとおりです。

API・サービス・機能 アクション
Google Playアプリ内課金 Amazonアプリ内課金(IAP)APIを使用する
Googleマップ Amazon Maps APIを使用する
Google Cloud Messaging Amazon Device Messagingを使用する
モバイルデータプランを使用しないタブレットのGPS位置情報 Wi-Fi位置情報を使用するか、適切に機能を制限するようアプリをコーディングする
すべての通話機能 適切に機能を制限するようアプリをコーディングする
デバイスの向きの設定 デバイスの向きを参照して対処する
インテント 対応しているAndroidのインテントを参照して対処する
画面サイズとレイアウト 画面のレイアウトと解像度を参照して対処する

Firebaseに代わるプロダクトの選択

現在アプリでFirebaseを使用していて、引き続き使用を希望する場合は、Firebaseに代わるプロダクトの実装が必要となる可能性があります。ネイティブのFirebase SDKはGoogle Playサービスに依存しており、このサービスはAmazonデバイスでは使用できません。ネイティブのFirebase SDKを使用している場合、主な選択肢は次の3つです。

  1. Firebase JavaScript SDKを使用する(可能な場合): Amazon以外のアプリストアで既に実装している機能をそのまま使用できるため、推奨される方法です。ただし、JavaScript SDKでは、ネイティブSDKと比べて機能が制限される場合があります。
  2. 代替プロダクトを使用する: どうしても必要な機能があるものの、JavaScript SDKがサポートされていない場合、これが唯一の選択肢となります。代替オプションについては、以下の表を参照してください。
  3. AmazonデバイスでFirebaseを無効にする: 必要最小限の機能のみを提供するアプローチといえるかもしれません。これを通じて、Amazonユーザーについて理解し、Firebaseの代替プロダクトの導入根拠を固めることができます。

JavaScript SDKがサポートされていない機能については、代替プロダクトを検討してください。次の表は、Firebaseが備えているいくつかのクライアント側機能とその代替プロダクトの一覧です。

Firebaseの機能 説明 Amazonデバイス(JavaScript SDK)での動作 代替プロダクト
Cloud Firestore クライアント側とサーバー側の開発で使用されるデータを格納・同期するための最新のNoSQLクラウドデータベース
Firebase Machine Learning Googleの機械学習の専門技術をAndroidアプリに導入するモバイルSDK × AWS Amplify Predictions
Firebase Authentication アプリに対してユーザーを認証するためのフレームワーク
Cloud Storage オブジェクトストレージサービス(写真、ビデオなど) AWS Amplify - Storage
Realtime Database すべてのクライアントの状態をリアルタイムで同期させる必要があるモバイルアプリのための新たなNoSQLデータベース AWS Amplify - DataStore
Crashlytics アプリの問題を追跡するクラッシュレポートツール × Sentry
Performance Monitoring アプリからパフォーマンスデータを収集するサービス
アナリティクス Firebaseのあらゆる機能にわたるGoogleアナリティクスの統合 AWS Amplify - Analytics
Cloud Messaging(FCM) メッセージを無料で送信するためのクロスプラットフォームメッセージングソリューション ADM
In-App Messaging コンテキストに合ったメッセージをターゲットを絞って送信することにより、アプリの主要機能を使用するようユーザーに促す機能 × AirShip
Remote Config アプリのアップデートを公開しなくても、アプリの動作と外観を変更できるサービス

AWS Amplify

AWS Amplifyには、セキュアでスケーラブルなフルスタックのアプリを開発できるツールとサービスが集約されています。Firebaseの代わりとしてふさわしい、さまざまな機能が用意されています。それらの機能を次の表に示します。

AWS Amplifyの機能 説明 対応するFirebaseの機能
AWS Amplify - Authentication ユーザーを認証するためのインターフェイス Firebase Authentication
AWS Amplify - Storage パブリックストレージ、保護されたストレージ、プライベートストレージのバケットでアプリのユーザーコンテンツを管理するためのインターフェイス Cloud Storage
AWS Amplify - DataStore GraphQLのデータモデルを使用して、オンラインとオフラインのデータをクラウドに同期して保持するための手段 Firebase Realtime Database/Cloud Firestone
AWS Amplify - Analytics アプリの分析データ。Amazon Pinpointをビルトインサポート Firebase用Googleアナリティクス
AWS Amplify - Predictions アプリに機械学習を実装 Firebase Machine Learning
AWS AmplifyのAPIと関数 AWS Lambda関数をトリガーするリクエストを行うためのインターフェイス Cloud Functions for Firebase

詳細については、AWS Amplifyのドキュメント(英語のみ)を参照してください。

Amazon Device Messaging(ADM)

ADMはプッシュメッセージングソリューションです。アプリが実行されているAmazonデバイスにメッセージを送信することができるため、Firebase Cloud Messaging(FCM)に代わる機能として利用できる可能性があります。メッセージを管理したりターゲットを絞り込んだりするためのプラットフォームとしては、Amazon Pinpointが利用できます。ADMの詳細については、Amazon Device Messaging(ADM)についてを参照してください。

Sentry

Sentryは、「リアルタイムでの問題特定を支援するクラウドベースのアプリ監視プラットフォーム」を提供するオープンソースソリューションです。 詳細については、Sentryのドキュメント(英語のみ)を参照してください。Sentryは、「SDKを使用してアプリのランタイム内のデータをキャプチャします。Sentryはさまざまなプラットフォームに対応しているため、アプリの動作を深く理解することができます」(Getting Started(英語のみ))と紹介されています。

Airship

Airshipは、「プッシュ通知、Eメール、SMS、アプリ内メッセージング」によってユーザーとのつながりを生み出すカスタマーエンゲージメントプラットフォームです。 詳細については、Getting Started(英語のみ)を参照してください。

サポート対象のAPIレベル

全Fireタブレットとの互換性を確保するために、最小APIレベルを10に設定することをお勧めします。FireタブレットのAndroid OSバージョンについては、Fireタブレットのデバイス仕様:概要を参照してください。

アプリで使用するメソッドが以下に示すAPIレベルで導入されたものである場合、対処が必要になります。

  • APIレベル11~15:Kindle Fire(第1世代)でこれらのメソッドを呼び出さないよう、実装を変更してください。
  • APIレベル16または17:Kindle Fire(第1世代)およびKindle Fire(第2世代)でこれらのメソッドを呼び出さないよう、実装を変更してください。
  • APIレベル18以降:Kindle Fire(第3世代)でこれらのメソッドを呼び出さないよう、実装を変更してください。

詳細については、Androidトレーニングガイドの各種のプラットフォーム バージョンをサポートするに記載の実行時にシステムバージョンをチェックするを参照してください。

アプリでAPIレベルを指定する方法については、Androidトレーニングガイドの最小APIレベルと対象APIレベルを指定するを参照してください。

アプリのコンプライアンス

Amazonアプリストアにアプリを申請する前に、アプリがすべての要件を満たしていることを確認してください。

  • サポート対象外の機能: 以下の機能は、いずれもAmazonアプリストアではサポート対象外のため、アプリに含めることはできません。
    • テーマ
    • 壁紙
    • スクリーンセーバー
    • カスタムまたはサードパーティ製のオンスクリーンキーボード(代わりにデフォルトのオンスクリーンキーボードを使用してください)
    • ユーザーインターフェイスを操作するホーム画面ウィジェット
    • disable_keyguardのパーミッション
    • ロック画面のカスタマイズ
  • アプリのコンテンツ: Amazonのコンテンツガイドラインに準拠する必要があります。Amazonアプリストアのコンテンツポリシーを参照してください。
  • アプリテスト: Amazonアプリストアに申請する前に、アプリを入念にテストします。テスト基準と推奨されるテストケースを確認するには、Amazonアプリストアにおけるアプリ申請時のテスト基準を参照してください。