TiPb SMASH: the iPhone and Multitasking Misconceptions

There seems to be some confusion out there about the iPhone and multitasking, no doubt fueled by the way Apple handled -- and is still handling -- all things iPhone. Just to be clear, the iPhone multitasks quite well, thank you very much.

While listening to music, you can receive a phone call, take the call, jump into Safari, Google for an image, save the image to your camera roll, jump into Photos, choose the image, hit the "+" and choose to email the image, fill in and send the email, etc. and when the call is over, your music will fade seamlessly back in.

Steve Jobs showed a simpler version of that when he first introduced the iPhone back at Macworld 2007. Even today, you can begin a new iTunes 3G music download, jump into a Twitter app, tweet a response, and jump back to iTunes and see your download still progressing.

So from where does this confusion come?

Apple only allows their own built-in apps like Email, Phone, etc. to multitask (Daring Fireball posted a nice list on which ones a while back). In the current SDK (Software Development Kit -- what people use to write iPhone App Store programs), the licensing prohibits everyone else from multi-tasking. So, no 3rd party IM, Twitter, internet radio, etc. applications can stay on once the user hits the home button.

Apple's Push Notification Service was supposed to work around this by sending status alerts (badges like unread message counter on Email, pop-ups, or alarms like Calendar events) from Apple's servers, but while this was promised for September '08, it was yanked from iPhone OS 2.1 Beta 4 and hasn't been heard from since. Rumor has it Apple is afraid -- for good reason -- of repeating it's near-disastrous MobileMe launch, and would rather delay it than get it wrong. Developers we've spoken to agree - no one wants to handle customer support calls based on a buggy PNS implementation.

Selfishly, we kind of hope Apple doesn't manage to nail PNS in a timely fashion and is instead forced to open up real multitasking, even if only on a limited basis (i.e. more rigorous approval process). (We'd even like to see a CoverFlow task-switcher while they're at it.)

Have something to say about this story? Leave a comment! Need help with something else? Ask in our forums!

Rene Ritchie

EiC of iMore, EP of Mobile Nations, Apple analyst, co-host of Debug, Iterate, Vector, Review, and MacBreak Weekly podcasts. Cook, grappler, photon wrangler. Follow him on Twitter and Google+.

More Posts



← Previously

Review: Tweetie Twitter Client for the iPhone

Next up →

Joz on Gaming: Head of iPhone Marketing on the App Store, SDK, and More

Reader comments

TiPb SMASH: the iPhone and Multitasking Misconceptions


Anyone who actually believed that the iPhone is physically incapable of multitasking is an idiot.

I can listen to music and do apps at the same time isn't that considered multitasking? And I can play games while on a call also

I think people want the mutitasking of the pre. I hope it works better that windows mobile phones at multitasking. We are still on the first gen of the iPhone (the 3g is just a facelift) only time will tell what steve and the boys are working on for June.

I actually never noticed because I can't do more than one thing at once. Other than the slight extra time it takes to relaunch a program multitasking is overrated.

Yes those are the apps it can primarily mmulti-task at, Safari, Mail, iTunes, and the beat multi-tasker is the iPod. I'm fine with how my iPhone mt's.

It's interesting how Apple emulated PalmOS's multitasking model, i.e "only system-provided apps can do it". PalmOS certainly could do it; you could play an MP3 and do whatever else on your device, and you can talk on the phone and do whatever else as well.
As a former owner of a WM phone, I have to say that while multitasking was useful in some cases, it probably contributed to the phone feeling dog slow sometimes. (AT&T 8525). That and WM isn't really 'fast' in terms of UI performance.

I'd like to be able to see my recent call list while I have someone on hold, but I can't do this now... and it doesn't even involve switching to another app. :shock:

You brought up a very good point. I still think that Apple is working on a very efficient way of allowing third party multitasking on the iPhone. Maybe pressing the home button two times will do the coverflow app view of current applications. I agree that Apple should have released iChat for the iPhone with bacground notifications. Now they are scrambling trying to allow a third party chat app to run in the background. Cause really, that is the primary reason of needing bacground notifications.

The problem I have is safari needs a lot of ram to run having it and other apps running makes the iPhone run slower I don't see any big time multitasking untill we get a more powerful iPhone

Jeffdc5 nailed it. While multi-tasking is possible today via Backgrounder, the reality is that the iPhone is so RAM-constrained that it's rather pointless. A minor bump up to 256mb along with external notifications (e.g. their patent apps, or even a flashing LED) would get me to buy into a new hardware platform - even without Rene's coveted iPhone HD capabilities.

You both have a very limited vision of what multitasking enables. There is an entire class of applications that could benefit from background processes without slowing down the rest of the phone, given an aggressive process scheduler. To take one example, RSS feed readers. Currently, when a user starts up Byline or NetNewsWire, he/she has to refresh the feed list before doing anything. When a phone is idle 85% of the time, there is simply no good reason why a a user should have to perform that task himself/herself. The iPhone should be able to fetch that content at preset intervals, like every other phone/rss reader can. Apple could institute this with as an aggressive a process scheduler as their current foreground program manager -- if any other application is running in the foreground (or a "big 4" app, e.g. ipod, in the background), deny a background processes any resources, or, do not allow it in the first place. If anything was running, the only extra process running would be Apple's scheduler, determining what resources should be doled out -- and that scheduler is already running. These sort of wake-and-sleep proceses would be useful for a wide range of applications, and would not impact user experience, unless the task scheduler was asleep at its own wheel. Since OSX (and Mach) already has a solid task scheduler, hopefully Apple will open it up at least this much, seeing as PNS seems at best indefinitely delayed.

The iPhone's OS currently does not support virtual memory which is essential for multitasking. As such, all multitasked apps have to fit into the 128 MB RAM space, which really isn't sufficient to support many apps running simultaneously. Apple can design some of its internal apps to run with very small memory footprints when running in background mode. But without virtual memory, there is no way you're going to be able to run any arbitrary 3rd party app in the background.
Apple could (should) have provided an API so that apps could enter a background mode where their memory allowance is greatly decreased (say, 5 MB tops) and where all of their UI views and such are destroyed. But I'm sure schedule pressure to get the iPhone out prevented them from doing this. Instead, they suggest that all apps provide the illusion of multitasking so that when the user switches away (closes) from the app, the app should save state, so that when the user comes back into the app, they pick up from the same screen they left off at. This works for many scenarios, but obviously not for the ones that require real multitasking (like audio apps or IM, auction, and weather apps that need to provide real-time notification of events).

iChat running in the background would solve the majority of issues users have with multi-tasking. Maybe Apple can just go down that road. I don't want to have to wonder about background apps for the most part, IM is the only issue I have.

I hope they change the OS to alow it. What frustrates me more on the iphone, after havinga Sony Ericsson P1i (running Symbian UIQ3) is precisely this. On the P1, with the same 128mb of ram, i could easily run 10,20 apps at the same time if i wanted. I had podcasts being pushed, two browsers, fring and other IM client, email client, running at the same time, plus the music player, lots of times. And no, the battery life did not suffer much. And no, the phone was still stable. So, apple has lot to do in this area...even with 128mb of RAM they should do better. Right now is difficult...i´m using backgrounder (jailbreak), and i can run Beejive on background...however, if i try to load anything else, beejieve is normally terminated

And btw, the kind of "multitasking" mentioned in this article (having music, browser running in background), is done on my 3 year old sony ericsson k750 feature phone...nothing special there. Almost all features phones do it now.

Apple doesnt want people messing with its OS. Other phones have issues such as memory leak due to poorly written apps but that is the price you pay for having apps run in the background. You will likely end up having to reboot your phone or have 3rd party apps crash with a lot more frequency.

@Jeffdc5, @Bob, @George
You guys hit it on the nose. The hardware, and the way the OS is implemented, hinders true multitasking on the iPhone.
I don't like the fact that 75% of iPhone's RAM goes only to the OS and it's processes. That's heavily bloated for an OS, Apple should have looked into offering 256MBs of RAM on the first gen, or at least the second gen iPhone.
Although I disagree on one part George: allowing for virtual memory isn't essential for multitasking. Symbian and WM do multitasking without virtual memory. Also, with tthe limited write cycles of flash/SSD memory, it kinda forces mobile OS makers to refrain from using virtual memory (shouldn't ruin someone's phone by using a constantly rewritten-to-flash swap file on the phone).
There are a ton of good 'backgroundable apps' that I'm sure are well written. AIM, Yahoo, BeeJive, Weatherbug, for examples, had good experience writing programs and I doubt their apps would be an issue. Although it's possible some apps are badly coded and may be memory hogs, it's fairly easy to tell how badly they are, even in iPhone's sandbox environment.

Say, and what's the real reason we're still MMS deprived? Can't they just limit the size of the message, if they're afraid people might exchange songs?

When I originally commented I clicked the -Notify us when new comments are generally added- checkbox and now each time a comment is added My spouse and i get four emails while using same comment. Is there any way you’ll be able to remove me from that will service? Thanks!