InfoWorld has been all over this week's official launch of Android, the new smartphone platform from Google. With its slick interface and open application platform, Android shows every sign of giving Apple's iPhone a run for its money when the first phones begin shipping in late October.
As my colleague Tom Yager points out, however, "If you can't get coders on board, you're sunk." A smartphone that never expands beyond the capabilities that it shipped with is hardly worth the price. Smartphone vendors, like any OS vendor, must rely on healthy developer ecosystems to keep their platforms thriving and competitive. Apple has definitely succeeded in this area if the reports of big payoffs at the iPhone App Store are to be believed. Will Android be able to match that success?
Google released version 1.0 of the Android SDK to coincide with the product launch on Tuesday, while Apple has had an active developer program for the iPhone for some time. With real-world Android phones just a few weeks away, I decided now would be a good time to compare the development environments for these two platforms. Which is the smartest bet for developers?
Getting hold of the Android SDK was simple enough. It's available to anyone as a free download, provided they agree to a fairly straightforward license. Google offers prepackaged versions for Windows XP and Vista, Linux, and Mac OS X.
By comparison, developing apps for the iPhone requires a Mac -- and a recent Mac, to boot. The current version of the iPhone SDK only works on Intel-based machines running Mac OS X 10.5.4 or later. Even then, you can't download it unless you're an ADC (Apple Developer Connection) subscriber. The free membership level will do, but you'll still have to agree to a strict 10-page license before Apple will allow you to distribute any apps you create with the SDK.
For your trouble, you will get Xcode, Interface Builder, and Instruments, the same Apple proprietary developer tools that you'd use to write applications for Mac OS X. If you're accustomed to that environment already, this will come as welcome news. If you're not, there will be a learning curve.
The standard IDE for Android, on the other hand, is Eclipse, which has seemingly become the de facto development environment for just about every platform other than Mac OS X and Windows. Google provides a plug-in that does a good job of integrating the Android tools with Eclipse, including a software emulator to test builds of your apps.
If you'd prefer not to use Eclipse, however, you can actually perform most of the same tasks with command-line tools. This can be useful if you want to use automated build systems, such as ant. What's more, it leaves a path open for third parties to develop plug-ins for other IDEs; for example, Undroid is a beta plug-in that integrates the Android SDK with NetBeans.