iPhone Developers Aren’t Stupid, PPK

Today, PPK posted a rather ill-informed and childish rant titled Apple is not evil. IPhone developers are stupid. Across the bitterness-laden 1,519 words he argues that iPhone developers are stupid for choosing to stick with Apple’s AppStore review & approval process, when instead they should choose web technologies to write their apps with.

Along the way, PPK claims that web technologies today, certainly those supported by the iPhone’s Safari browser, are just as capable of being used as tools to make most of the apps on the AppStore as the native CocoaTouch framework is which the developers actually did use. The use of the native framework and the AppStore, unlike web technologies, forces any developer to go through Apple’s process and, as any technologist who keeps up to date will know, that process has created a lot of disgruntlement, leaving a lot of iPhone app developers to openly complain or talk about leaving the iPhone behind altogether.

One of PPKs arguments is that a lot of iPhone apps have mediocre quality anyway, and thus wouldn’t lose on much if done as a web app. Whilst surely not his point, he consequently implies that an application done as a web app will almost certainly be of lesser quality than an equivalent native app. This, however, is decidedly true, as we’ll see in a moment.

It’s All In The Framework

I mentioned the CocoaTouch framework before not just because that’s the name of the framework in the iPhone SDK—the one that developers use in some capacity to develop the applications that PPK claims can be done with web technologies—but also simply because PPK’s entire post does not even mention this framework. Why not? Because he arrogantly presumes that this framework is irrelevant.

Throughout his post, PPK makes claims left and right about iPhone developers being “too arrogant” or “too stupid” to look into web technologies, which would allow them to sidestep Apple’s review process, but he never acknowledges the real reason iPhone developers stick with the platform: the SDK.

Over the past couple of years I’ve become good friends with a lot of people in the Mac OS X and iPhone app development community, as well as becoming more familiar with a large variety of JavaScript frameworks out there. I can tell you quite simply: ask any iPhone app developer who has looked into web technologies why they stick to the native SDK, and the nearly-unanimous answer will be: the SDK is just that much better. Even long-time Mac OS X developers were thoroughly impressed by the quality of the iPhone SDK, and developers who work across platforms are often found complaining about other SDKs being (very) inferior.

When it comes to comparing the iPhone SDK to web technologies, there just is no comparison. You can’t properly compare the two without first explaining that the “web SDK”, if you will, was designed originally for an entirely different purpose. As a result, HTML is not that well-suited for applications—hence why the WhatWG is shoehorning a lot of application-oriented stuff into HTML5; CSS is just not that great for laying out interfaces, and JavaScript is just not that performant compared to native Objective-C code.

So purely from a development perspective, there is a reason that many developers stick to the iPhone SDK even despite Apple’s app review process making it a painful experience, and that reason is the superior SDK. The web technologies also cannot compete whatsoever with OpenGL for sophisticated audio/video pretty much required for every single game on the iPhone, and games are a Big Deal™ on the AppStore.

Additionally, there is the fact that an open web application is cloned a lot more easily than a compiled application binary found on the AppStore. One reason why a lot of developers—in general, not just iPhone ones—have been hesitant over the years about web apps is because they fear that someone will come in, clone their work and somehow make (more) money with it. The open-ness of web technologies is just too apparent compared to the perceived closeness of binary apps.

So iPhone developers aren’t arrogant?

Oh, for sure they are. Many of the Mac and iPhone developers I know are also some of the most arrogant people I know[1], but you know what else they are? Really, really picky about the tools they use. Far pickier than we web developers are, who whine about CSS being a lousy tool for doing layouts with until the moment someone else criticizes it.

But as arrogant as iPhone developers may be, they certainly aren’t stupid. There are, of course, multiple reasons that so many of them stick to the iPhone SDK despite the AppStore process. The superior tools is just one one; money is another.

When you develop an application for the iPhone and you get it on the AppStore, you get some incredible benefits:

  • Your app is immediately available to every iPhone and iPod Touch customer out there, for not a single marketing penny spent;
  • Your app is found where most users look for apps: in the AppStore;
  • You don’t have to set up a payment interface for customers of your app to pay you, Apple has taken care of that for you;
  • You get a free marketing boost by Apple whenever they run another ad promoting the apps available on the iPhone;
  • If your app is good enough, you might even get featured by Apple, in which case, you’ve really got it made.

The big difference between publishing an app on the AppStore and going the “indie route” of doing a web application and marketing it yourself is money. Money, money, money.

One of the greatest values of the AppStore is how Apple has made it so easy for a lot of apps to get noticed immediately by the people looking for a specific type of app. Not all apps, certainly, as the AppStore is grossly over-saturated in some ways, but nonetheless this is not to be discounted. Apple has made it possible, almost easy, for anyone with a bit of talent and a willingness to put in the work to make a lot of money. And most iPhone developers long to be the next one that gets featured in Wired for their amazing success story.

For developers, even those who get burned by Apple’s review process, it’s just good business to buck up and sit through it.

Good business… for now

I should point out that the above applies to the situation right now, but not necessarily to the situation in the future. As it stands, a lot of developers are disgruntled about the review process and they’re looking for alternatives. One thing that may happen is Apple allowing the submission of web apps to the AppStore, though this seems unlikely to me. Much more likely, I would say, is a group of individuals building a “WebAppStore” (full disclosure: I’ve been asked to participate) to live side-by-side by Apple’s official AppStore. The specifics of that would involve a lot of tricky stuff in making sure Apple doesn’t shut it down, but I think it’s very possible.

Until things change, though, here’s a tip for those thinking about alternatives to the standard-fare iPhone app process: make a native app that serves as an overlaying UI to a back-end that runs as a web app, leveraging the Offline Web Applications spec that’s implemented (partially) in mobileSafari. You get the benefit of the AppStore goldmine, are unlikely to suffer much from the review process, and you still have the benefits of the web app allowing you easy service updates.

It’s a thought, in any case.

Update: Dion Almaer also wrote a response to PPK’s post, and is worth a read.

Full Disclosure: yours truly is a Web Designer & Web App developer first and foremost.

  1. I say this lovingly as I’m plenty arrogant myself, and make no illusions about that.

If you liked this, you should follow me on Twitter!