|SDK Cost||$0||$99 (to allow distribution)|
|Distribution Cost||$0||30% of the list price|
|Distribution Channel||Open||iTunes exclusive|
|Location Services?||Per Hardware||GPS Pending|
|3D Graphics Support||Yes||Advanced|
|Native P2P Comms||GTalk||No|
|Actual Phones that Support the SDK||Q4 2008||4 million and counting|
Free versus Really Not Free
A 30% cut of the list price? Even my agent would blanch at demanding that sort of cut. The $100 fee is just baffling. Why charge? I’d love to have a play with the SDK but I’m not convinced it’s 10 books worth of entertaining. I’m not writing mobile apps for profit so where is the return on my investment? It’s a system designed to provide a smooth distribution channel for approved 3rd party providers but it’s going to discourage those who are simply ‘iPhone curious’.
Android’s approach charges nothing to experiment and there’s no distribution cost. If one of my experiments turns into something people will pay for I won’t have to hand back a third of the price to Mountain View or Cupertino.
Foreground versus Background
Techcruch pointed out this gem in the iPhone docs. Your iPhone applications can only run in the foreground. If you switch away for any reason it will close. In the process of creating examples for my book on Android development I found that background services are one of the most exciting features of Android, albeit not the flashiest, so it’s very disappointing to see this explicitly disallowed on the iPhone.
Foreground only apps are great if you’re writing games (clearly the big target for Apple) but 90% of the time my mobile lives on my desk or in my pocket until it rings, flashes, or vibrates.
Background services let you create applications that extend this event driven model. Maybe it’s an app that keeps track of the football and vibrates the phone when your team scores, or maybe it changes the LED color when your team's ahead or behind. Maybe you write a service that sends your location to your friends so they always know where you’re at. This is the sort of thing that’ll make my mobile more useful not just more entertaining.
The iPhone explicitly disallows communication between processes, to the extent that each application and all its data are completely sandboxed. There’re a lot of good security reasons to do this but Android manages to handle it without the sky falling. Then again, if your application is only allowed to operate in the foreground there’s not much point trying to communicate between two apps.
Native Map Support
Since the iPhone release Google Maps has been its most popular application. In Android I can write on-phone mashups, on the iPhone I can’t.
The iPhone SDK is a way for game and mobile developers to write the same sorts of programs as they always have but on the shiniest new device on the block. That’s great if you want a 3D, accelerometer controlled version of breakout, or to play Spore on your mobile, but it doesn’t bring anything new to the party. Well, apart from an extortionate 30% licensing fee.
Three of the four iPhone apps demoed at the release were games. The iPhone looks like a great platform for mobile gaming. It’s about the size of a PSP or DS and the interface has some great possibilities. While it’s an excellent portable platform for running software the SDK restrictions make sure that no one is ever going to download an iPhone application that fundamentally changes the way they use their phone. An iPhone will always look, feel, and work the way Apple designed it.
Android lets you write applications that do more than just run on a portable device. It has the potential to create software that extends the functionality of the phone itself, to change how and why you use your mobile phone completely. More on that later.