Apple took quite a beating when they released the iPhone without an SDK back in June 2007. What were they thinking? Back then, they released a set of guidelines for building web-based applications that, when run through Mobile Safari, would sorta, kinda look like an iPhone application. That's not gonna fly...
Then, they released the iPhone SDK (Beta). I downloaded it immediately and built my first test application.
The wait was definitely worth it.
They knocked the ball out of the park!
They exceeded my expectations in almost every dimension.
Yeah, sure. There are plenty of things not to like about this first version of the iPhone SDK, and many have already ripped the failings to shred:
- Third-party applications must be distributed through the Apple iPhone Store. You cannot just build an application and run it on the iPhone. It has to be signed by Apple. Some see this as too restrictive.
- iPhone applications cannot run in the background. This rules out a whole host of interesting applications and certainly does make the iPhone less attractive as a truly useful mobile platform. Some say this makes the platform a non-starter for them.
- Apple takes 30% of all software sales for handling the distribution and update of approved iPhone applications. Some think that's a bit much, and would rather keep that 30% for themselves, handling the marketing, installation and upgrade of their applications directly.
- Apple gets to say "yes" or "no" on whether your particular application gets to run (is signed by them). Some think that Apple will deny competitive applications or applications that may encourage illegal downloading, say. Some say Apple has too much power as application gatekeeper.
- Apple will not allow a VoIP application to be built that operates over the GPRS/EDGE (soon to be 3G/HSDPA) data network. They will allow VoIP applications to run over WiFi, however. Given the hassle of finding a WiFi hotspot, some feel that this is an unfair restriction.
- You can't build applications with Interface Builder yet. Some think that makes iPhone app development a complete non-starter, at least until IB is made available.
- Apple claims that the third-party developers get to use "the same API calls used by the Apple developers to build their own iPhone applications" (like Mobile Mail and Mobile Safari). However, given all the restrictions, this is clearly not true.
- Apple does not allow you to build an application that executes other applications, either using plug-ins, or interpreted code. Which means that you cannot have a Java Virtual Machine on the iPhone. Hey, wait a minute. That sounds like a good restriction after all, given all the junk J2ME applications out there...
But, they're missing the bigger picture. They are lost in the details.
Here's some of what is absolutely great about the Apple Mobile Platform:
- It's a controlled environment for developers. The development tools (Xcode, Interface Builder, debugger, performance monitors) are exceptionally good. Anyone that knows Objective-C and Cocoa certainly have a head start, but this is a great toolchain. No other mobile platform has such a great and robust development environment.
- Running only Apple-signed applications means that it will be very hard to get ill-behaved malware on the device. And, if you do, it will be very easy to identify it and remove it. Apple has done a great job on the security aspects of the mobile platform.
- Apple nailed the Enterprise requirements for the iPhone. Nailed them. They are listening. And responding. Very refreshing to see a big company get it right. So often.
- I love the 70%/30% split between developers and Apple. I think it is more than fair to the developers. Apple has taken a game-console style revenue sharing model here. Apple defines, markets, and distributes a great hardware console (the iPhone) and publishes the API for creating structured (and signed) applications. For that, they take 30%. Extremely fair. I think it's great that product updates will be easily delivered to customers. Much better than forcing every application to have a slightly different way of updating itself. Very nice for the end-user experience.
- I'm OK with the other restrictions. Yes, the platform will be less extensible, but it will surely be beautiful, consistent, and solid. Disallowing background applications will not be as bad as people think - I'm with John Gruber on this point. Remember: Apple is developing this "for the rest of us". I.e., it is not a phone that only geeks will own. It's a phone that my Mom would own. And, she just wants it to work.
I own a Nokia E61. It runs Symbian. Until last week, Symbian was the best thing going for Mobile OS development. Not anymore. And don't even get me started about Windows Mobile... Ugh.
The iPhone, and this oh so restrictive SDK, will be THE mobile platform for the mass market (and the enterprise).
Jason Fried said it best:
What we saw today was the beginning of two-decades of mobile domination by Apple. What Microsoft and Windows was to the desktop, Apple and Touch will be to mobile.
I completely agree.
And have doubled-down on my AAPL stock.
Stay tuned for more. We'll get to Android later.