Comparing Android and Kindle for App Development
There’s this little bookstore, up around Seattle, called Amazon.com. You might have heard of them. They sell an ebook reader called the Kindle, now in its second generation. Now, the Kindle is turning into a mobile platform, with the introduction of “active content”, complete with an SDK and “app store”. Here’s my take on what they are offering. Note that this is based solely on materials presently available at public URLs, as I have not yet elected to agree to the beta terms and conditions.
From a programming standpoint, the Kindle embeds JavaME, specifically the Personal Basis Profile. Hence, instead of Android widgets, you’re using AWT for containers and drawing and some Kindle-specific widgets, like KButton and KTextField. However, it is still Java from a programming language standpoint, a plus for Android developers looking to dip their toes in the Kindly waters.
The equivalent of an Android activity is the “kindlet”. It is unclear if the Kindle will support any sort of multiprocessing (e.g., playing music while the user reads), but preliminary indications suggest it will not. Notably, you cannot keep your “kindlet” running while the device is idle (screensaver mode) or when the Kindle is mounted as a USB device.
Also, bear in mind that the Kindle is not a touch-screen device. Instead, you use what amounts to a D-pad to navigate. It also has a fairly slow screen refresh rate, courtesy of e-ink technology. The combination of these means fast-twitch games (e.g., first-person shooters) seem unlikely apps for Kindle. Displays are also monochrome, with only a few shades of gray. However, the Kindle does sport a QWERTY keyboard.
The SDK comes with simulators for both sizes of Kindle, supported on Linux, OS X, and Windows. You can also associate up to three real Kindles as test devices — apparently, these are then also eligible for you to use for testing applications.
Once we get out of the realm of programming and into the realm of the “app store”, though, things start to radically depart from the Android model.
It would appear the only way to deliver “active content” to the Kindle is through Amazon.com. This is not surprising, considering it follows the iPhone App Store model and fits with Amazon’s strong preference for you to get your Kindle books through Amazon.com. Also, like the iPhone App Store, Amazon must approve all applications (“We recommend that you test your application on a Kindle before submitting it to us for approval.”). Their current terms notably prevent one from creating a VOIP app, an alternative reader (e.g., for EPUB), or display advertising.
Applications will be protected by Amazon’s DRM system. Since this was broken some time ago for ebooks, it will be interesting to see how long this lasts, and whether people are able to “root” or “jailbreak” their Kindles for use with apps distributed outside Amazon with removed DRM.
Their “active content” pricing rules are…interesting. Developers get a 70/30 split (less a 15-cent delivery fee), much like the Android Market and iPhone App Store. However, your choice of pricing model depends on how much bandwidth you consume. Kindle users get free 3G service (Whispernet), and Amazon clearly does not want to bankroll ridiculous bandwidth charges. Hence, you can only distribute an app for free if it is smaller than 1MB to begin with and uses less than 100KB/user/month. If you want to offer a one-time charge (a la Android Market and iPhone App Store), you can, and you can then have a larger app (10MB for Whispernet, 100MB for USB-based installation), but you still are subject to the 100KB/user/month bandwidth budget. If you want more bandwidth, it appears you have to charge a monthly fee, and it is unclear what bandwidth limits you are subject to under that model.
Perhaps the biggest thing that the Kindle has going for it is the possibility of a “land rush”. Many Kindles have sold, though Amazon has been mum on actual figures. Some estimates peg it at around 1.5 million as of the end of 2009, though many of those were first-generation Kindles that will not support active content. The iPhone app land rush was caused by many more iPhones, and it is unclear how popular “active content” will be among Kindle users. However, the Kindle is popular enough that there may be first-mover opportunities to make some money, if you have an app that is small, has modest bandwidth requirements, fits the display and user input constraints of the device, and might prove popular among Kindle users.
Android already dwarfs Kindle’s market size, and Android would appear to have a far better growth curve. Hence, Android is a better bet overall, if you are not in position to support too many platforms. But, Kindle will still have its share of winners, and since it is Java-based, Android developers may want to check it out.