Appstore Blogs

Appstore Blogs

Want the latest?

appstore topics

Recent Posts

Archive

February 01, 2011

peracha

Since Android’s first release in September 2008, the number of Android users and supported devices has steadily increased.  A recent comScore report shows that there are now nearly 16 million users in the US owning Android smartphones, surpassing the total number of iPhone owners. Late last year, Canalys reported that Android claims a quarter of the smartphone market segment share.  Their recent report says that Android’s growth in 2011 will be twice the rate of their major competitors, including Apple’s iOS-based devices.  There is a growing market segment here that presents a great opportunity to developers including those in the Android space, and those who have only developed for iPhone and iPad.  For iOS developers, porting apps to Android presents a rare opportunity to tap into this market segment and a fast growing user base. 

If you are considering taking advantage of this opportunity, here are key topics to be aware of when porting your apps from iOS to Android.

Differences between iOS and Android programming

Apps for iOS are written in Objective-C, an object-oriented descendent of the C programming language.  Android apps are written in Java, a very popular programming language invented by Sun in 1994, traditionally used for building server-side applications over the past 15 years.

In addition to the differences in language, syntax and semantics, there is also a key runtime difference that affects how your code is written.  Java has automatic garbage collection, which means that you do not have to explicitly free objects after they are used.  Objective-C requires developers to manage memory explicitly.

Integrated Development Environment (IDE) options and SDK platform support

You have more options when it comes to selecting an IDE and platform when writing code for Android. While building Java-based apps, you can write and compile your code on all major operating systems, including Linux, Windows, and Mac OS X.  Furthermore, the Android SDK integrates with most major IDEs, such as Eclipse and Intellij, which means you can run an Android emulator and test your application on either of these IDEs and operating systems.  The iOS SDK, which includes XCode IDE, runs only on Apple-based operating systems.

Apple is the only provider of iOS devices, while many vendors offer devices supporting Android

As we discussed in a previous post, Android has many vendors, which means Android devices have varying capabilities and features.  iOS devices are only manufactured by Apple and are currently limited to iPhone, iPad and iPod touch.  For developers who are accustomed to building apps for a small set of devices, building apps for Android presents a completely new challenge.

Ultimately, iOS developers with a good understanding of these fundamental differences will be able to assimilate well in developing apps for Android.  In fact, the developer who was previously constrained by the platform limitations of iOS devices may now find the flexibility of having IDE options, SDK platform support and the nuances of the Java language to be refreshing and energizing.

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 20, 2011

amberta

A picture is worth a thousand words.  Use that picture (and those hypothetical thousand words) to effectively market your app. 

When you submit your app to the Amazon Appstore for Android through the Developer Portal, you will need to submit an icon, a thumbnail, a promotional image, a square version of the promotional image, and screenshots.  Having compelling images help get your app noticed.  Also, great looking apps look great on our store – if you look good, we look good!

Here are details and recommendations for creating great images for all your submissions:

Image-grid
Some dos and don’ts.

Do:

  • Create separate app icons and thumbnails. These images should be the same with dimensions being the only difference between the two.  This will be the first image customers interface with, so keep the image simple, vibrant, and most importantly clear.
  • Fill the space required with all images.  For icons especially, if your image is not a perfect square, or if it has a curved border enclosing the image, add a transparent background.  Icons show up against both a white background and a black background in our store.If you have a non-transparent white background to fill the dimensions for the required image, it will look broken against the black background.  
  • Provide screenshots that really show what your app can do – put your (app's) best face forward.  This is your opportunity to show-off your app's best features.
  • Make sure you own the rights to the images you use.  Think the top selling apps have cool images?  The developers behind those apps think so too.  So, if you want to use someone else's images you must prove that license-free images are indeed free, you own rights to and/or can use the images without a license, or have permission to use licensed images.  
  • Use high resolution images only – stretching and morphing images just to fit our required dimensions will look … well, stretched and morphed.  Aka, not great.

Here’s an example of a “do” icon image:

Mp3-icon-do

Don’t:

  • Use whitespace to fill the required dimensions
  • Cut out important parts of the image (think about all those old family pics where no-one has feet.  Looks funny, right?) 
  • Watermark the image or try to alter the colors from the real color (this is especially important for screenshots.  Altering the colors and/or image for screenshots alters the customer’s expectations.  Altering the colors for the icon leaves customers with an inconsistent experience and they’re not sure if this is the “real” version of the app.
  • Squeeze words into the image or icon – remember, your picture is worth a thousand words!  You don’t need to tell a story on top of the picture.  If there’s text you think is important to include with your app listing, include it in the details about the app so we can use it on the detail page for that app.
  • Add a wannabe iTunes app sheen (you don’t need to put a glossy 3D effect over your icon)
  • Add a drop shadow to the bottom or around your images.  When the images are small, the drop shadow can look like a mistake or smudge.
  • Stretch your images to meet our requirements – stretching just makes them pixilated and looks bad.

You can learn more about image guidelines and best practices in the Appstore Developer Portal online here.

That’s it!  So go tell your app to “say cheese!”

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. 

January 13, 2011

amberta

It’s well known that Amazon is all about customer experience.  With a growing developer customer-base, we’re constantly striving to make it easier for developers to do just that – develop!  Last month, we launched an Amazon Web Services (AWS) SDK for Android.  “We’re really excited about the launch of the AWS SDK’s for mobile,” says Jeff Barr, Senior Web Services Evangelist, Amazon Web Services.  “As a developer myself, I’m looking forward to seeing all sorts of cool and creative AWS-powered applications show up on mobile devices in the future.”

Some highlights of the AWS SDK for Android include:

  • Storage – developers can store and retrieve any amount of data using Amazon S3
  • Database – developers can add a highly available, scalable, and flexible non-relational data store using Amazon SimpleDB with little or no administrative burden
  • Messaging – developers can integrate reliable, highly scalable mobile-to-mobile communication into applications using Amazon SQS and Amazon SNS

The SDK includes a library, full documentation, and some sample code.  You can get the library on GitHub.  Also, in true open source fashion, AWS is open to and encourages external contributions.

Check out this blog post on the AWS blog for more details about the AWS SDK as well as an iOS SDK.  You can download the AWS SDK, access documentation, and participate in the discussion forum online here.

Finally, right now Amazon has a free usage tier available to new AWS customers to help get started in the cloud.  As of November 1, 2010, new customers can run a free Amazon EC2 Micro Instance for a year, while also leveraging a new free usage tier for Amazon S3, Amazon Elastic Block Store, Amazon Elastic Load Balancing, and AWS data transfer.  AWS’s free usage tier can be used for anything you want to run in the cloud: launch new applications, test existing applications in the cloud, or simply gain hands-on experience with AWS.  Learn more here.

January 11, 2011

peracha

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:

<supports-screens
        android:smallScreens="true"
        android:normalScreens="true"
        android:largeScreens="true"
        android:xlargeScreens="true" />

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.

January 06, 2011

amberta

You’ve taken the first step in submitting an app to the Amazon Appstore – you’ve created a compelling app or game for Android!  Either that or you’re reading this post to learn more about what’s to come in the store itself – we understand, it’s exciting.  Regardless – if you’re an app developer or you’re just plain old curious, we’ll bottom line the submission process for you.  It’s straight forward – you did the hard work and we want to make submitting to the store easy.

There are three steps to getting your app into the Amazon Appstore for Android: create an account, submit your app, and make your app available.

The first step is creating an account.  This is the easy part – you can create an account directly on the Amazon Appstore Developer Portal For a limited time, we’re waiving the $99 program fee to make getting started even easier (or at least cheaper … free) . It’s free to register for a developer account. Go to the Amazon Appstore Developer Portal to create your account. 

You’ll be asked for the following information:

  • Profile Information: this is the information we’ll associate with your account and use to talk about you, the developer; in the Profile Information section is a “Developer Info” field – this is public facing and should be a short blurb about who you are
  • Acceptance of our agreement (you can also print and save the agreement from the Portal)
  • Payment Information: this is what we need to be able to pay you based on app sales

After setting up your account, you’ll need to submit your apk file as well as marketing materials that complement your app.  Marketing materials include details about your app, images, and video.

We will ask for the following details about your app:

  • Application Information: The application title, category, and description will help with the marketing of your app and may show up on product detail pages.  If there are keywords you think will help with the discoverability of your app, include them!  Do make sure the keywords are relevant, though (don’t put multi-player if it’s truly a single player app).
  • Product Availability Schedule: This information lets us know the earliest we can display an application in the store as well as when/if we need to pull the application down. 
  • Application Support: The contact that Amazon should work with to troubleshoot any problems with the application.  This information will not be listed with your app.
  • Content Maturity: When you post your app, you will select different content ratings as applicable.  We’ll also check these when we’re testing the app.  Some developers have ESRB ratings for their app – if you have one, include it!  That too will help with the marketing of your app.

You can find out more about what’s specifically required for images and video online here.   It’s important that the images and video you submit are yours (you have the rights to use these images and video) and that they’re reflective of the app itself.  An image with some upset birds for a finance app that helps with taxes wouldn’t do anyone any good.

That’s it – after you open up your account and submit your assets you’re app and details will be in review.  You can track the approval status of your app at any time by logging into the Developer Portal and finding your app in the “Dashboard” on the portal home page.

January 04, 2011

Amazon Mobile App Distribution Program

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?

  • For the first time, you will have access to tens of millions of active Amazon customers.
  • Amazon’s proven marketing and merchandizing features will help you get your apps discovered and in front of the right customers.
  • The convenience of using an existing Amazon.com account will make it simple and easy for customers to purchase your apps - both online and on their mobile devices. 

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

Want the latest?

appstore topics

Recent Posts

Archive