Now that Apple has finally announced details of the launch and implementation of the iPhone SDK, the internet is buzzing with debate regarding its apparent lack of support for background applications, and some developers are not happy. Their qualms are certainly understandable, but I think the proverbial big picture is what’s important here - especially at square one of native application development.
The bottom line is that Apple is between a rock and hard place (and $18 billion). Apple must balance the need to maintain the flawless user experience (read: speed and battery life) that’s inherent in the design of its products and applications with the effectiveness and features of forthcoming applications on a brand new platform. There’s an excited community of developers out there with some brilliant ideas, but I think that we all need to keep the average user in mind, and pace ourselves.
John Gruber over at Daring Fireball provides consistent coverage and excellent analysis. I think he and I agree about Apple’s current position on the issue:
Imagine a scenario where background apps are allowed on the iPhone this summer. Some typical user buys and installs 10 apps from the App Store. Three of them are background-capable apps, and two of those three are so resource hungry that they have a noticeable drag on battery life. How are typical users — not Ian Betteridge, not me, and probably not you, but typical users — supposed to know which apps are causing the problem? How are they even going to know which apps do continue to run in the background? They won’t. A likely reaction would simply be to regret ever having junked up their iPhone with any third-party apps at all.
Not every iPhone owner is a power user. One of the benefits of using Apple hardware and software is that it comes from a single, certified, bona fide source. When something goes wrong, you know exactly where to go to get it fixed or to rip someone a new one. Apple has a responsibility to maintain the quality of the user experience by keeping their devices as accessible and as easy to maintain as possible. It’s part of what sets Apple apart.
As John Gruber put it:
If you truly demand the right to be able to shoot yourself in the foot with the software you install on your phone — which is a perfectly reasonable desire, and is how things work on the Mac — then the non-jailbroken iPhone isn’t for you.
I couldn’t have said it better myself.



















One of the things that I find hilarious is that I’ve seen many of these kinds of argument before in the history of the Mac. For example, for years I heard people saying that multitasking wasn’t required for the Mac, as it was too much of a hardware drain. The fact that people other than Apple were making effective multitasking systems which worked on less powerful hardware didn’t even register, largely because they were willing to swallow whatever Apple said and had no real knowledge of the rest of the computer world.
The same is true here. EVERY other phone OS maker allows background processes without it becoming a battery issue (some of them even have the 3G radios which Jobs claims are too power hungry to feature in the iPhone at all). There are a couple of applications out there which will drain your battery. But you know what? Everyone other than iPhone users are trusted to just uninstall them if it proves to be a problem.
The iPhone should be easy for anyone to use and maintain, and it’s Apple’s responsibility to make that a reality. If that means that the initial iPhone SDK will not support background processes, so be it. This is only the very beginning. We never know what may happen in the future.
The problem remains that people like you and me are power users, advanced users - whatever you want to call it. Apple has a longstanding history of providing a user experience that far exceeds its competition. So while the iPhone may certainly be capable of using 3G or running more processes in the background, Apple has - for now at least - made user experience their number one priority above all else because they believe that those two technologies currently pose too great a risk for the end user experience. I agree with them.
There’s a couple of things that I’d like to pick on here. First of all, there is no contradiction between creating something with is suitable for power users and creating a great user experience. It’s not an either/or situation, as Apple itself has proved with the Mac. The existence of Terminal doesn’t mean you have lots of Mac users stumbling around erasing their hard drives.
Second, there are other, more simple ways of preventing background applications having a significant effect on battery life. For example, it would be trivial to allow background processes to run - but prevent them from accessing the network while doing so. Or allow them access the network only through WiFi, if available.
Finally, the supposition that Apple has made user experience its priority doesn’t really hold water. There are many areas at present where it could improve the user experience by changing defaults. For example, why does it default to having WiFi on, when the constant polling of looking for new hotspots is probably the biggest single battery drain on the phone? After talking to some phone engineers, I’d guess that if you took WiFi out of the iPhone, you could easily have put IN high-speed 3G. Of course, that wouldn’t have been fast enough to support downloads from iTunes… which shows that Apple is prioritising its own interests over user experience.
Not that there’s anything wrong with that - but it does show that user experience is not the only factor in the equation.
To be honest, I can’t totally disagree with you. But it seems to me that Apple’s approach to the iPhone has been unique compared to its other products. When compared to the Macs or iPods (etc.), especially right after launch, Apple was and continues to be obsessed with making sure every iPhone user is happy. Despite the enormous growth the company has seen in the past few years (thanks to the iPhone’s predecessors and the Macs of course), I think we can all agree that Apple put its proverbial neck on the line last summer with the iPhone. It’s a great device. But that’s not enough - people must also continue to PERCEIVE that it’s such a great device. I’m sure we can at least agree that perception is (almost) everything in this business.
When it comes to open source development , net neutrality - all that good stuff - I’m your man, and I’ll happily stand by you. But I think it’s important to see what makes the iPhone different than other Apple products, and why Apple feels the need to do it just that way.
To address a few of your points specifically:
I don’t think Terminal on a Mac is a fair comparison to running apps in the iPhone. For one, and this is a bit trivial, but root is disabled. Although that doesn’t prevent every catastrophe, it makes a big difference. Secondly, Terminal isn’t something advertised on the box or in the pretty startup movie. A Mac is a lot more complicated than an iPhone, and I just don’t think it’s a valid comparison. Most basic users will never even find the Terminal. Apple (and everyone else) will soon be advertising to the masses about all the cool apps you can download to your iPhone, encouraging people to do so. They have a responsibility to make sure that it’s an easy process that doesn’t adversely affect iPhone performance.
As to your 2nd point, if Apple prevented background processes from accessing the network, I’d say that’d make some of the angry developers happy, which is a start. But many apps, for example AIM, will obviously want background access to the network, and there’s no way around that.
Finally, keeping wi-fi on in the background is not a drain on battery life in and of itself - unless an app is constantly querying about. Also, I know 3G is super neat, but it’s still not as fast as wi-fi, and it’s not nearly prevalent enough in the US to make it viable for the phone. Now, in Europe, for example, 3G does make more sense, and I’ll give you that. But we both know Apple couldn’t release 3G across the pond and not in the US. It sucks, but it’s true. Frankly, I don’t think 3G is that fast to begin with. It’s just not that amazing. I’ve found that I am rarely (read: never) frustrated with EDGE speed because when I’m not on wi-fi I can simply browse RSS feeds or mobile sites. I do not think Apple refused to include 3G because they wanted to encourage mobile iTunes sales. That’s ridiculous in my opinion. One has nothing to do with the other. If there were 3G, iPhone users would still switch over to wi-fi when possible, because wi-fi is still a lot faster than 3G. I think this is your weakest argument. EDGE on the iPhone in no way pushes people to download from the mobile iTunes store. Finally, 3G smartphones really don’t have great battery life today - that’s just a fact - and they’re not even supporting an iPod, which many users will access daily for audio and video. The iPhone possesses most function of the average smartphone, AND it must be a flawless iPod. Battery life really is a factor; this isn’t a conspiracy. And removing wi-fi isn’t an option. I think if the iPhone lacked wi-fi, but had 3G, we’d be having a discussion about how gimped this great Apple device is without a wi-fi antenna.
Ian, I think the bottom line is that it’s better to be safe than sorry, and it’s downright stupid to assume any level of sophistication on the part of your user base when doing so could adversely affect performance of the iPhone. I’ve worked for Apple in a retail store. Trust me - Apple could put big red stickers with disclaimers about applications and uninstall instructions on every iPhone box, and it wouldn’t matter. It’s Apple’s product. If an app makes it crap, it’s Apple’s crap. You’ve got to be realistic about this. I see you’ve got a good discussion about this going on over at your blog, and many readers are making similar points. The iPhone is a phone, an iPod, and an internet communicator (basically). It’s not a 3 year old iBook. Your arguments are very well thought out and cogent, but I have to disagree with most of your points. Installing applications and understanding how they work or how they might affect performance do not go hand in hand. My parents and millions of other baby boomers can buy music from the iTunes store or download email attachments - but they still get viruses when they download the wrong email attachment. The argument that any user that’s able to install an application will understand how it works and how it will affect performance is patently false. Apple’s understanding of this concept is a major reason for its success! Your argument, while not uncommon, is simply stubborn.
User experience can always be better, but I think your final points don’t hold much water either.
Although I consider myself knowledgeable enough to have this discussion, I’m no Apple engineer. So there’s my disclaimer in case I make myself look like more of an ass with each post. I do, however, really appreciate your comments and the discussion.