Vision Mobile recently shared a new chart showing a higher percentage of Amazon Fire developers above the app poverty line versus other platforms. More specifically, 59% of developers distributing their apps on the Amazon Appstore make more than $500 per month versus <50% on other platforms. The chart also showed that developers continue to experience increased monetization in the Appstore - Amazon had a bigger proportion of developers making $5,000+ a month compared to developers on other platforms. We’re excited to see developers like you expand their reach and monetize apps through the Amazon Appstore.
Today the Amazon Appstore is available on more than just Fire devices including the all-new Amazon Fire TV Stick. The Amazon Appstore for Android is also pre-loaded on BlackBerry 10 devices and carriers including O2, EE, Deutsche Telecom and others on millions of Android devices. This wide reach gives your app access to even more customers. Plus, the latest Amazon shopping app fully integrates apps and games into the shopping experience enjoyed by millions of customers. So when customers are searching for products in the Amazon shopping app, they’ll also discover relevant apps and games that they may also enjoy. Here’s what some developers are saying about their experience with Amazon:
– Elad Kushnir, VP of Business Development at Playtika
– Jean-Baptiste, CEO at DJIT
P.S. The holidays are the best time of the year to submit your apps. Read our latest blog post to learn more: Three Important Stats About Holiday Device Sales
Beta software gets a bad rap. It is usually the first public release and comes as part of the final phase of testing, which means it isn’t always polished and bugs are common. It should be considered more than just a public bug bash, though. A beta serves another important purpose: it is your first chance as a developer to see if the software does its job and meets the need it is designed to meet.
Releasing your application to a community of “beta users” lets you observe unscripted interaction with your software in a wide variety of real-world environments. Managing this kind of release (a “beta test”), though, and collecting the interaction data has traditionally been a logistical chore.
Say we have a mobile game with multiple levels. How should they be presented? The obvious answer is in order of increasing difficulty, but maybe it makes sense to alternate easy and hard levels so players don’t become discouraged. Perhaps they should be arranged in groups, each of which starts easy and grows more challenging as a player advances.
This is the kind of fundamental behavioral question you might try to answer with a beta test. Using traditional techniques, you would code one approach, release it to your beta users, and evaluate its success based on, for example, the number of levels completed or highest level completed. Then you would code the next approach, re-release the updated app, record the user response to the new version, and so on. Finally, you would select the most successful approach for your production release.
There are obvious disadvantages to performing a beta test this way. You must release a new version of your app for each variation you want to evaluate. Beta periods are longer because you must test variations sequentially (unless you manage several different groups of beta users). Test results may be influenced by users’ previous experience, since they won’t necessarily bring fresh eyes to each variation.
For mobile app developers, distributing software to a limited group of users may not even be possible. Once an app is published to an app store—often the only practical way to handle distribution—it is automatically available to everyone using that store. App updates must also go through the store, which means resubmitting a new version and potentially restarting the approval process.
Although everyone agrees that beta testing is important, most developers would also agree it is very time-consuming and difficult to execute.
Amazon’s A/B Testing Service is designed to run in-app experiments, which also makes it perfect for beta tests. A free, cross-platform service that supports iOS, Fire OS, and Android, it can handle multiple tests at once with up to five variations each. You can use it to make app adjustments on the fly without updating client-side code or redeploying your app.
The service also makes it easy to manage beta users, since it has built-in support for user segmentation. This means that you can target your beta test to users matching particular criteria (that you specify), or even run more than one test at once targeting different groups.
The Amazon Developer Console provides an online dashboard from which you can monitor and control all aspects of your beta tests.
We can use Amazon’s A/B Testing Service to address these issues and simplify the testing process. First, we create a project to represent our test.
Next, we identify which users will be included in the test by defining a special segment. Only beta users will see the variations; everyone else will see the default behavior (also called the control).
Finally, we create the actual A/B test we want to run and describe each variation in terms of the variables that connect it to our app. We will evaluate success based on the percentage of time that players complete Level 5 after starting Level 5.
The user segment we defined above (betaUsers) will be divided equally, with each subgroup seeing one of the variations we described. We can use the Amazon Developer Console to review the results of our test.
As the customers in the “betaUsers” segment, play the game data is uploaded to the service is tabulated within an hour. Once the confidence reaches statistical significance (100% in the example above) you can decide how you’d like to react. You can pick the winning variation and make that live for all new users. In this situation, we see that the existing Level 5 design (Variation A) is better than the new level 5 (Variation B) that we’re testing. Somehow, we made the level worse and shouldn’t deploy this particular change to everyone.
Beta testing is an effective way to test different configurations in your app under real-world conditions, but it’s also a good opportunity to evaluate user satisfaction with your app’s basic operation. Using Amazon’s A/B Testing Service, you can easily compare different functional implementations of key features or behavior, allowing you to identify which approach will resonate most with your users.
To learn more about A/B Testing and how you can incorporate it into your app development, see Amazon’s developer website and the A/B Testing Service documentation:
While at GDC last week, I was able to speak to over 300 developers. It’s exciting to see all the ideas and the passion that fuels them - I love being around people that are so creative and productive. Often our conversations would turn to how to take their great idea and turn it into a great business. We’d talk about how to expand their distribution channels, best practices for monetization, opportunities for promotion and, most importantly, how to continuously improve the experience of their game.
Most of the people I spoke to understood the basic premise of AB Testing — to provide more than one experience and see which performs the best. For example, it’s common in advertising to deploy several ads with different messaging or art work to a small number of customers and then expand to more with the one that performs the best. It’s similar in a game, where you could test several experiences like the difficulty of a level, the impact of ad placement, or the effectiveness of your viral mechanic, etc.
Still, most of the developers I spoke to were surprised and excited by the following 4 aspects of Amazon’s AB Testing service:
You can give it a try right now. It’s available from the developer portal at https://developer.amazon.com/public/apis/manage/ab-testing.
Login with Amazon is now available to developers to integrate in their mobile apps and websites. The new service lets you take advantage of the same user authentication system used by Amazon.com. Login with Amazon allows you to securely recognize millions of Amazon customers and provide them with a personalized user experience. For example, you can greet visitors by their name or display customized offers based on their zip code.
Login with Amazon uses the OAuth 2.0 protocol making it easy for you to integrate it in your app or website. Developers who have previously worked with the OAuth 2.0 protocol will find the terms and concepts straightforward and consistent with other implementations.
How does Login with Amazon work?
Login with Amazon SDKs are available in public beta for Android, Kindle Fire, and iOS. To integrate the service in your app or website, go to login.amazon.com to register a developer account, download the SDKs, and view the Getting Started Guides.
Login with Amazon adds yet another capability for mobile app developers. Now, developers can use Amazon Web Services (AWS) for its infrastructure (e.g., compute, storage, and database). For those interested in building cloud-backed apps, you can read more about it here.
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.