Amazon Developer Blogs

Amazon Developer Blogs

Showing posts tagged with android apps

June 22, 2011

amberta

Since we launched, we’ve been seeing an influx of developers submitting their app(s) to the Amazon Appstore for Android – which is great!  After apps are submitted, before they can be published in the store, we run the app through technical and content-focused testing.  The vast majority of apps pass testing quickly and with no issues…to maximize the chances that your app will similarly move through our validation process quickly, we will be posting some best practices for helping your app fly through testing. 

 Let’s take a quick look at the most frequent reasons why apps don’t make it through:

  1. Functionality - The app contains general usability issues that make it difficult to use or prohibits the intended functionality
  2. Interrupts - The app has difficulty handling interruptions, like an incoming phone call, changing the orientation, or random input 
  3. Incorrect Linking - The app links to a store other than the Amazon Appstore for Android
  4. Stability - The app has a memory leak, pegs the CPU, or otherwise Force Closes with frequency
  5. Security - The app requires access to sensitive information, or takes too many liberties with the requested permission set
  6. GUI Issues - The app has a less than ideal user experience; perhaps it does not properly scale to different resolutions or other UI elements do not display properly when interacted with

Because many developers have their Android apps published in other stores and are simply re-using their existing apk, incorrect linking can be an area of confusion.  Apps submitted to the Amazon Appstore must have links pointing to the Amazon Appstore (vs. other Android storefronts).  To help your app(s) fly through testing, incorrect linking is an area you can validate and fix quickly before submitting.

Now, how do you ensure your links point to the Amazon Appstore?  Easy, just follow these simple rules:

  • Identify any intents that open an application’s details page in another app store, such as the following snipper that opens a page in the Android Market

Step1

  • Then simply change the URI as specified in the intent.setData call to point to the Amazon Appstore.  Note, this format is useful if you are not sure the user has the Amazon Appstore installed on their device

Step2

  • Alternatively, you can use the Amazon Appstore intent and link that way.  This is a more convenient format for developers.

Step3

Doing a quick check through your code before you submit your app will ensure you don’t get delayed.  In addition, there are a number of ways you can replace the actual String in the URI call so that you can keep one code base and not have to maintain separate code structures for each store you choose to sell your app in.

We hope you keep the scenarios above in mind as you code, and look forward to even more great apps being submitted.

January 28, 2011

amberta

During the process of submitting your app, you are required to submit information that will eventually show up on the site.  We wanted to give a little more detail around where all this information actually goes, so we’re going to dive into a real detail page and lay it out for you.

Here’s a look at a real live detail page – this is the detail page for the IMDb app in the Amazon Appstore for Android (don’t get too excited, it’s not live … yet).  Why is it called a detail page might you ask?  This is the page where customers can get details about your app – hence, detail page.  Pretty straightforward, right? 

Over the fold there are three primary places you’ll be providing content for.

   Detail-page-amazon-appstore-for-android

 

  1. Title and Vendor information: This is where we put the title of your app (in bold).  We’ll also put your vendor name here.  A nice bonus is, if you have multiple apps in the Amazon Appstore, your vendor name links to a search page that reveals all of your apps.
  2. Price: Here’s where we display how much your app costs.  If there is a promotion going on with your app, the promotion price associated with your app will be reflected here along with the original price (so customers see what a great deal they’re getting).
  3. Your app icon, video, and screenshots: Remember how we said it was important to submit compelling images?  Here’s why!  They’re up front and often the first thing customers see.  Also, customers can click into the image to see a bigger size.  

But wait, there’s more!  The scrolling part that you see at the bottom of this screenshot is a slot that is automatically created as purchases of your app pick up.  This slot is called “Customers Who Bought This Also Bought” and as the name implies, when appropriate, your app icon, title, rating, and price will show up on other item’s pages if customers bought that item and your app.  Even non-app pages!  Here’s an example: a customer buys an Android phone and then buys your app (they need to stock their phone, right?). Your app has a good shot of showing up on the bottom of that page to future customers!

January 17, 2011

peracha

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:

  • android:versionName
  • android:versionCode

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:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.amazon.mp3"
      android:versionCode="80029"
      android:versionName="1.8.29">

        ...
</manifest>

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.