In the fast-moving world of smartphones, application developers must make choices: Develop native applications for Apple's iPhone or perhaps for the Palm Pre. Or maybe build for Symbian, the RIM BlackBerry, or Google's Android. If you have the time and skills, you can build your application again and again for different phones, using native development resources.
Or you can build applications using frameworks and Web technologies to work on multiple brands -- but any apps you build this way might not fully leverage some capabilities of specific phones.
The Tower of Babel of platform and SDK choices
Would-be mobile developers face a Tower of Babel environment, making it tough to figure out how -- indeed, whether -- to take the plunge into creating apps for the small but enticing mobile market. The pull is clear: With smartphones becoming more popular thanks to colorful, multimedia devices such as the iPhone, a whole new world of opportunity exists for developers -- along with the burden of learning new SDKs.
"The underlying problem is that OSes and the runtime platforms on a lot of those mobile devices are very different, historically," says Christian Kurzke, project lead for the Eclipse Mobile Tools for Java project and developer-tools architect at Motorola.
The result: "The different devices have very different development frameworks and application frameworks," notes independent analyst Bill Weinberg.
And even among phones running the same software platform, there may not be much unity in development. "I did some experimentation with Android, but I found that there were huge differences between each of the Android devices," says Christopher Allen, who has primarily developed for Apple's iPhone and is founder of the iPhoneWebDev online developer community.
Such disunity is also possible for more consistent platforms. For example, Verizon plans on releasing an SDK to develop Windows Mobile and BlackBerry apps tuned to its network, so developers might end up having different versions of the same app for different networks. Motorola also plans its own SDK for Android development with Motorola-specific libraries, though the company claims developers can use the tools to develop apps that run on non-Motorola devices as well.