Amazon Developer Blogs

Amazon Developer Blogs

Showing posts tagged with Amazon Appstore for Android

January 06, 2012

Amazon Mobile App Distribution Program

Interested in learning more about selling your apps on Amazon.com and Kindle Fire? Aaron Rubenson, director of the Amazon Appstore for Android, will offer insight at CES into how developers can get in front of millions of Amazon customers  – and make money – when they sell their apps at Amazon.com.

Learn about submitting apps for Kindle Fire,  which topped Amazon.com’s “Best of 2011” list as the best-selling, most wished for, and most gifted product as determined by Amazon.com customers. Throughout December, customers purchased well over 1 million Kindle devices per week. Also on the agenda is information about programs such as in-app purchasing and Test Drive, which lets customers try an app on their computers before they buy.

  AaronRubenson

Rubenson and other Amazon Appstore representatives will be available for informal discussions after the presentation.

Who:  Aaron Rubenson, Director, Amazon Appstore for Android

What:  “Selling Apps on Amazon.com and Kindle Fire”

Where:  The Venetian Meeting Rooms, Veronese 2404

When:  Friday, January 13, 9 a.m. – no R.S.V.P. needed

December 21, 2011

lisamar

One great benefit to having your app on the Amazon Appstore for Android is cross-promotion. Cross-promotion is a form of marketing where customers of one product are targeted with promotion of a related product. Amazon.com has millions of customers, and those customers purchase tens of thousands of products every day. With so many great products (and customers), we have the unique ability to employ cross-promotion, even across product categories.

So, what do you need to do? Nothing! By default, apps that are published in the Amazon Appstore qualify to get picked up in the cross-merchandising widgets and promotions.

In the below image, you’ll see the product detail page for an Android app. In the Customers Who Bought Related Items Also Bought widget right below the general app information, you see that our site is automatically recommending a USB cable to the customer who is interested in this app—simply because other customers purchased similar items.

Calengoo-other-items

 

Similarly, in the following image, you can see the Customers Who Bought This Item Also Bought widget. This form of cross-promotion allows customers to make informed decisions about which apps they purchase while also showing them additional apps that might interest them.

Customers_Who_Bought_This_Item_Also_Bought

Another Amazon widget that can benefit your app is the What Other Items Do Customers Buy After Viewing This Item? widget. Below, the widget is appearing on the product detail page for a tablet device and is advertising an app that was purchased by a customer who also purchased the tablet.

Automated Merchandisting slot promotes recent FAD_edit

All of the above-mentioned widgets are automated, but we also have the ability to manually cross-promote your app. In the following image, note that on the product detail page for a hardcover copy of this Dr. Seuss book, we’ve added a recommendation for the related Android app.

Cross-promotion screenshot

Cross-promotion means customers can discover your app in a number of ways—not just by searching on the title or category. And over time, your app sales have the potential to increase, purely based on this cross-promotion. That’s never a bad thing, right?

November 30, 2011

gdierkes

Screen shot 2011-11-29 at 10.40.45 AM

This article highlights the benefits of connecting mobile devices to the cloud while also presenting an Amazon SimpleDB use case. Amazon SimpleDB is a highly available, flexible, and scalable non-relational data store that offloads the work of database administration. The app described here demonstrates how to store a high score list or leader board in SimpleDB. The app enables the user to view the high scores sorted by name or score, add and remove scores, and more. This article shows sample code for the Android platform. The complete sample code and project files are included in the AWS SDK for Android. A link to the SDK is available at the end of this article.

To use the AWS SDK for Android, you will need your AWS credentials, that is, your Access Key ID and Secret Access Key. If you haven't already signed up for Amazon Web Services (AWS), you will need to do that first to get your AWS credentials. You can sign up for AWS here. After you have signed up, you can retrieve your credentials at this page.

Overview

SimpleDB stores data in domains. Each domain is a collection of items and each item is a collection of attribute/value pairs. For the app, we create a single domain to store our high score list. Each item in the domain represents an individual player. The items will have two attributes, the player's name and their score. Items also have a unique identifier called the item name that, in this case, is equal to the player's name. Storing the player's name and score as item attributes enables us to sort the items by name or score.

The app demonstrates how to add and remove individual players, sort the scores by player name or score, and retrieve a single item from the domain. The app also demonstrates how to create and delete SimpleDB domains.

Creating a SimpleDB Client

Making requests to SimpleDB requires a client. Creating a SimpleDB client for Android is shown below.

AWSCredentials credentials = new BasicAWSCredentials(ACCESS_KEY_ID, SECRET_KEY);AmazonSimpleDBClient sdbClient = new AmazonSimpleDBClient( credentials);

High Score List Creation (Domain Creation)

Individual player scores are stored as items in a SimpleDB domain. This requires that we create the domain first. Using the appropriate client that we created above, we can use the following code to create the domain.

CreateDomainRequest cdr = new CreateDomainRequest( HIGH_SCORES_DOMAIN );sdbClient.createDomain( cdr );

Add Score (Item Creation)

An item is a collection of attribute/value pairs. For our items, we create two attributes, one for the player's name and one for the player's score. These are added to a request along with an item name in order to create the item. Because a player appears at most only once on the high score list, we use the player's name to uniquely identify each item. All data in SimpleDB are stored as strings, therefore numbers must be zero padded if you want to sort them properly. The AWS SDK for Android includes a utility to pad numbers, used below.

String paddedScore = SimpleDBUtils.encodeZeroPadding( score, 10 );		ReplaceableAttribute playerAttribute =     new ReplaceableAttribute(PLAYER_ATTRIBUTE, player, Boolean.TRUE);ReplaceableAttribute scoreAttribute =     new ReplaceableAttribute(SCORE_ATTRIBUTE, paddedScore, Boolean.TRUE);		List attrs = new ArrayList(2);attrs.add( playerAttribute );attrs.add( scoreAttribute );		PutAttributesRequest par = new PutAttributesRequest(HIGH_SCORES_DOMAIN, player, attrs);		sdbClient.putAttributes( par );

Remove Score (Item Deletion)

Removing a score from the list simply means deleting an item from the domain. Deleting an item requires the unique name for the item you wish to delete. In SimpleDB, deleting an item is done by removing all the attributes from that item. Invoking deleteAttributes with no specified attributes removes all the attributes by default.

DeleteAttributesRequest dar = new DeleteAttributesRequest( HIGH_SCORES_DOMAIN, player );sdbClient.deleteAttributes( dar );

Player View (Getting an Item)

Knowing an item's name makes it easy to find the item. This next snippet shows how to get all the attributes for an item using the item name. Note that items may contain many attributes and values.

GetAttributesRequest gar = new GetAttributesRequest( HIGH_SCORES_DOMAIN, player );GetAttributesResult response = sdbClient.getAttributes(gar);

List View and Sorting (Select)

Getting a collection of scores, sorted by player name or the score itself requires the use of a select request. A select request uses a simple query language to determine which items to match and what data to return and how. Select requests are paginated because the number of items matching the query can be large. Therefore, select requests return a next token that enables you to "page" through the data in an ordered fashion. The code here shows how to return items ordered by score from highest to lowest. Only the score and player attributes are returned. More information regarding SimpleDB queries can be found in a reference article linked below.

String select = "select player, score from HighScores where score >= '0' order by score desc";SelectRequest selectRequest = new SelectRequest( select ).withConsistentRead( true );selectRequest.setNextToken( nextToken );		SelectResult response = sdbClient.select( selectRequest );nextToken = response.getNextToken();

List Deletion (Domain Deletion)

The quickest and easiest way to remove the entire high score list would be to delete the SimpleDB domain. Here is how to do that.

DeleteDomainRequest ddr = new DeleteDomainRequest( HIGH_SCORES_DOMAIN );sdbClient.deleteDomain(ddr);

Conclusion

The code in this article demonstrates how to use Amazon SimpleDB as an indexed storage device for your app. The complete sample app is included as part of the AWS mobile SDKs, which are linked below. The reference section also contains a link to a SimpleDB article which discusses writing queries for SimpleDB in detail.

References

Find more information about SimpleDB here.

A sample app that includes this code is provided with the AWS SDK for Android

For more information about using AWS credentials with apps see the article, Authenticating Users of AWS Mobile Applications with a Token Vending Machine
 

Questions?

Please feel free to ask questions or provide comments in the Mobile Development Forum.

November 14, 2011

amberta

Kindle Fire ships today, and we think this is a huge win for Amazon.com customers and Amazon Appstore for Android developers.  As we mentioned in a Kindle Fire announcement blog post, Kindle Fire boasts Amazon’s incredible selection of digital content at customers’ fingertips:

  • Amazon Appstore for Android – thousands of popular apps and games
  • 18 million movies, TV shows, songs, magazines, and books
  • Ultra-fast web browsing - Amazon Silk 
  • Free cloud storage for all your Amazon content
  • Vibrant color touchscreen with extra-wide viewing angle  
  • Fast, powerful dual-core processor 

For Amazon Appstore developers, Kindle Fire offers another venue for getting your apps in front of potential customers. You’ll start seeing Kindle Fire, and apps that were Amazon-tested on Kindle Fire for the best experience possible, sprinkled throughout Amazon.com and in the Amazon Appstore marketing campaigns, in addition to the placements where we’ve already been showcasing apps. You can view a selection of some of our favorite Kindle Fire apps in the Amazon Appstore here.

Some of the titles you may have seen in recent press include Netflix, Rhapsody, Pandora, Comics by comiXology, Facebook, The Weather Channel and popular games from Zynga, EA, Gameloft, PopCap, and Rovio.  Thousands of the Amazon Appstore editorial team’s favorites, such as Bird’s the Word, Pinball Deluxe, SketchBook Mobile, Super Sudoku, X Construction, Monkey Preschool Lunchbox, and more are available as well.

What does this mean for you?
As always, we encourage you to ensure you have submitted the most current versions of all your apps to the Amazon Appstore for Android. Now is also a good time to verify that each app’s meta-data (including list price) is up-to to-date. You can update your existing apps and submit new apps using the Amazon Appstore Developer Portal.

Where can you find the technical specifications for Kindle Fire?
The Kindle Fire has a 7” multi-touch display with 1024 x 600 pixel resolution at 169 ppi, can display 16 million colors, and has instant access to the Amazon Appstore for Android. For more detailed information about the device, including technical specifications, app compatibility information, development tips, and instructions for submitting your app, please see our Kindle Fire FAQ.

You can order a Kindle Fire to test your apps online at amazon.com/kindlefire.

How can developers get merchandising placement in the Amazon Appstore and on Kindle Fire?
If you have ideas about merchandising and marketing your app at the Amazon Appstore, or if you would like to be considered for Free App of the Day placement, please fill out the Marketing Proposal Form.

November 10, 2011

gdierkes

This article demonstrates how to use the AWS SDK for Android to uploadan image to Amazon Simple StorageService (S3) from your mobile device and how to make that imageavailable on the web. Amazon S3 is storage for the Internet. It's a simplestorage service that offers software developers a highly-scalable,reliable, secure, fast, and inexpensive data storage. The complete samplecode and project files are included in the AWS SDK for Android which canbe found here.

To use the AWS SDK for Android, you will need your AWS credentials,that is, your Access Key ID and Secret Access Key. If you haven'talready signed up for Amazon WebServices (AWS), you will need to do that first to get your AWScredentials. You can sign up for AWS here.

Here's what the sample app looks like at start up on Android:

Android-Uploader

Photo Upload

The app uses each platform's "image picker" utility to have theend-user select an image for upload. The app then creates an Amazon S3client, uses the client to create an Amazon S3 bucket in which to storethe image, and finally uploads the image into the bucket. A bucket is acontainer for objects stored in Amazon S3. Every object--such as animage--is contained within a bucket.      

Get the image

The first step is to retrieve the content, in this case an image, tobe uploaded to Amazon S3. For this sample app, selecting an image from thedevice itself is an easy choice.

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);intent.setType("image/*");startActivityForResult(intent, PHOTO_SELECTED);

Android-Image-Picker

Once an image is selected, a callback method is invoked with theselected image's information. The app uses this information to completethe upload.

Upload the image

Once we have the image, we can attempt to upload it to Amazon S3.

First, create an Amazon S3 client to communicate withthe service.

AmazonS3Client s3Client =   new AmazonS3Client( new BasicAWSCredentials( MY_ACCESS_KEY_ID, MY_SECRET_KEY ) );

Second, create an Amazon S3 bucket to store thepicture.

s3Client.createBucket( MY_PICTURE_BUCKET );

Finally, put the image object into the Amazon S3bucket.

PutObjectRequest por =    new PutObjectRequest( Constants.getPictureBucket(),                          Constants.PICTURE_NAME,                          new java.io.File( filePath) );s3Client.putObject( por );

Browser Display

The app makes the image available for viewing in a browser bygenerating a pre-signed URL. A pre-signed URL is a URL for an Amazon S3resource that is signed with current AWS security credentials. Thepre-signed URL can then be shared with other users, allowing them toaccess resources without providing an account's AWS securitycredentials.

First, create an override content type to ensure thatthe "content" will be treated as an image by the browser.

ResponseHeaderOverrides override = new ResponseHeaderOverrides();override.setContentType( "image/jpeg" );

Second, create the pre-signed URL request. Pre-signedURLs can be created with an expiration date, that is, a date andtime after which the resource will no longer be available. In the sample,the pre-signed URLs are valid for only one hour.

GeneratePresignedUrlRequest urlRequest =    new GeneratePresignedUrlRequest( Constants.getPictureBucket(),                                     Constants.PICTURE_NAME );// Added an hour's worth of milliseconds to the current time.urlRequest.setExpiration(    new Date( System.currentTimeMillis() + 3600000 ) );urlRequest.setResponseHeaders( override );

Third, generate the pre-signed URL. 

URL url = s3Client.generatePresignedUrl( urlRequest );

Finally, launch the browser to view the pre-signed URLwhich will display the image. 

startActivity(    new Intent( Intent.ACTION_VIEW, Uri.parse( url.toURI().toString() ) ));

Android-ShowPic

Next Steps

These few lines of code demonstrate how Amazon S3 could become alimitless storage device for your mobile photos. A photo sharing app thatallows users to view photos from other users would not be a difficultextension to the above code. Also, the content that is uploaded and sharedis not limited to images. The content could be audio files, video files,text, or other content that users want to store and share. 

References

A sample app that includes this code is provided with both mobile SDKs.The download links can be found here: AWS SDK for Android.

For more information about using AWS credentials with mobileapplications see the following article: Authenticating Users of AWS Mobile Applications with a Token VendingMachine

Questions?

Please feel free to ask questions or make comments in the MobileDevelopment Forum.

Portions of this page are reproduced from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License.

October 28, 2011

amberta

Last month we announced a promotion with Amazon Web Services (AWS) where qualifying developers who submit an Android app or app update to the Amazon Appstore for Android are eligible to receive a $50 AWS credit to use toward the following services:

Remember, there’s still time to submit. The promotion runs through November 15, 2011, and we encourage you to get your apps in soon. We encourage you to ensure you’ve submitted the current versions of all your apps to the Amazon Appstore. Now is also a good time to verify that each app’s meta-data (including list price) is up-to-date. You can update your existing apps and submit new apps using the Amazon Appstore Developer Portal.

For developers new to AWS, here’s a great video on how to get started:

Many developers have already qualified for and received their promotion code for AWS. AWS combined with the Amazon Appstore provide a solid suite of solutions to build apps and a great place to get exposure. MightyMeeting, an app that enables users to run online meetings on the go from tablets, smartphones, or any web-enabled device is one great example. “We needed a cost-efficient robust infrastructure that could be used to manage presentations and online meetings in the cloud and scale up or down dynamically depending on the workload. We found that AWS addresses all our needs, even real-time media streaming during a meeting,” says Dmitri Tcherevik, CEO of MightyMeeting Inc.

Learn more about the AWS SDK and this promotion online here. To apply your code, sign up for an AWS account and apply your promotion code by visiting: http://aws.amazon.com/awscredits/

Submit your app online here.
 

October 05, 2011

amberta

Last week Amazon announced the upcoming release of Kindle Fire.  Kindle-fire-screenshot

Kindle Fire is a new addition to  the Kindle family with a vibrant color touch display that offers instant access to the Amazon Appstore, along with Amazon’s massive selection of digital content and free storage in the Amazon Cloud.  A fast and powerful dual-core processor powers the 14.6-ounce device that’s light enough to hold with one hand—all for only $199.

Customers in the U.S. can pre-order Kindle Fire at www.amazon.com/kindlefire.  Read more in the press release.

What does this mean for you?
Kindle Fire ships on November 15.  We encourage you to ensure you have submitted the most current versions of all your apps to the Amazon Appstore for Android.  Now is also a good time to verify that each app’s meta-data (including list price) is up-to to-date.  You can update your existing apps and submit new apps using the Amazon Appstore Developer Portal.

Where can I find the technical specifications for Kindle Fire?

The Kindle Fire has a 7” multi-touch display with 1024 x 600 pixel resolution at 169 ppi, can display 16 million colors, and has instant access to the Amazon Appstore for Android.  For more detailed information about the device, including technical specifications, app compatibility information, development tips, and instructions for submitting your app, please see our Kindle Fire FAQ

How can developers get merchandising placement in the Amazon Appstore and on Kindle Fire?

If you have ideas about merchandising and marketing your app at the Amazon Appstore, or if you would like to be considered for Free App of the Day placement, please fill out the the Marketing Proposal Form.

We appreciate your interest in the Amazon Appstore for Android and the new Kindle Fire!

September 28, 2011

Amazon Mobile App Distribution Program

Kindle Fire is a new addition to the Kindle family with a vibrant color touch display that offers  instant access to the Amazon Appstore, along with Amazon’s massive selection of digital content and free storage in the Amazon Cloud. A fast and powerful dual-core processor powers the 14.6-ounce device that’s light enough to hold with one hand—all for only $199.Apps-on-kindle-fire

Kindle Fire puts Amazon’s incredible selection of digital content at customers’ fingertips:

  • Amazon Appstore for Android – thousands of popular apps and games
  • 18 million movies, TV shows, songs, magazines, and books
  • Ultra-fast web browsing - Amazon Silk 
  • Free cloud storage for all your Amazon content
  • Vibrant color touchscreen with extra-wide viewing angle  
  • Fast, powerful dual-core processor 

Key features:

Stunning Color Touchscreen: Content comes alive on a 7” vibrant color touchscreen that delivers 16 million colors in high resolution and an extra-wide viewing angle.

Fast Dual-Core Processor: Kindle Fire features a state-of-the-art dual-core processor for fast, powerful performance. Stream music while browsing the web or read books while downloading videos.

Easy to Hold in One Hand: Designed to travel with you wherever you go. Light enough to hold in just one hand, Kindle Fire is perfect for browsing, playing, reading and shopping on-the-go.

Beautifully Simple and Easy To Use: Designed from the ground up, Kindle Fire's simple, intuitive interface lets customers spin effortlessly through your recent titles and websites straight from the home screen.

Free Cloud Storage: Kindle Fire gives you free storage for all Amazon digital content in the Amazon Cloud. Apps, books, movies, and music are available instantly to stream or download for free, at a touch of a finger. 

Ultra-fast web browsing – Amazon Silk: Amazon Silk is a revolutionary, cloud-accelerated browser that uses a "split browser" architecture to leverage the computing speed and power of the Amazon Web Services cloud. Learn why it’s so fast

Only $199: The all-new Kindle Fire is only $199. Customers in the U.S. can pre-order Kindle Fire starting today at www.amazon.com/kindlefire, and it ships Nov. 15, 2011.

Read more in the press release.

September 20, 2011

lisamar

Vervv, a mobile developer specializing in finance and productivity apps, currently has two Android apps available in the Amazon Appstore for Android. They are Convertr, which instantly and accurately converts anything, from currency to torque, and Ledgerist, the Android solution to the old pen-and-paper balancing of the checkbook.

The Amazon Appstore team approached Vervv prior to the launch of the Amazon Appstore. Ultimately, Vervv’s decision to submit its apps came down to Amazon’s large and engaged customer base. “There aren't many companies out there with the size and reach that Amazon has,” Vervv co-founder James Kelso said.

Vervv was initially surprised by its lack of traction with other Android offerings. “We noted a great response to our release on iOS, but the market was just too saturated on Android. When we released to the Amazon Appstore, and we were featured as the Free App of the Day, we noted much better user engagement with our product. We've seen a significant increase in sales ever since,” Kelso said.

 
       Convertr_thumbnail_225x225 Ledgerist_thumbnail_225x227


   
Vervv has not had to deal with a lot of non-technical feedback for its app in the Amazon Appstore for Android, a very positive sign. Kelso explained, “We're constantly bombarded with e-mails from users of the other Android marketplaces needing us to fix billing issues or other non-technical issues. Because customers can reach out to Amazon.com customer service for help with app-related billing and non-technical issues, the Amazon Appstore has been great in that it takes that burden off our shoulders.”

Kelso recommends the Amazon Appstore for Android as a good place for emerging apps “because it's difficult to get separation in most segments these days. Amazon is big enough to help gain traction in the market.” He added, “The most important thing that we've learned is probably that your app could be discovered any day.”

September 07, 2011

amberta

The Amazon Appstore for Android is the place where developers can get exposure for their Android applications through automated merchandising and other marketing.  Amazon also offers great solutions for developers to build apps with the Amazon Web Services (AWS) Mobile SDK.

From September 7, 2011 through November 15, 2011, developers who submit an Android app to the Amazon Appstore are eligible to receive a one-time $50 promotion code for use on certain AWS services (subject to terms and conditions).  Promotion codes will be emailed directly to developers during the first week of October and the last week of November.


AWS delivers a set of simple building block services that together form a reliable, scalable, and inexpensive computing platform “in the cloud”. With AWS, developers can easily access a scalable and cost-effective cloud computing resources through simple API calls or with the use of the AWS Mobile SDK for Android (and iOS).  As noted in this blog post , 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.

Learn more about the AWS SDK and this promotion online here.

Submit your app online here.