Recently Amazon released Kindle Fire, our newest addition to the Kindle family that showcases a color touch display and provides instant access to the Amazon Appstore for Android and Amazon’s massive selection of digital content, as well as free storage in the Amazon Cloud.
Kindle Fire puts Amazon’s digital powerhouse of content at customers’ fingertips. In addition to the thousands of popular apps and games available in the Amazon Appstore for Android, customers can also choose from over 18 million movies, TV shows, songs, magazines, and books—and all of their Amazon content is automatically stored in the Amazon cloud, free of charge. Web browsing is simple and fast with Amazon Silk and an even better experience because of the Kindle Fire’s vibrant color touchscreen with an extra-wide viewing angle. All this, plus a fast, powerful dual-core processor, and an unbeatable price, make us proud of this newest member of our Kindle family.
Don’t take our word on it though—we’re not the only ones admiring Kindle Fire!
The first easy-to-use, affordable small-screen tablet, the Amazon Kindle Fire is revolutionary...I can't emphasize this "ease of use" thing enough. More than anything else, that's what's been holding non-iPad tablets back. Amazon cracked it. End of story." - PC Mag
"The Kindle Fire is a 7-inch tablet that links seamlessly with Amazon's impressive collection of digital music, video, magazine, and book services in one easy-to-use package. It boasts a great Web browser, and its curated Android app store includes most of the big must-have apps (such as Netflix, Pandora, and Hulu). The Fire has an ultra-affordable price tag, and the screen quality is exceptional for the price." – CNET
How do you get your app onto the Kindle Fire?
Submit it! Simply join the Amazon Appstore Developer Program, if you haven’t already, and submit your app using the Amazon Appstore Developer Portal just as you would if you were submitting to our store for any other supported Android device. All apps will go through regular Amazon Appstore testing, as well as testing for Kindle Fire.
What are the requirements for your app to work on Kindle Fire?
For your app to work on Kindle Fire, it needs to be compatible with the device's specifications. At a high level, it must be optimized for non-Google Mobile Services (GMS), Android 2.3.4 (Gingerbread), and a 7" screen with a resolution of 1024 x 600. Your app cannot require a gyroscope, camera, WAN module, Bluetooth, microphone, GPS, or micro-SD to function. In addition, your app must not be a theme or wallpaper that manipulates the user interface of the device. As with any other app submission to the Amazon Appstore for Android, your app will also need to comply with our Content Guidelines. For additional information, please visit our Kindle Fire FAQs.
What if your app was already submitted - will it be considered?
Yes. If you already have an app published in the Amazon Appstore for Android, we will automatically review the app for Kindle Fire compatibility. We're currently in the process of testing our entire catalog of published apps to ensure each app provides a high-quality customer experience on Kindle Fire.
What if you want to test your app(s) prior to submitting?
We strongly recommend you test your app on your own and submit an update if you discover any problems. It is possible to configure a standard Android emulator to simulate the Kindle Fire device platform. You should configure your emulator with the following characteristics:
Note: Effective 08-26-2015 Free App of the Day (FAD) has been replaced with Amazon Underground.
Farkle Dice - Free and Farkle Dice Deluxe (Ad-Free) are two popular and well-reviewed apps in the Amazon Appstore for Android. Developed by Smart Box Games, the apps present a fast-paced dice game and offer both solo and social gaming experiences.
Smart Box Games was one of the first developers to join the developer program after the Amazon Appstore launched in March.
Why did Smart Box Games act so quickly to join a brand new store? Todd Sherman, president of Smart Box Games, said that as a small, independent game company, “Our priority is to make sure the games have beautiful art, professional sound effects, and music, and are programmed to be stable and responsive. We typically have limited resources for marketing. The Amazon Appstore gives developers like us a chance for success by offering customers multiple ways to explore and find games.” He added, “For example, you can navigate the store by Top 100 Games, or by category, or through widgets powered by Amazon’s recommendation engine such as ‘Customers Who Bought This Item Also Bought.’ Plus, the first year fee for the developer program was waived.”
Within a few weeks of its publishing, Farkle Dice - Free skyrocketed to the top of the Board Games category and soon climbed the charts under the Top 100 Free Bestselling Games.
Amazon featured Farkle Dice Deluxe (Ad-Free) on July 23 as the Free App of the Day, a daily promotion in which we make a premium app available to our customers for free and prominently promote the app on Amazon.com and in the Amazon Appstore.
We set an expectation of approximately 75,000 downloads for the Free App of the Day promotion with Farkle Dice - Deluxe. “Our actual downloads far exceeded that expectation, and we were thrilled by the exposure and the comments from new players,” Sherman said regarding the result of the promotion. What does it mean for Smart Box Games to have so many new users? “As part of a long-term monetization strategy, we plan to contact those newly acquired users via the messaging function within Farkle Dice - Deluxe when we release our new game later this year.”
If you’ve seen or heard of the movie Rio, you may have seen that Blu isn’t in his cage anymore – no mirror, no little bell. He’s ready to hit the beach. And with Blu gaining his freedom, Rovio has released an updated Android version of Angry Birds Rio exclusively in the Amazon Appstore for Android with 30 new levels and, you guessed it, Blu is a playable character filled with feathered fury.
What does this mean for you?
The more customers we engage, the more opportunities we have to monetize your apps. When we launched, we had the Android version of Angry Birds Rio exclusively in the Amazon Appstore. As part of our launch marketing we advertised the Amazon Appstore and leveraged an Android exclusive of Angry Birds Rio as a hook across Amazon.com online, in mobile advertising, in social outlets, and more. The results have been tremendous.
There will also be another marketing campaign surrounding the update of Angry Birds Rio exclusive on the Amazon Appstore. Angry Birds Rio has a large and loyal fanbase, many of whom will come to the Amazon Appstore get the update and ultimately purchase other apps.
When to consider updates:
There are many things to take into consideration when updating your app. Here are some high level things to consider:
<p>We’d like to clear up some confusion about conflicting versions of our developer agreement. There are both PDF and plain text versions on our developer portal, and these versions didn’t agree. The PDF version was correct; the plain text version was old. This has now been fixed. The old plain text version was outdated and didn’t show the updates we made to the agreement last November, including that the definition of list price applies only to the app’s current price on a similar store. Thanks for making the store a success.</p>
The manifest of your Android app provides essential information about the app to the Amazon Appstore for Android. Your app must include an “AndroidManifest.xml” file in the root directory.
The Amazon Appstore uses the app manifest file to ensure we merchandise apps appropriately. Prior to submitting your app to Amazon, please ensure the manifest is packaged with your app and includes the following elements and data:
• VersionName: A string value that represents the release version of the application code, as it should be shown to users. The value is a string so that you can describe the application version as a <major>.<minor>.<point> string, or as any other type of absolute or relative version identifier. There is a hundred-character maximum on the length of the version name string.
• Uses-sdk: Tells us which OS the app runs on.
• Uses-configuration: Tells us which configuration is required by the app. (This element may be left empty if nothing is required.)
• Uses-feature: Tells us which features of the phone are used, such as the camera. (This section may be left empty if there are no required features.)
• Supports-screens: Tells us if the app supports large and/or high-intensity screens
• Uses-permissions: These are Android permissions and are required by the platform. (This should NOT be present if your app does not require permissions.)
Below is an example manifest structure with required elements in red:
<intent-filter> . . . </intent-filter>
<intent-filter> . . . </intent-filter>
<intent-filter> . . . </intent-filter>
If you do not have any data for a certain element--for instance, if your app does not utilize any permission--you should remove that element entirely instead of leaving it empty. Empty elements can cause issues in the ingestion process. Also, make sure your app only requests permissions that it actually needs to function properly. Unnecessary permission requests can cause a spyware or malware concern from a customer’s perspective.
If your manifest does not comply with this set of rules, it may be rejected directly by the Developer Portal or in the app approval phase.
You can find more information about the AndroidManifest.xml File on the Android Dev Guide:
If you love those birds and hate those pigs like we do, you will be pleased to hear that an all-new installment of the quirky bird pack is coming soon. The Android version of Angry Birds Rio, the follow up to the smash hits Angry Birds and Angry Birds Seasons, will launch exclusively in the Amazon Appstore.
What does this mean for you?
More traffic, more customers! The Angry Birds franchise has been downloaded over 100 million times – the Android installed base is over 30 million . When we launch the Amazon Appstore, we will be teaming with Rovio to drive those customers to the store - which means more traffic to the Amazon Appstore and more customers for you.
In preparation for our store launch, we launched the Amazon Appstore for Android Facebook page and @amazonappstore Twitter handle today. We’ll use these communication vehicles to engage customers, and we encourage you to Like us on Facebook and follow us on Twitter to stay abreast of our consumer-focused messaging. We will continue to post developer-centric news you can use on this blog and the @amznappstoredev Twitter handle.
The Amazon Appstore is launching very soon. If you have not yet submitted your app, we encourage you to do so now to ensure your product is ready for launch!
If you own a Kindle, you’ve experienced the power of having a Digital Locker and the ability to download your purchased content to just about any device. The notion of “buy once, read anywhere” will now also apply to your Android apps purchased through the Amazon Appstore.
Customers who purchase an app will retain an entitlement to their app even if they decide to replace their current Android device and/or purchase new devices, as long as the new devices meet the installation requirements of the app. This provides insurance to customers that their purchased apps will be available for use on all supported devices, even if the customer has uninstalled or otherwise removed those apps in the past.
The digital locker service combined with a robust Digital Rights Management (DRM) solution not only make managing apps easier for customers, they also address one of the biggest concerns developers have: unauthorized copying and distribution. An authorized user can now install your app on any of their supported devices; however, if you chose to apply DRM on your app at submission time, your app will not run on unauthorized devices.
Any app that has Amazon DRM applied to it will require users to have installed and signed-in to the Amazon Appstore client to access the app. When an app is accessed by the user, it will verify with the Amazon Appstore device service as to whether the user has an entitlement to the app. If the user does not sign in or does not have an entitlement to that app, then the app will not be usable. However, any user can gain an entitlement by purchasing the app through Amazon.
We will be posting more updates on Amazon DRM over the next few weeks on the Amazon Appstore Developer Blog. We will cover additional topics, such as sharing data between apps and signing your app after Amazon DRM has been applied.
Update: In response to your questions, we’d like to take this opportunity to provide a few clarifications.
Do I have to use Amazon DRM if I sell my app through Amazon.com?
No, it is not required. When you submit your app you can choose to offer your app DRM free or you can apply Amazon DRM.
Do customers need to have internet access to use an Amazon DRM-enabled app?
No. Once an app is installed, a user can use the app without having internet access.
How can you verify that the user has an entitlement to the app without internet access?
During the installation process for an app, the Amazon Appstore client downloads a small token that grants the user the right to access the application. A valid token permits the user that purchased the app to access their app offline. The Amazon Appstore client will periodically communicate with Amazon servers to refresh the token.
As an app developer, you know the importance of using external services and APIs offered by other developers. Leveraging third-party software eliminates unnecessary coding on your part and allows you to quickly bring higher-quality, feature-rich apps to market. An app can leverage the features of other apps to handle various types of requests. One common example is using a browser to handle user requests to hyperlinked text displayed in your app. Another example is launching a third-party social networking app to authenticate your user. Although on the surface these integration points appear similar-- the reality is that they can be very different. The difference lies in the mechanism used to invoke the external app.
In the first scenario, when a user clicks on a hyperlink, the action will automatically invoke an intent, which is sent to the Android system to process. The intent, which encapsulates an operation to be performed and contains the necessary data to send to the operation, acts as the glue between two or more loosely coupled Android apps. The Android system matches the intent to one or more activities, services, or receivers that have registered with the system. In the case of a hyperlink, typically the default browser activity will handle the intent. However, if more than one intent handler is able to process the operation (such as when a user clicks on an e-mail address), the system offers the user the option to select the intent handler they are interested in using. In the example below, an e-mail handler and the copy-paste handler are invoked after a user clicks on an e-mail address within a browser.
The important thing about the first scenario is that your app does not concern itself with who handles the intent, and no data is shared between the two. Your app will defer to the user to make the appropriate selection.
In the second scenario, you will have a more tightly coupled dependency on the authentication service provided by the third-party social networking app. This means that you do not want just any social networking app to authenticate your user. Instead, you are looking for a particular app, and if that app does not exist, you will respond accordingly.
However, before this dependency can be created, your app will need to be able to share data with the service provider. This is done by signing your app and obtaining the appropriate security key(s) from the third party to access its API. Depending on the requirements of the service provider, you can then either bundle its library with your app or require that the third party’s app be installed on the device.
At runtime, if you cannot resolve the dependency to the third-party app (i.e. it’s not installed), then you will want to provide the user an opportunity to install the app. This can be done by launching an intent from your app to an Amazon Appstore URL:
String url = "http://www.amazon.com/gp/mas/dl/android?p=com.amazon.mp3";
Intent intent = new Intent(Intent.ACTION_VIEW);
The above example links the intent to the Amazon MP3 app. To link to a different app, you can simply take the package name (“com.amazon.mp3”) and replace it with the one for the app you are depending on. The Amazon Appstore mobile client will be configured to handle URL intents of the following pattern:
The invocation of the intent will then provide the user the option to view the app page through the Amazon Appstore mobile client.
From there, the user can take advantage of Amazon’s 1-Click purchase feature to download the app (paid or free). After the user installs the third-party app, they can go back to your app’s activity and continue from there.
The following list includes some other helpful links you can use to make requests to the Amazon Appstore:
Last week we talked about what a detail page looks like over the fold in the Amazon Appstore for Android. This week, we’re going to dive into what customers see when they scroll down. Before we talk about what’s under the fold, here’s a look at the Airport Mania: First Flight app detail page over the fold.
While the first thing most customers see when they’re looking at apps is the title, icon, and price, what cinches the deal is often what’s in the details. So what does this mean for you? The content under the fold is invaluable in helping customers make decisions about what to buy/download and what to skip. It’s important to provide details including images and appropriate descriptions that show what your app can really do.
There are 5 key components of a detail page “below the fold.” The first two are are:
1. Product Details
2. Product Features
This is the “just the facts ma’am” section where we bottom line what the customer is getting, ASIN (Amazon Standard Item Number - this is your unique Amazon app ID similar to what a barcode is for products in stores), dates of note, and average customer rating. You’ll see we encourage customers to tell us what they think.
Here’s where we bottom line what your app is all about – we take this information directly from what you put into the Developer Portal, so it’s important to list accurate, helpful features. If a customer doesn’t have time to read the detailed description, they can get the gist from the Features.
3. Product Description
We use the Description you provided in the “Description” section on the Appstore Developer Portal as well as information that’s on your website (if applicable) to create a detail page with rich, helpful information about your app. We also like to include images in the Description when available (we pull these from the screenshots you provide with your app submission). An abbreviated version of this description is included on the detail page in the mobile store itself (stay tuned for a peak at a detail page on the mobile store!). If your app doesn’t sell itself, we hope the product description helps.
The final two sections are really all about you and the app requirements. They are:
4. Developer Info
5. Technical Data
We want to boost your brand. Here’s where you can talk about who you are and what your expertise is. We pull this directly from what you put in the Developer Portal.
As the name implies, this is where we put the technical info including app size and version.
Whether you have a bug fix, enhancement or performance optimization that you want to deliver to your customers, one of your Android apps will inevitably require an upgrade. This can be either a seamless process or a painful one for your customers. To ensure that it is the former and not the latter, the Android SDK provides some simple guidelines to help you manage this process. Last week, we discussed some useful configuration settings offered through AndroidManifest.xml for designing apps to run on smartphones and tablets. This same configuration file also provides settings to version your apk.
There are two attributes you can specify to manage the versioning process of your app:
The versionName attribute is a user facing string that identifies the version of the application in use. For example, if you are upgrading for the first time, your previous versionName may be “1.0” while a minor upgrade version would be indicated by “1.1” and a major upgrade by “2.0”. The versionName attribute is primarily used for display purposes and helps users identify differences between app versions. The following is a snippet of the manifest from the Amazon MP3 App for Android:
The versionCode is the attribute that is used by the Amazon Appstore for Android to compare versions of your app. This is an integer, like 80029 in the sample manifest, not a string like the versionName. If the versionCode of an apk is greater than the versionCode of another apk, then it is considered to be newer. Of course, for this comparison to be valid, the apk package name and signature must also match. To avoid unexpected behavior, it is extremely important to keep track of your versionCode and to always increase the value whenever you are releasing a new version.
At last week’s CES, it was hard to ignore the fact that many technology pundits are considering 2011 as the year of the tablet. And although Apple should be thanked for resurrecting interest in tablets in 2010, 2011 will see a record breaking surge in the number of vendors bringing new tablets to market. Sean Dubravac, Chief Economist and Director of Research, Consumer Electronics Association, predicted, “While many firms are touting product launches within the tablet sphere for the fourth quarter of 2010, the real action will occur a few weeks after the end of the quarter at CES.” The next few weeks will be telling for the future of the tablet and so far it’s looking quite bright.
The good news for you, the Android developer, is that many of these tablets will be sporting Android OS and, with the recent announcement of the Amazon Appstore Developer Portal, you have a convenient way of offering your apps to both tablet and smartphone users. We’re not mandating that you optimize your apps for tablets as well as smartphones, but it’s definitely something you should consider.
The expected surge in the number of tablets on the market and the number of Android devices a single user will own brings forth new opportunities and challenges. The opportunities are clear—more devices mean more users, more hardware features and more APIs to take advantage of. These new tablets will continue to feature larger screens and supported resolution levels, ample amounts of disk space and extremely fast processer speeds that are not far behind that of a typical laptop. An important thing to remember as a developer is that customers may be using your app across tablets and smartphones – no longer just one or the other.
A quick comparison of the best selling smartphones and tablets on Amazon.com shows that tablets boast 50-100% more screen real-estate and 50% more disk space. Furthermore, many of the tablets demonstrated at CES also feature dual-core CPUs. These differences make it more important than ever for developers to be aware of the device capabilities and limitations. With Amazon.com’s convenient 1-Click purchase and digital locker features, customers will be able to buy your apps and run it on any of their Android devices. Unfortunately, the growth in devices will present one of the biggest challenges for you—you want to continue to build and extend your killer apps and offer it to the tens of millions of Amazon.com customers, but you also want to keep your customers happy by setting expectations on how and where the apps can be run.
The Android SDK requires that each application contain a file called AndroidManifest.xml within the apk. This is where you can let the system know what your app needs at a minimum to run and what resources and services it will use. For instance, if you are building a word processor app that is designed to only run on a tablet, you will want to set the android:largeScreens attribute to “true” on the <supports-screens> property, while explicitly setting the small and normal screen flags to false. If you don’t declare this requirement for your app, then the Android system will assume it works on all screen sizes.
On the other hand, if you are building a game that looks great on any phone or tablet, then you can declare this in the xml file by including the following settings:
One thing to be aware of, however, is that once you declare support for all screen sizes, you will want to check the DisplayMetrics settings at runtime to make important display decisions in your code. This information can be used to make performance optimizations, such as displaying low to medium resolution images on small devices and high resolution images on large screens—a great way to avoid creating multiple versions of your app.
Apps that depend on hardware resources, such as GPS, Wi-Fi or Bluetooth capabilities, can define these requirements by appropriately setting the <uses-features> option.
Furthermore, with last month’s announcement of the Gingerbread release, there are now 6 flavors of Android OS in use. If the trend over the past two years continues, you can expect one more major release (3.0, Honeycomb) and another minor release to be announced before 2012. With major features being added in every new platform version, such as improved copy-and-paste and faster text input processing in Gingerbread, you will want to take advantage of these capabilities and also ensure your apps only run under their supported environment. The manifest provides a way to enforce dependencies on specific SDK features by using the <uses-sdk> flag.
Customer satisfaction is a key driver behind Amazon.com’s success. As you develop and offer your application to Amazon.com’s customers, following these Android development best practices guidelines is a great start towards achieving similar success.
You may have seen the buzz in Android blogs and forums about Amazon doing something… appy! Today Amazon.com launched the Amazon Appstore Developer Portal. You can find the Portal at developer.amazon.com. It is a new self-service tool that allows mobile application developers—Android developers in particular—to join our Appstore Developer Program and submit apps for the upcoming launch of the Amazon Appstore for Android.
At Amazon, we start with the customer and work backwards, and we’re always looking for ways to improve the customer experience. The sheer number of apps available today makes it hard for customers to find high-quality, relevant products – and developers similarly struggle to get their apps noticed. Amazon’s innovative marketing and merchandising features are designed to help customers find and discover relevant products from our vast selection, and we’re excited to apply those capabilities to the apps market segment.
Our customers also have a strong interest in mobile, and across the company we are working hard to make our great products and services available on mobile devices. We continue to innovate the mobile shopping experience with the Amazon Shopping app, Amazon Price Check and the recently launched Windowshop for the iPad. We have numerous Kindle apps, and customers can shop our MP3 store from their mobile devices. Our subsidiaries like IMDB and Audible also have robust mobile applications. An Appstore is a logical next step for Amazon in mobile.
Why should you submit your apps for inclusion in the Amazon Appstore for Android?
The Appstore Developer Portal is your one-stop location to manage account details, manage marketing materials, and track sales and projected earnings using self-service and customizable reports. We encourage you to check out the Portal at developer.amazon.com and join the Appstore Developer Program today!
- The Amazon Appstore Team