iPhone vs Android vs webOS from a developers point of view

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.

Android

Android

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.

iPhone

iPhone
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.

webOS

Palm Pre webOS
Programming ease – A
Anyone with a bit of web dev experience will LOVE webOS programming.  I had a bit of Rails experience and with this, programming for the Palm Pre was a breeze.  Familiar Model view controller paradigm using Javascript, HTML, and CSS, makes things natural and quick.
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.

The winner?

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.

Flurry keynote at iPaddevcamp

I had a chance to attend ipaddevcamp last weekend at the Paypal offices in San Jose.  Great event, some great keynotes, and some amazing people in attendance.ipaddevcamp

One of the speeches that really stood out for me was the one given by Flurry / Pinch media.  In short, Flurry (who merged with Pinch media this year) helps gather usage metrics for application developers.  As such, they’re swimming in data which shows how and what users are using their iPads and iPhones for.

Flury presented some pretty interesting usage metrics.  Most of it which aren’t that surprising.
– iPad sessions are on average 2~3X as long as those on the iPhone
– iPad game, video and book sessions are about 10X as long as those on the iPhone
– iPad book sessions average about an hour.  (I was a bit surprised it was that long)

One stat that was a bit of a surprise to me was that social app usage on the iPad was far less than on the iPhone.  They attributed this to the lack of social apps on the iPad.   But I have to disagree with this explanation.  I think social apps are all about quick interactions consuming or producing content. Quickly check twitter while you’re waiting in line.  Check into gowalla when you enter starbucks.  Look at your facebook stream while you’re waiting for the light to turn green, upload a photo to flickr that you just shot.  The iPhone is perfect for this type of quick consumption and generation of content.

So I think Steve Job’s was right that there’s a market for a device situated between the mobile device and your laptop.  It’s all about the hour you have to kill while sitting in the airport, sitting on the sofa as opposed to the 10 second interaction perfect for the iPhone and the 4 hours you have with you laptop.  The iPad has it’s flaws, but to me the tablet fills this hole perfectly … and Flurry’s analytics seem to reinforce this.

EAVB_GYIQHNMYSY

Why I love my iPad

Yes, I’m a bit of a tech gadget geek.  I own way too many toys for my own good, But  99% of the time I don’t think the hype lives up to my latest toy.

Despite it’s ridiculous and never ending hype, my iPad has exceeded my expectations.

It’s not the Version 1 of the iPad … but it’s the computing shift that it so obviously represents.  The iPad has it’s short comings – a keyboard that’s still only about 30% as effective as a real one … limited multi tasking … just to name a few.  But these are minor notes … and are gonna be washed away in future hardware and software updates.

What do I really like about it?

1.  Limited device, all your apps and data

It’s been several years since we’ve been talking about dumbed down devices that connect to your media and applications hosted in the cloud.  I was reminded today that we were looking at doing this 4 years ago at Saflink with the miValet project.  But the iPad is the first device that really nails this.  It’s a limited device (crummy CPU, memory and hard drive space), but it gives you access to apps and content hosted from the cloud.  The iPhone was a step in this direction too, but lacked the screen real estate to really allow you to consume your content.

2.  Usable multi touch

While multi touch has been around since the iPhone, it’s finally usable with the iPad.  The set of supported gestures is rich, given the extra space.  Not only can an individual manipulate the interface, but multiple people can interact on the device at the same time.
3.  Intuitive interaction using multi touch

To me this is the big one.  I often forget what a barrier the mouse is between a user and the computer.  We’re accustomed to it, but when you think about it, it’s a completely unnatural medium between you and the machine.  Try to teach someone who’s never seen a computer (good luck with that) how to use a mouse and you’ll see how bizarre the mouse is.  On the contrary, manipulating the user interface using touch and gesture is just so natural.  Treating objects in the UI as if they were real objects just makes sense.  Flip pages in books by … flipping pages in a book.  Steer the racing car by … steering the iPad …. sign your name on a document by … signing your name on the document with your finger.  The list goes on and on.  I was reminded of how natural the interface is when my friends 4 year old got a hold of my iPad.  Sure … kids these days … even 4 year olds are pretty good with a computer …. but I was amazed how quickly he picked up using the iPad.

OK … I’m done my apple fan-boy-ism …. I swear I’m not a fan-boy, but this device is awesome.

Popular iPhone apps deliver value in 10s or less

I recently made an observation when taking inventory of the iPhone apps I have installed.

I noted that any app I use with any regularity will provide me with value in 10 seconds or less.  If it takes longer, I’d just as soon crack open the laptop and use the web/desktop version … or be distracted by some other app on my iPhone.  While there’s plenty of apps installed (at least 4 pages full), the only ones I use are Shazam, Mail, Contacts, Google Maps, Tweetie, Facebook, Weather, Showtimes …. all apps that I can get data from within 10 seconds.

It seems that the iPhone has tapped into our North American attention deficit selves.  I find myself busting out my iPhone any time I’m without stimulation … even when waiting for the traffic light to turn green.  The iPhone and it’s apps owe a lot of their success to an ability to fill the gaps in our day to day lives – it’s candy to the attention deficit.  And to me, there’s nothing better than an app that can entertain me in as little as 10 seconds.