Android Version Pains
Android’s growing pains are making it difficult for the hobbyist and part-time programmer to create quality software and make it available to everyone.
If you are using an HTC Tattoo, you currently can’t find the OneBusAway app on the Android Market. This is due to the confluence of two unfortunate circumstances: the Tattoo’s screen size and the prevalence of devices still running 1.5.
The Tattoo sports a QVGA screen (240×320), so it’s smaller than the G1. In order to declare support for those small screens (and larger screens as well), an application needs be built with the Android 1.6 SDK. That’s all well and good, but as of the last statistics available, 31% of devices in the wild run Android 1.5. So moving to the 1.6 SDK means cutting off 31% of your potential users. (For this reason, OneBusAway for Android is still compiled against the 1.5 SDK.)
Secondly, just declaring support for small screens in your app doesn’t make it usable. When the app is put on the small screen, all the UI elements are “squeezed” so they will be physically smaller than on other screens, assuming the same or similar pixel density. The stop icons and some of the text on the OneBusAway app are already small on an HVGA (320×480) screen — if they get any smaller, they may be too difficult to use. So the application developer must make sure he or she tests on this screen size, and in particular test it on this screen size using an actual device. Using an emulator can only go so far — it can’t tell you whether or not a particular icon or piece of text is too small for the average person’s finger.
If you don’t do this testing, you’ll be releasing an unusable app on the Market, and users will certainly not be afraid to rate the app poorly, even if the experience is perfect on a larger screen.
All this adds up to mean that for a developer to support both 1.5 users and QVGA users, he or she must build and maintain two separate APKs, and be sure to test it on a physical QVGA device. This may be easy for a company with money and time to do, but it presents significant impediments to the hobbyist or part-time developer.
Hopefully soon there won’t be so many 1.5 devices and developers can make 1.6 the lowest common denominator. In addition, making tools that made it easier to test on multiple screens would be fantastic. Until that happens, Android development for the hobbyist programmer is not as easy as it should be.