iPhone SDK 3.0: A New Beginning

Last year I blogged about the upcoming SDK 2.0 for the iPhone 3G, and boy did it change my life. For those who haven’t followed closely everything that happened in this blog lately, there’s been this (that’s me in the WWDC keynote main room at the Moscone center) and then that (yours truly talking at the first ever European iPhone conference). All of this has been the result of going to San Francisco last June. That particular trip changed everything; I never thought that a simple plane ticket could generate this much.

The iPhone has literally changed my professional life. But it was only the beginning. Last Tuesday, Apple announced the iPhone SDK 3.0, and I’ll expose here some thoughts about what’s coming next.

To put it bluntly, I think that the iPhone SDK 3.0 is a jump to the realm of the desktop software platform. By that I mean that the next generation of iPhone applications will look more like small versions of more complex desktop-like systems, rather than mobile applications. Pasteboard, local Bluetooth networking, Undo support and Core Data are just some of the elements that will take the iPhone platform to the level of a small desktop platform (and no, I’m not breaking any NDA here, I’m just enumerating some of the “1000 new APIs” announced by Apple last week).

Much has been written about the App Store review process, about the lack of X, Y or Z features on the SDK, about the various problems and limitations of the platform; however, constraints are liberating. All of the limitations of the iPhone SDK have allowed lots of developers to come up with creative ideas to overcome them, and to create applications with a seriously distinctive taste to them; we wouldn’t have had Ocarina or Shazam or the Facebook iPhone app otherwise.

Have there been a similar breakthrough in the Google Android platform? Let’s be very clear about this: the answer is no. I’ve personally seen the Android SDK in action, and even if the Android platform seems promising, Apple’s own SDK is years light ahead. As an advocate of open source solutions, I am sorry to say this, but Android is not a direct competitor of the iPhone SDK, at least not right now.

And not only that, but there’s one important factor that’s generally overseen: the strict approval factor for getting into the App Store has generated one of the most secure and stable software platforms ever delivered to the public. Have you heard about iPhone viruses? You haven’t, right? Well, I’ve heard about Windows Mobile ones, if you ask me. And you can buy antivirus software for Blackberry and Android, by the way.

Heck, the first iPhone “virus” was the 1.1.3 firmware, it was released by Apple… and it screwed jailbroken iPhones. Big deal.

The platform might not be perfect, but hey, I can’t think of working on any other right now.

And then, there’s the programming language choice; as a geek and developer I can’t think of a nicer choice than Objective-C’s dynamicity and speed to deliver great software. Java-based platforms are limited by, well, Java itself. Want speed? Use straight C. Want object-orientation? Use Objective-C. Want compatibility and reuse? Mix C++ with your Objective-C code. Let’s go back to the basics: the iPhone is delivering what no other mobile platform has dared doing before.

And, oh, by the way, don’t rant about not having background processes (or any other feature, for that matter); I really don’t think that the lack of support for them will hinder the development of this platform. Rather the opposite, we’ll see a new generation of applications popping up in June, when the OS 3.0 will be released to the public. I’m more confortable with a platform with defined boundaries, rather than with a behemoth of unknown and undefined behaviour. I’ll be glad to use the notification service.

The iPhone SDK might be limited, but it delivers what it promises. I have yet to see a platform from another vendor (or even from the open source realm) to be as coherent and as well defined from the very start.

The real power of the iPhone remains yet to be seen. This platform is beyond anything that we’ve seen so far, and all the elements for success are already present in the beta downloads.

To summarize: the iPhone is the next desktop platform.

But what about Google Android, Symbian or Blackberry? Of course, they are interesting alternatives. The iPhone is by no means the right answer for everyone, but there’s no doubt to me that Apple is setting the standard, here and now. Apple is leading the way, and iPhone shows what mobile smartphones should have been (and done) from the very beginning.

Please stay tuned for more goodies. You ain’t see nothin’ yet.