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.
[ Looking at mobile SDKs? Check out the InfoWorld Test Center's reviews: iPhone
SDK vs. Android SDK | Third-party iPhone app dev tools | Palm Pre's Mojo WebOS
SDK ]
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.