Developer Console

Migrating An Existing App to the Amazon Appstore

Depending on your app's code, you may need to make some updates to your code base for your app to successfully run on Fire OS devices. This page discusses the requirements that your app must meet and migration recommendations for submitting a Fire OS app to the Amazon Appstore.

Overview of the Migration Process

Use the following process to guide you in migrating an existing Android app to be compatible with Fire OS for the Amazon Appstore:

  1. Migrate any APIs, services, and features to those supported by Fire OS, if necessary.
  2. If needed, update your minimum API level as required for the Fire OS devices that you plan to support.
  3. Remove any unsupported features from your app.
  4. Recompile your app.
  5. Submit your app to the Amazon Appstore.

Supported APIs, Services, and Features

If your app uses any APIs, services, or features that are not supported by Fire OS, update your code to use the equivalent Amazon supported services and features.

Common Equivalents

The following table lists APIs, services, and features to modify in your Android app to enable it to work with Fire OS.

API, Service, or Feature Action Migration Documentation
Google Play In-App Billing Use the Amazon In-App Purchasing API. Migrating from Google Play In-App Billing (IAB) v3.0 to Amazon In-App Purchasing (IAP) v2.0
Google Maps Use the Amazon Maps API. N/A
Google Cloud Messaging Use Amazon Device Messaging. N/A
GPS geo-location on tablets without a mobile data plan Use Wi-Fi geo-location or code your app to degrade gracefully. N/A
Any phone feature Code your app to degrade gracefully. N/A
Device orientation See Device Orientation. N/A
Unsupported intents See Android Intents Supported on Fire Tablets. N/A
Unsupported screen sizes and layouts Declare support for screen sizes in the AndroidManifest.xml. N/A

Firebase Alternatives

If you're using Firebase in your app and are looking to keep using Firebase, you might need to implement some alternatives. The native Firebase SDKs depend on Google Play services, which are not available on Amazon devices. If you're using native Firebase SDKs, you have three main options:

  1. Use Firebase JavaScript SDKs when possible: This is the recommended approach because it allows you to keep using the features you already implemented in other appstores. However, sometimes the features in the Javascript SDK might be limited compared to the native SDK.
  2. Use an alternative product: This might be the only option for the must-have features where the JavaScript SDK is not supported. Alternative options are listed in the table below.
  3. Disable Firebase on Amazon devices: This might be the minimum viable approach that allows you to learn about your Amazon users and build up the case for investing in an alternative Firebase product.

For the features where a Javascript SDK is not supported, you can look into alternative products. The table below lists some client-side features of Firebase and their alternatives.

Firebase Feature Description Works on Amazon Device (i.e., JavaScript SDK) Alternatives
Cloud Firestore The newest NoSQL cloud database to store and sync data for client- and server-side development Yes
Firebase Machine Learning "A mobile SDK that brings Google's machine learning expertise to Android apps" No AWS Amplify Predictions
Firebase Authentication A framework to authenticate users to your app Yes
Cloud Storage An object storage service (e.g. photos or videos) Yes AWS Amplify - Storage
Realtime Database The original NoSQL database for mobile apps that requires synced states across clients in real-time Yes AWS Amplify - DataStore
Crashlytics A crash reporter to track app issues No Sentry
Performance Monitoring A service to "collect performance data from your app" Yes
Analytics A Google Analytics integration across Firebase features Yes AWS Amplify - Analytics
Cloud Messaging (FCM) "A cross-platform messaging solution to send messages at no cost." Yes ADM
In-App Messaging Allows you to send targeted, contextual messages that encourage users to use key app features No AirShip
Remote Config A service to "change the behavior and appearance of the App without publishing an app update" Yes

AWS Amplify

AWS Amplify is a set of tools and services that enables developers to build secure, scalable full stack applications. It offers a variety of features that can be a suitable replacement for Firebase. This table below lists those features:

AWS Amplify Feature Description Firebase Equivalent
AWS Amplify - Authentication An interface for authenticating users Firebase Authentication
AWS Amplify - Storage An interface for managing user content for your app in public, protected, or private storage buckets Cloud Storage
AWS Amplify - DataStore A way to synchronize and persist online and offline data to the cloud using GraphQL data models Firebase Realtime Database / Cloud Firestone
AWS Amplify - Analytics Analytics data for your app with built-in support for Amazon Pinpoint Google Analytics for Firebase
AWS Amplify - Predictions Machine learning into your application Firebase Machine Learning
AWS Amplify API & Functions An interface for making requests to trigger AWS Lambda functions Cloud Functions for Firebase

Check out AWS Amplify Docs for more details.

Amazon Device Messaging (ADM)

ADM is a push-messaging solution that lets you send messages to Amazon devices that run your app, which makes it a potential alternative to Firebase Cloud Messaging (FCM). You can use Amazon Pinpoint as a platform to manage and target your messages. For more details about ADM, see Overview of Amazon Device Messaging.

Sentry

Sentry, an open-source solution, provides "a cloud-based application monitoring platform that helps you identify issues in real-time." See the Sentry documentation for more details. Sentry "captures data by using an SDK within your application’s runtime. These are platform specific and allow Sentry to have a deep understanding of how your application works" (Getting Started).

Airship

Airship is a customer engagement platform that you can use to connect with your users by "push notifications, email, SMS, and in-app messaging." To learn more, see Getting Started.

Supported API Levels

Amazon recommends setting a minimum API level of 10 to ensure compatibility with all Fire tablets. For information about the Android OS versions for the Fire tablets, see Fire Tablet Device Specifications.

If your app uses methods introduced in:

  • API levels 11 through 15 - You must modify your implementation such that you do not call those methods on Kindle Fire (1st Gen).
  • API level 16 or 17 - You must modify your implementation such that you do not call those methods on Kindle Fire (1st Gen) and Kindle Fire (2nd Gen) tablets.
  • API level 18 or later - You must modify your implementation such that you do not call those methods on Kindle Fire (3rd Gen).

For more information, see Check System Version at Runtime in the Android training guide Supporting Different Platform Versions.

For information about specifying API levels in your app, see Specify Minimum and Target API Levels in the Android training guide.

App Compliance

Before submitting your app to the Amazon Appstore, make sure that your app meets all of the requirements.

  • Unsupported Features: Your app cannot include any of the following features, all of which are unsupported by the Amazon Appstore:
    • Themes
    • Wallpapers
    • Screen savers
    • Custom or third-party onscreen keyboards (use the default onscreen keyboard instead)
    • Home screen widgets that manipulate the user interface
    • disable_keyguard permissions
    • Lock screen customizations
  • App Content: Your app must comply with Amazon's Content Guidelines. See Amazon Appstore Content Policy Requirements.
  • App Testing: Test your app thoroughly before submitting it to the Amazon Appstore. To review test criteria and recommended test cases, see Test Criteria for Amazon Appstore Apps.