Multitasking

Apple calls its form of multitasking the “right way” to do it. I’m not totally sold on that but let’s go a little further. To switch between apps on the iOS3 you hit the home button, which takes you home, and then select your next app. Your previous app, assuming it isn’t one of a very limited list of apps that have services that can run in the background (e.g. iPod, checking email), quits completely. Switching back to the previous app relaunches it.

In iOS 4 Apple promises app level multitasking without sacrificing performance or battery life. A single push of the home button still takes you home, but a double tap will bring up a list of recently used apps along the bottom of the screen. Scroll to find the one you want to switch to, select it and you’ve just “multitasked” in iOS 4.


The task switcher in iOS 4

It works not by keeping all apps actively running in memory, but rather allowing certain features to run in the background. Developers are given access to seven services:

- Background audio
- VoIP
- Background location
- Push notifications
- Local notifications
- Task finishing
- Fast app switching

The names are mostly self explanatory. Background audio let’s an app continue to play audio in the background, while the UI and the rest of the app itself remains suspended.

The VoIP services let you receive/conduct calls outside of the associated VoIP app (so your VoIP calls can now work like regular calls over AT&T’s network).

Background location gives apps that use it access to the iPhone’s built in GPS receiver. This would allow you to continue to hear turn by turn directions from your navigation app while you’re reading email for example.

Push notifications aren’t a new addition, they enabled push notifications to your phone from 3rd party apps (e.g. Facebook telling you someone has posted on your wall while you’re not in the FB app).

Local notifications are new. If an app needs to remind you to do something it now can without having to communicate with Apple’s push notification servers.

Task finishing is the most traditional multitasking service that iOS 4 offers. You can mark a process using task finishing and that task will continue to run even after you exit an app for a finite period of time. This would allow for a chat app to continue to receive, update and log messages even when you’re not looking at what’s being said.

The final service, fast app switching, allows an application to stop/resume exactly where it left off. This is actually bigger than it sounds. Apps written for iOS 4 no longer quit when they are switched away from. Their state is saved and the app remains in memory until it is either forced closed (press and hold on an icon in the task switcher then tap the - to close the app) or the OS runs out of memory (in which case it will force an app closed). A program that properly supports fast app switching must be prepared for either case so you don’t have to worry about data loss simply because your OS ran out of memory. This also helps explain why Apple seems to have given the iPhone 4 512MB of memory and not 256MB like the rest of the iPhone/iPad lineup.


Closing an app

Remember that DRAM must be constantly refreshed to keep data active in it. This means that multitasking will still reduce battery life, but Apple is hoping by limiting the additional power draw to memory and not unnecessary CPU cycles it will be a minimal impact.

I ran some tests to see how simply playing Pandora in the background while browsing the web impacted battery life. Granted this tests not only having an application resident in memory but also pulling more data over the 3G radio, but it does show you that multitasking can and will reduce battery life:

Multitasking Impact on Battery Life
  Web Browsing Web Browsing + Pandora
iPhone 3GS (3G) 4.82 hours 3.76 hours
iPhone 3GS (WiFi) 8.83 hours 6.68 hours

Simply running Pandora in the background, which doesn’t seem like much, will give you about 75% of the battery life you’re used to while you’re doing other things. Toss in another app or two that also does something in the background and you’re looking at even more tangible reductions in battery life.

We still need faster SoCs and more power efficient platforms to make multitasking work on smartphones. I say faster SoCs because one of the best ways to improve power efficiency is to complete tasks quicker so that the CPU can return to an idle state.

Because current smartphone SoCs don’t have the level of performance needed to quickly execute a ton of extra instructions and get back to sleep, smartphone OSes have to keep background tasks to a minimum. For the most part you don’t have to worry about what applications you have open on your notebook, your CPU is efficient enough and you have enough battery power to churn through any instructions idle apps may be throwing at it. We’re not quite there yet in smartphones.

Performance is an issue and Apple is doing the right thing by making the iPhone 3GS the minimum requirement for multitasking support. Earlier ARM11 based iPhones (2G and 3G) won’t let you switch between apps, they just don’t have the horsepower to smoothly deal with some of the scenarios that could crop up.

Apple’s approach is like a set of pause buttons per app. Switching away from an app will either pause everything about that app or all but those select features that implement one of the seven services I listed above.

I’m not totally sold on it because while I agree with the underlying approach to multitasking, I was hoping for more of a significant UI change. Under the hood Apple gave developers the pause buttons to enable multitasking, but on the surface we got a cramped Alt/Cmd + Tab. I was hoping for something more...webOS-like from Apple. I do believe that Palm’s card system makes the most sense out of the smartphone OSes that are available today. I was disappointed to see that Apple couldn’t come up with something similar or innovate beyond what Palm did two years ago.

Don’t expect multitasking to work perfectly right away. The majority of existing apps are not iOS 4 optimized and thus won’t implement any of these services. Thus the benefit of multitasking won’t really be seen until we get updated apps from developers. Those that have updated their apps give you a glimpse at what the entire iPhone experience will look like in a few months.

Take Pandora for example. We can finally (finally!) have Pandora playing in the background while you’re surfing the web or doing other things with your phone. The obvious exception being making/receiving a phone call, which will automatically pause Pandora (but not resume when you’re done).


Pandora running in the background

Stability is unfortunately a problem with the new iOS 4. I wouldn’t characterize it as terrible, but thus far I’ve had more app crashes and strange problems with iOS 4 than I have had with any prior iOS release. With more applications contending for system resources and more running in the background this iOS release is going to put even more pressure on the hardware. That means more opportunities for problems to creep up and more strain on the scheduler, particularly because the iOS is still only running on a single threaded CPU.

I’ve had slowdowns, crashes and the total-system-pause that’s reminiscent of old single core desktops when an application occupied all of the OS scheduler’s time. While they aren’t the norm in iOS 4, don’t be too surprised if they happen. While many will be upgrading to iPhone 4 later this week, expect the upgrade to the first dual-core iPhones to be just as important for overall user experience in a year. There’s a good reason I’ve been ranting about SoC performance for a while now.

Folders iAds: More Significant Than You'd Think
POST A COMMENT

49 Comments

View All Comments

  • iamafish - Tuesday, June 22, 2010 - link

    Multitasking means running many tasks at once, not saving them and coming back to them later... The switching is fairly poor as well, nothing as seamless as Palm, personally I like how Nokia have done it on the N900/Maemo, tap the top corner and get a grid of previews, tap the preview to switch, 2 clicks and switched - on a properly multitasking OS.

    Looks to me like Apple are in danger of repeating past mistakes and getting complacent, Android is improving very rapidly, and if MeeGo can build on Maemo then it's going to be good, HPs money behind WebOS can't be forgotten and Symbian is a long way from dead and has a very mature base to build on.
    Reply
  • medi01 - Tuesday, June 22, 2010 - link

    Symbian simply "long way from dead"? Last time I checked, it had 40% of the market.

    But it was worldwide, not US, mind you.
    Reply
  • solipsism - Tuesday, June 22, 2010 - link

    Looks to me like you didn't read carefully. The multitasking APIs offer true multitasking, if the developer chooses, at a fraction of the cost from running each app fully in the background. The saved state is an option, but it's not the only option as detailed in this article and elsewhere.

    If I am running 5 apps, for example, that need to get my location constantly or periodically I don't need those 5 separate apps all running in the background pulling cellular and GPS data as well as everything else they need. I only need the single geolocation API to be tied to those apps and be running. One process to rule them all. How can you not see that as a benefit?
    Reply
  • sigmatau - Tuesday, June 22, 2010 - link

    And what is the benefit of having Phone, Settings, Clock, etc taking up memory in the "multitask" bar? Now my phone's memory is constantly full with apps that surely don't need to be multitasked and everytime I need to load an app, another has to be unloaded first since I only have 5mb of memory free.

    Apple really should allow the user to chose what apps to multitask when they want them to multitask. Simply holding down the home key instead of clicking it once would do it. But we are talking about Apple and they apparently know best....
    Reply
  • solipsism - Tuesday, June 22, 2010 - link

    Ugh... That isn't a "multitask bar" it's a "fast app switcher bar".

    The apps in there aren't necessarily taking up any RAM, they are just the last apps you have used recently, in order. If you restart your iPhone and then double0tap the Home button they will all show up in the list.

    The reason for this is so you don't keep losing track of the complexity of folders. You can always easily go back to the most recent apps you have used regardless of where you are in the system or what app you are using.
    Reply
  • sigmatau - Tuesday, June 22, 2010 - link

    See my post above. They do take memory. Not sure where you getting that they aren't taking memory. Basicaly after using the phone for an hour or so, anyone will have only 5mb of free RAM. I usualy have around 100mb free before OS4.

    Also the "fast app switcher bar" is not fast at all when you get to scroll 4 icons at a time to get to the app you want. And when the phone has to ALWAYS dump one app from memory to load a new one, this is NOT faster but slower. Not only that, but this screws with Safari and multiple tabs.

    By Apple not giving us a choice on what to multitask, they tried to make the experience easy for every, they screwed many of the functions of the phone. You do not need Phone, Clock, Settings, etc. to go the that bar. It makes no sense.
    Reply
  • DLeRium - Tuesday, June 22, 2010 - link

    Proper push notifications make it UNNECESSARY for full blown multitasking.

    As an Android user I Wish I had push notifications so I can leave my IM app on without fear of it KILLING my battery.

    Apple has already addressed the cases where you DO need an app to be running:

    1) Music/Voice
    2) GPS
    3) Downloads
    4) Go to completion

    The others can be accomplished by saved states/push notifications/completion. The fact is you can't interact with simultaneous apps anyway... on any OS. WebOS just has that flick thing to look "cool" but do you really need to run 8 apps at a time? Unless you can cascade your windows and use it well on a 3.5" screen it's overrated.

    I am a Symbian S60 user who has experienced full multitasking since the beginning of time. I moved down to Android which is a downgrade in that sense, and the iPhone could be a bigger downgrade. However, I actually DO want push notifications and many of the battery saving features of the iPhone.

    You can complain about how this is a walled garden and how in principle Apple is evil for restricting you, but they actually got things right this time. For the end user it makes NO DIFFERENCE if you have full blown multitasking or not. Maybe you like how most Android devices barely get by 1 day of charge...
    Reply
  • solipsism - Wednesday, June 23, 2010 - link

    So you're going on record claiming that when if you restart your iPhone, iOS will automatically load every single app in the Fast App Switching bar into RAM upon restarting. Good luck with that one! :\ Reply
  • SunSamurai - Friday, June 25, 2010 - link

    This is a PHONE. Do you WANT the battery to last 30 min per charge? All the modern phones are doing it similer to this. Yes even droid. They get very minimal to NO CPU power in the background.

    This is a GOOD thing people. And to you people bitching about ads, get OVER IT. You want free apps on your droid/iphone/etc? You will get ads.
    Reply
  • eloquentloser - Tuesday, June 22, 2010 - link

    "I agree that the smartphone is getting more and more complicated. Good for us teck geeks :)."

    Can someone explain this new folders invention to me - it sounds terribly counter-intuitive. ;-)
    Reply

Log in

Don't have an account? Sign up now