Skip to Content

Multitasking in iOS 4 is not a magical sparkle pony

As we wait for iOS4 to be released, I think it's important to try to help folks keep reasonable expectations for what iOS 4 will and won't do, especially as it relates to "multitasking." Apple has to take some of the blame for this hype, especially when it's listed as the #1 feature of iOS 4, saying "Now you can run your favorite third-party apps - and switch between them instantly - without slowing down the performance of the foreground app or draining the battery unnecessarily."1

Did you notice that 1? The big print giveth and the little print taketh away. Down at the bottom of the page, Apple tells you that multitasking is "available with apps that have been developed to work with iOS 4." That means that any app that isn't tweaked to be multitasking-aware simply won't play nice with the feature.

And even that isn't the whole truth.

Read on for more...


Let's take a quick look back before we look forward. The iPhone has always been able to do multitasking: email is checked, the iPod app continues to play even when not active, calendar and clock alarms go off, SMS/MMS and push notifications come in, and so on. Most of those have been available as long as the iPhone has been around (push notifications are the latecomers, arriving in OS 3.0). You can sync contacts and calendars via MobileMe (and more recently, ActiveSync) over the air and in the background.

What has not been possible is for "third party" applications (those apps not made by Apple) to keep running in the background. That means that if you were using a GPS app, listening to music in Pandora, fetching RSS feeds, connected via SSH to another computer, or any number of other applications, you were stymied for background use. As soon as you exited those apps, whatever they were doing stopped.

With the upcoming iOS 4, Apple has announced a solution for some of those applications, but only a handful of specific kinds of applications: location data, voice over IP (VoIP), and audio. You will be able to stay on a Skype call even if Skype is in the background, once Skype adds support for it. You will be able to listen to Pandora Radio in the background once Pandora adds support for it. Your GPS app or other location-aware app will be able to keep tabs on your location in the background, once it is updated. In fact, Tom Tom has already announced that its navigation app will be background-ready, so your "At the end of the road, turn left" announcements will come through even if you're doing something else.

That's it, though. Background processing is extremely constrained to three specific areas, which Apple believes will cover most of the things that most people want to do most of the time.

Since what iOS 4 is offering is not really unfettered multitasking, Instapaper can't program itself to automatically update itself every X hours or minutes. Neither can your RSS reader. Neither can Simplenote. Neither can 1Password. Neither can TextExpander. Neither can any other application.

One of the other features that won't be delivered in iOS 4 will be the ability of macro/text replacement apps like TextExpander to work across the entire operating system. On the Mac, TextExpander automatically works in any app. On the iPhone, it only works in apps which have specifically added support for it, which means that you will probably never be able to use TextExpander in Mail, for example.

There is some good news and some bad news. Apple says "apps can remember where you left off," giving you much more fluid switching between apps as they resume where you were when you left. The bad news is that this will not happen automatically; just like the three background cases above, developers will have to add support for it.

According to a few developers who talked to pocket-lint.com, don't hold your breath for multitasking support in all your apps. One developer said "Why would you want to multitask during a game?" I don't know who this developer was, but I would like to remind him/her: the iPhone is innately a multitasking device. All applications should be ready at all times to exit at the user's command.

Why? Because the phone might ring.

If the phone rings and I answer it, will your application bring me back to exactly where I was when I left off? It should, but very few applications get this right. With iOS 4, that oversight is going to be much more glaring especially since Apple is promising people that apps can remember where they left off. Starting with iOS 4, if your app doesn't do that, your customers are going to expect that you are working on a new version that will. Yes, even the gamers. Save your state and bring us back where we left off when we exited your application and you'll be ahead of most applications.

I'm thrilled that Apple is taking this incremental step with multitasking in iOS 4. I'm willing to accept that they have managed to successfully balance battery life with increased flexibility. It will be enough that most people will probably stop saying that "the iPhone doesn't multitask" even though that's only partially true. As battery life continues to improve, who knows, maybe in another year or two we'll see "background updating" for applications such as RSS readers and Instapaper. Until then, this is a trade-off; not necessarily a bad one, but one that you need to understand. You will probably have to wait for some apps to support it, and for some apps iOS4 won't change anything.

For more reading on this I suggest checking out Marco Arment's blog; he's the lead developer of Tumblr and Instapaper, and he also wrote about iPhone multitasking and background updating.



Categories

iPhone

As we wait for iOS4 to be released, I think it's important to try to help folks keep reasonable expectations for what iOS 4 will and won't...
 

Add a Comment

*0 / 3000 Character Maximum

128 Comments

Filter by:
Dave

Thank you for this article- I was looking for an RSS reader that would update just as you'd mentioned. Now I can stop looking since there won't be one.

I don't understand the comments about draining battery life- If you don't want the operations running don't turn them on. It would be nice to have the option, I would like to be able to check my RSS feeds without waiting for it to fetch the data.

I think actually a best plan would be to have the background 'info grabbing' work only when the phone is locked, or an option to have it do so.

June 22 2010 at 8:50 PM Report abuse rate up rate down Reply
richardw66

What do you mean that only certain apps can multitask?

The OS is designed with a very complete background update mechanism. Notifications mechanisms have been expanded since V3.

There is nothing in the Multitasking that says that only certain apps or types of Apps can multitask.

I agree with your point though, The iPhone has always multi-tasked, it's just that most people who whinge about iPhone's lack of multi-tasking just do not know multi-tasking is. But then most of the comments about the supposed advantages of Android are FUD.

I am building an App and as soon as I compiled it for iOS4 and tested it under iOS 4 it kept state when exited and re-launched. Until the OS needs the resources the Apps will by default stay running if compiled for iOS 4, no new coding required. If the OS needs the resources or the App is hogging resources badly then the OS will kill the execution, which saves the user from having to do this.

@Beenyweenies

I have been made aware of exactly why this kind of mothering is needed by a PC using freind of mine, who has a Nokia N97. When he starts getting errors if he tries to open the SMS app because there is no memory, and he doesn't have a clue as to why, or from the wording of the message know what is actually happening, then PC/Nokia users need mothering to cope with the stupid phone OS. I am the one who ends up doing the mothering.

Needless to say he won't be using his Nokia again, he didn't know he had multi-tasking, he didn't want multi-tasking, he didn't ask anything to multi-task, why should he have to do memory management for an OS that arbitrarily decided not to kill apps when he exited them!!!

iOS 4 arbitrarily decides to keep apps open, but it looks after the resources it has used in the process.

Why would anyone want to do the work of managing memory and processor resources if they don't need to? Why would your average phone user wish to spend their time managing their phone? it is a tool for them, they are not a tool for it!!!

To avoid being called anti-apple, let me say that i own several mac pros, macbook, typing this on my iPad and until recently had a 3Gs.

Ok but you are anti-Apple, you at least just do not understand what a computer is for, or what a phone is for!!!

So you didn't avoid being called anti-Apple after all.

I am sitting right near a PC, I own several of them, I am running Windows using parallels, and I am very much anti-Windows, but am extremely knowledgeable as to why as I support PC users and have years of PC coding experience as well.

I also am very familiar with the Mac design guidelines from way back, and watched the Lisa and the Mac projects from a far, and got the point of the 1984 ad. You clearly didn't!!!

June 22 2010 at 4:33 AM Report abuse rate up rate down Reply
sgreen4

I just want to be able to use dragon dictate on my iPad/iPhone so that I don't have to always use the keyboard to type everything. If that works , then I will buy an iPhone. I am using my iPad to type this now and it's not as fast as traditional typing. If I could just talk and make the words appear, it would be so cool!

June 21 2010 at 1:25 AM Report abuse rate up rate down Reply
Lookatmyjewnose... LOOK AT IT!


@Mystick: "You're an Apple blog for christs sake. You of all people should know why Apple is doing this they way they are and that it will satisfy most users. "

Your issue isn't a lack of understanding as to why it's being done, you just don't like that an Apple blog has just SOMEWHAT disagreed with a choice Apple has made.

Enjoy your Apple t-shirt, belt bluckle, pants, shoes, ipad, imac, iphone, apple bumper stickers, and having sex with ur steve jobs blowup doll. Faggot fanboy. lol.


@Author
This is a well written article that really clarified for me exactly what this whole multitasking business meant. I knew it was based off of APIs but assumed at the very least that freezing states of applications for a quick resume was standard... not something you needed to implement as a developer. But alas, information on it is sketchy to find because it's not REALLy multitasking, just as the little print says.

Thank You for the article, keep 'em coming. Just 'cause this is an apple blog (albeit my first time visiting the site) doesn't mean it's a place where they have to praise every decision made by the almighty Steve. I'm glad SOMEONE understands that, Luoma.

June 18 2010 at 1:12 PM Report abuse rate up rate down Reply
vara411

Snide jokes aside, it's a shame the current hardware for webOS is so lousy. I really wish webOS was on iPhone hardware. Seriously... you don't know what you're missing until you get used to that level of multitasking.

June 15 2010 at 9:56 PM Report abuse rate up rate down Reply
vara411

Respectfully, multitasking on webOS spanks iPhone multitasking and sends it crying home to mama. ... Respectfully.

June 15 2010 at 4:32 PM Report abuse rate up rate down Reply
t

This has a very interesting take on this article. http://benjaminmayo.posterous.com/reactions-to-multitasking-in-ios-4-is-not-a-m

June 15 2010 at 2:12 PM Report abuse rate up rate down Reply
Ryan

This article leaves out 2 critical pieces. In addition to audio, location, and VOIP the application can:

1. ask the system for extra time to complete a given task.
2. schedule local notifications to be delivered at a predetermined time.

So, (concerning #2) the application can wake up at an time and do essentially anything in the background and (concerning #1) can, in most cases, continue running whatever is needed after switching tasks or even application shutdown.

Sure the application needs to be aware of it, but that's a good thing. It means application developers will be aware that the code their writing will be in the background and should be thinking in terms of only doing what is REALLY necessary.

June 15 2010 at 12:42 PM Report abuse rate up rate down Reply
1 reply to Ryan's comment
Jesse David Hollington

With regards to #1 you're definitely correct, and that's a nice solution for as far as it goes. It will be great for things like photo and video uploads and even letting RSS reader apps sync up changes after you exit them.

Local Notifications, on the other hand, have nothing to do with launching an app any more than the current Push Notifications do. Really, they're just Push Notifications that don't have to be delivered from a server. Apps can use Local Notifications to update the badge count, play a sound or display a pop-up dialog box, but they can't actually launch any background tasks as part of that process. The most you could get is a dialog box prompting you to actually launch the app, after which of course it would sync up once you're actually running it.

June 15 2010 at 3:54 PM Report abuse rate up rate down Reply
PSM

Jesus Christ. ALL I want multitasking for is Twitter, RSS and syncing OmniFocus. At least apps will be able to set persistent alarms, right?

June 15 2010 at 11:17 AM Report abuse rate up rate down Reply
1 reply to PSM's comment
Dan Pritchard

I'm not trying to be obtuse, but I'm curious:
> ALL I want multitasking for is Twitter, RSS and syncing OmniFocus.

What exactly do you plan on doing with Twitter, RSS, and OmniFocus while those things aren't on your screen? I would guess that the first two, you want to be notified when certain people/blogs have new posts. How is that not already accomplished on OS3 with push notifications?? You can't READ the new posts until you open the Twitter or RSS app, so why does it have to be running all the time??

> At least apps will be able to set persistent alarms, right?
That sounds like it would be cool. Hope so.

June 15 2010 at 1:03 PM Report abuse rate up rate down Reply
simonjs

...but iOS4 can complete tasks in the background can't it? Maybe this could be used to periodically update:

http://www.apple.com/iphone/features/multitasking.html#notifications

June 15 2010 at 8:27 AM Report abuse rate up rate down Reply
1 reply to simonjs's comment
Jesse David Hollington

Only once you've launched the app and closed it. Apps only have 10 minutes to "finish up" before the OS terminates them.

So it will solve the problem of having to leave an app open to finish syncing, but it won't avoid the issue of having to wait for an app to "sync up" when you first open it.

June 15 2010 at 3:51 PM Report abuse rate up rate down Reply
Buy an ad here

Hot Apps on TUAW

Tweets

© 2012 AOL Inc. All Rights Reserved.