Android SDK Variations Cause Development Problems
All that is gold doesn’t necessarily have to glitter. Android has been touted as being one of the next big platforms that would knock iPhone of its throne. However, this doesn’t seem to be the situation for Android. The ultimate problem that the platform is currently facing is the number of versions of software on phones. With a whole slew of releases available for the Android platform, many apps are not necessarily backward or forward compatible with the operating system. Add to this the various vendors providing different phones with numerous variations of hardware components means that most developers have nightmares developing code for each individual phone rather than a universal app.
The problem inherently in this situation is that cross-platform independence regardless of hardware is an ideal utopia that developers want but can never get. Similar to the BlackBerry situation where porting apps from other platforms is a nightmare, it can happen but not without a significant fight.
From a smaller developer viewpoint, Android is a difficult platform to work on. The amount of resources and time needed to code for a single application is significant for a small business; the need to re-code for various hardware and software versions is not conducive to building a customer base. Not only do variations in hardware and software affect the overall compatibility of the app, it reflects poorly on the build quality of the app. As a result, customers are naturally wary of the platform when they experience poor app quality and interaction. Developers are then compelled to write quick-and-dirty patches to resolve problems, which is inherently dangerous and shoddy programming.
Google needs to address this issue carefully. There are a number of underpowered phones that are running Android version 1.5 to extremely high-end powerful phones with the latest version of 2.0 available. The inability of versions to run compatibility backwards or forwards mean that apps available on either version will only run on versions that are exactly the same as theirs.
The iPhone countered this via the launch of new phones along with the compulsion to use the iTunes interface to ensure that the phone software was up-to-date. Draconian and controlling as it may seem, Apple has hit a massive homerun with the iPhone because they have managed to control the entire experience of using the iPhone. Since customers only know one experience, Apple can easily run damage control when software or malicious threats arise.
Emulators would be the next logical step to ensuring that apps run across all platforms and hardware, however, the very nature of an emulator is to provide something akin to the real experience. There is always a cost of using an emulator; it may never really reflect how apps interact with the phone’s hardware and software. Resultantly, the developers are still left in a lurch how to deal with the variations.
Google needs to provide some means of standardizing the software available on all hardware or provide some form of an interface that would at least help users and developers diagnose problems with their Android-compatible phones. The logical assumption would be a web-based interface that lets users download from a central location similar to iTunes. Android’s Marketplace has the potential to become this point, however, it would need to be flawlessly designed and integrated with all hardware. With the specialist technology that Google has recently acquired, it would make sense that the Marketplace may receive a revamp that may provide an interface for phones to remain updated via Google.