By John Gruber
Put an audio mixer inside your Mac. Save 20% on Loopback, with coupon code FIREBALL20.
There’s some speculation that Apple’s plan to release a native iPhone SDK is bad news, in some way, for the iPhone as a platform for web apps. I disagree. I see it as no more bad news for iPhone web app development than Cocoa is bad news for regular web app development.
The weird thing about web apps vs. desktop apps is that they don’t really compete head-to-head. Most good ideas for apps only make sense one way or the other. It doesn’t make sense to think of, say, Basecamp as a desktop app. Because web apps are currently the only sanctioned way to develop for the iPhone, yes, there are some iPhone web apps that will be obviated by native apps eventually. (Games and IM clients, for example.)
But even after the iPhone SDK ships, there will be far more iPhone web app developers than native UIKit developers. I see MobileSafari-optimized web development as the Visual Basic for the iPhone as a platform. Easier, more approachable, and wide open to everyone. An existing web application written using best practices — standards-based markup, separation of style from content — can be optimized for display on MobileSafari in relatively short order by any competent web developer. Not so with native iPhone app development.
Net-based apps — in concept — suit Apple perfectly: they’re more convenient for users and afford tremendous control to the developer. (Adobe CEO Bruce Chizen is thinking along similar lines.) So, someday, yes. But that day isn’t today. It was never Apple’s intention for MobileSafari web apps, here and now, to be as good as native iPhone UIKit apps. If it were, instead of basing the iPhone environment around a mobile port of Cocoa, they could have simply based the UI environment around only the mobile port of WebKit. It just isn’t possible, today, to provide what we now know as the iPhone experience using WebKit alone.
That’s why Mac developers were so irritated by Jobs’s description of MobileSafari web app development back at WWDC as a “sweet” iPhone SDK — if it were so sweet, then why wasn’t Apple using it for the iPhone’s built-in apps?
But it really is sweet, in its own way, in that the iPhone is clearly the best handheld web client in the world. Let the web be the web and let native apps do what native apps do best — the iPhone does both better than any competing platform.
Finally, a nomenclatural note: When writing about the native iPhone SDK and web apps written for MobileSafari, it’s both easier to write and read to just say “iPhone” where I really mean “iPhone and iPod Touch”. Apple does the same thing.
Long-term, I think the “iPod” brand has a stronger future than the “iPhone” brand. “iPhone”, to me, means mobile OS X on a device tied to a mobile phone carrier network. At some point in the future when ubiquitous long-range wireless IP networking is available, OS X-based iPods will be able to do everything iPhones can, with the same (or close enough) mobility and range. At that point the iPhone will just fade away — or at least slip beneath the iPod as the top-of-the-line Apple handheld.