既存のアプリをAmazonアプリストアへ移行する方法
アプリによっては、そのコードベースを更新しなければFire OSデバイスで正常に動作しないものもあります。このページでは、AmazonアプリストアにFire OSアプリを申請する際に満たすべき要件と、移行時の推奨事項について説明します。
移行プロセスの概要
既存のAndroidアプリをAmazonアプリストア向けのFire OSに対応させるには、以下の手順を踏む必要があります。
- API、サービス、機能をFire OS対応のものに移行させます(必要な場合)。
- サポート予定のFire OSデバイスに合わせて最小APIレベルを更新します(必要な場合)。
- サポート対象外の機能をすべてアプリから削除します。
- アプリを再コンパイルします。
- 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つです。
- Firebase JavaScript SDKを使用する(可能な場合): Amazon以外のアプリストアで既に実装している機能をそのまま使用できるため、推奨される方法です。ただし、JavaScript SDKでは、ネイティブSDKと比べて機能が制限される場合があります。
- 代替プロダクトを使用する: どうしても必要な機能があるものの、JavaScript SDKがサポートされていない場合、これが唯一の選択肢となります。代替オプションについては、以下の表を参照してください。
- 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に移行する方法の詳細については、デバイスメッセージングの移行についてを参照してください。
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のパーミッション
- ロック画面のカスタマイズ
注: アプリでFire OS非対応のAPIやハードウェアテクノロジーが使用されている場合、そのサービスを要する機能を削除するか、適切に制限することをお勧めします(例:「お使いのデバイスでは、現在この機能を使用できません」といったエラーメッセージを表示させて対応する)。 - アプリのコンテンツ: Amazonのコンテンツガイドラインに準拠する必要があります。Amazonアプリストアのコンテンツポリシーを参照してください。
- アプリテスト: Amazonアプリストアに申請する前に、アプリを入念にテストします。テスト基準と推奨されるテストケースを確認するには、Amazonアプリストアにおけるアプリ申請時のテスト基準を参照してください。