I’ve been fortunate to have developed apps in the last year for the iPhone, Android, and Palm Pre, and on a few occasions been asked to compare the platforms. So without further ado … comparing these platforms from a developers point of view.
Programming ease – B+
Although Java is one of my least experienced languages; it’s also one of the most intuitive for me. Not having to deal with garbage collection and nasty memory management bugs definitely gives Android a leg up in programming ease over iPhone. I find the application model (intents, and activities) about as natural as the iPhone, which is to say, fairly intuitive.
One big downside is supporting multiple devices and operating systems. I’ve spent countless hours trying to debug device or OS specific bugs.
Documentation – B+
A strong developer community provides some fairly solid support. Blogs, text books also exist for those looking for these resources. However, I don’t find the library documentation that Google provides or the developer site very rich. Not nearly as rich as the apple documentation.
Tools – C+
Development tools aren’t great; although I don’t think their “horrendous” as Joe Hewitt famously says. An eclipse plugin is fairly mature now, the debugger works well, the emulator works well.
Market – B+
There’s a hungry (and growing) market of Android users. One downside as admob has reported is that they seem less inclined to pay for apps compared to those on iPhone … due largely to the free precedent google has set.
Getting your app to market is much easier as well. Getting an app published is a matter of posting the app, as opposed to the hoops Apple has you jump through.
Programming ease – C+
I actually really love objective C. It’s a very elegant language. But compared to the other players, I think it requires much higher learning curve. This probably has a lot to do with it’s lack of memory management. I also find the separation of UI (Interface Builder) and application (XCode) particularly obtrusive.
Documentation – A
Apples reference guides, tutorials and texts are incredibly rich. Furthermore the hordes of iPhone developers have contributed a wealth of information available online.
Tools – A+
The iPhone SDK and XCode IDE is awesome! Great debugging tools, NSZombie, instruments, integration with source code, etc. are heads and tails above any other toolset.
Market – B
It goes without saying that *a few* people have heard of the app store. However, throwing the app into the store can sometimes be like a raindrop in the ocean. It’s tough to get exposure for your app.
Programming ease – A
Documentation – C
Documentation is pretty week for webOS. A lack of community resources, inferior reference material from Palm, can make things pretty hard to troubleshoot.
Tools – D +
If you think the android tools are bad … you’ll think the webOS tools are despicable. Maybe things have improved, but my last project required a gdb command debugger and hundreds of log statements to get any debugging done. The emulator lacks many of the on device libraries. A big fail here for developing with webOS.
Market – B
I could make an argument that if you’re a small shop looking to release an app, you should do so in the webOS catalog. No, if you’ve got a winning app, you’ll never get as many users as you would on the iPhone. But … webOS users are HUNGRY for apps and willing to try anything.
I can’t really say there’s any clear winner and think it’d obviously depend on what expectation you had for your app. But for the sake of the argument I’ll give ya 2 winners.
If I was releasing an app which I knew was able to get some exposure, I’d probably suck up the learning curve and release it on the iPhone. The iPhone truly is the leading device, it’s beautiful, it has the market share, and users are willing to download (and pay) for apps.
But if I was building an app that I felt was gonna have a hard time getting much exposure, I’d actually consider building it for webOS and hope HP revs up the community. It’d take half the time, and while there aren’t many of them, webOS users have proved to be hungry, willing and able to try out new apps, and pay for them.