Task switching - why do smartphones suck at it?

Task switching should be the cornerstone of a modern UI, not something that is slapped on top of it as an afterthought. For me, most of the current UI´s handle it as an afterthought, including iOS, Android and WP.

Let´s put it this way: you are in your garage and on your way to change the tyres on your car. You have all the necessary tools with you. Every time you finish using one of the tools and need another one, do you stand up and go looking among the other tools? No, you just take one from the ones you brought with you, the ones you knew you were going to need (I know not the best example but bare with me). The way the majority of smartphones work is they assume that you want to go and search for the tool you need among those other tools, instead of the ones you brought with you. The home screen (launcher or whatever it is called) is given higher priority than the running applications. Pressing the home button (easy) takes you to the home screen while holding it down (not as easy) takes you to the task switcher. I'm sorry but I don't see the logic behind this, in fact I think it's more logical the other way around! Palm devices and the Nokia N900 handle this beautifully. The UI revolves around the running tasks and the launcher is given lower priority.

Ice Cream Sandwich makes it easier to access the switcher since it has its own dedicated button, but the process still feels like an afterthought to me. Why should a user move the finger from the top to of the phone to the bottom just to be able to access the task switcher? Some of these phones are rather big and doing so requires effort. The best solution to this issue is the way the Nokia N9 handles things. Swipe from the edge, any edge, and you bring up the task switcher. Minimal effort.

The last issue I would like to bring up is the inability to smoothly and quickly close the running application while using it. iOS, Android etc. let you close open applications from the task switcher but not from the application itself. I know there is no need to close them since the OS does that for you (issue I'll discuss another time) but still, when I'm done interacting with an application I want to close it, it´s the natural thing to do. Again the N9 handles this beautifully, just swipe the app downward and it´s gone!

So, the perfect implementation of task switching would be a combination of the approaches of the N9, N900 and the Palm devices. Combined they lead to a UI where the user opens applications from the launcher and juggles through them effortlessly until they're no longer needed at which point the user closes them just as easily. The home screen is the task switcher and is easily accessed, while the launcher is given lower priority and takes an extra step to access. Simple enough, no? Why does everyone continue implementing the same hold-the-home-button approach then?

Can I have your take on this. Do you agree or disagree with my points? Why?

I think task switching on phone OSes is basically hamstrung by the device form factor, and the general requirement for apps to be full-screen. none of them really seem to be "better" than the others; they're all mediocre. As much as people lauded WebOS's "card" metaphor, it was still mostly just a different visual representation of the same thing.

my biggest problem with it is the discoverability of the task switcher. It's not immediately apparent that a double-tap of the home button is what invokes it on iOS, nor a long press of the back button on Windows Phone.

The real issue is: How many of these things have something to do apart from writing to the screen?

I think if more of them had a credible background mode, we'd see multi-tasking work just fine. It's really not that hard to do and the OSes are no doubt "otherwise" set up for it.

The issue really is, if the user isn't there, what have they got to do?

Running the music maker is one good example of something that does run OK in the background on my phone. It's just there aren't a lot of other such examples and yes, battery consumption is in there, too.

No clue. That´s why I started this thread, to find out if others share my point of view.

I don't. Battery life is the cornerstone of the modern smartphone, followed by screen quality, and then performance. Improving task switching falls below improving speaker quality, voice commands, and video chat, to me.

The last issue I would like to bring up is the inability to smoothly and quickly close the running application while using it. iOS, Android etc. let you close open applications from the task switcher but not from the application itself. I know there is no need to close them since the OS does that for you (issue I'll discuss another time) but still, when I'm done interacting with an application I want to close it, it´s the natural thing to do. Again the N9 handles this beautifully, just swipe the app downward and it´s gone!

So, the perfect implementation of task switching would be a combination of the approaches of the N9, N900 and the Palm devices. Combined they lead to a UI where the user opens applications from the launcher and juggles through them effortlessly until they're no longer needed at which point the user closes them just as easily. The home screen is the task switcher and is easily accessed, while the launcher is given lower priority and takes an extra step to access. Simple enough, no? Why does everyone continue implementing the same hold-the-home-button approach then?

Can I have your take on this. Do you agree or disagree with my points? Why?

I think the question is whether most people find closing apps, and in general dealing with the distinction between running and non-running apps, the "natural thing to do" or an unnatural encumbrance. Metro style apps on Windows 8 are essentially bringing the smartphone/iPad process lifetime model to the PC, betting that many people will prefer not to close apps irrespective of form factor. The (imperfectly realized) goal is to give the impression that "all of your apps are running all of the time", without hurting performance. It's a bit of a cheap shot since many other factors could explain this, but none of the platforms you mentioned that implemented your preferred model were very successful.

I don't. Battery life is the cornerstone of the modern smartphone, followed by screen quality, and then performance. Improving task switching falls below improving speaker quality, voice commands, and video chat, to me.

I don't know what "improving task switching" even means in this context.

1. The people implementing task switching probably aren't the same people dealing with speaker quality. Apple and Google can walk and chew gum at the same time relative to this.

2. The question still remains -- what is going on in the background in these phones? I think the 'improved task switching' is probably already there, largely. That's a matter of deep, internal mechanics and it has been a solved problem for a long while.

3. The broader question remains: What are people doing with these phones that requires a lot going on without writing to the screen by multiple apps? The phones, particularly, are pretty limited as peripherals go. So, it's basically mostly about sharing the screen and the input surface ("the screen" yet again). That all by itself is going to imply a lot of "one at a time" that isn't present on a 22 inch display with a nice shiny PC.

Until you have more frequent and credible scenarios (such as a music player, maybe some network functions here and there) that requires a lot of tasks to simultaneously share the processor, it isn't going to be interesting. The capability that is there probably isn't being shown to advantage. It's not like people are doing batch red eye corrections or compiling a big Eclipse app.

The battery life figures into it, but less than meets the eye. These devices are going to be spending a lot of time waiting for the next swipe, so if there's something to do when not writing to the screen, then it's going to happen no matter how good or poorly multi-tasking is implemented. There's time for it regardless.

So the real question is "what is the list of things to be done to start with?"

I don't see much evidence in the apps I run that are doing a great deal of computation once you "take the screen away from them" and run something else.

I could see the browser doing a few things; finishing fetching the current page for instance. But, in a limited function interface, the browser could (whatever the OS' policy) decide that it made sense to treat a "loss of screen" as a cue to wait; maybe the page isn't wanted. On a 22 inch display, it's a lot easier to presume that if the user doesn't press the "cancel" icon, one should push on.

As long as there's some "background" capability of any kind, then a lot of this is going to be discretionary anyway. I think you're not seeing a lot of it because these things really aren't being used for the sorts of "batch" processes where there's a lot going on away from the screen.

I read your posts, I look at my N9, and I'm still failing to understand how you accept being hobbled by brain-damaged task switching UIs. Because of Apps, you say? Fnarrr...

Except that I so far haven't noticed the problems. What, exactly are they?

Maybe if I was trying to develop software on a 10 inch iPad, I'd agree with you.

But, so far at least, what I use my phone for is pretty darn limited. Whatever the limitations are, I'm not really seeing them. What needs to run in the background runs there and the rest is waiting on input, in which case, on any scheme, they aren't competing for the CPU. They are waiting and if they don't "own" the screen, then the details of how they wait aren't terribly interesting. Are they kept in storage? Swapped out? Who cares? That's just a bunch of OS trade-offs and those can change.

We've also been here before. If these limitations really do start chaffing, then eliminating them will be relatively easy. This isn't some radical territory no one has ever seen before.

@ZeroZanzibar: I wasn't talking about the multitasking per se (even though on the N9 it's awesome to use Opera to open a bunch of links in the background, go send an SMS, get back to read a webpage, go back to a facebook conversation, then send a skype message, then come back to read another page, then share it, ad infinitum, without worrying if the phone has decided to close a connection, a tab, or a program, because "OMG it's too much for me!"). But I can do it quickly and fluidly, because of the Swipe UI.

I understood the OP's as a complaint for the dedicated "buttons" (or iOS' "button-hold") to invoke task-switching. Just like if the only way to change tasks in Windows was Alt-Tab, without the taskbar option.

In fact, I'll say that because the phone form-factor is conducive to "one task on screen at a time", task switching is even more important. And because I can switch so easily on the N9, I can really do more than one thing at a time.

I understood the OP's as a complaint for the dedicated "buttons" (or iOS' "button-hold") to invoke task-switching. Just like if the only way to change tasks in Windows was Alt-Tab, without the taskbar option.

Well, that's a fair point.

However, the things aren't as unrelated as they may look. Sometimes, lower level functions have a way of being reflected upwards into other interfaces that are related.

If we go back in time, for instance, we had this long argument about "preemptive" versus "cooperative" multi-tasking (back when that was a differentiator on desktop software and also a historical development in such software).

These things did have a way of being reflected in the interfaces back then; in how apps were launched in particular.

I really take leave to doubt that we are going to have quite so many functions going in a typical phone as you may be experiencing. Kudos to you if you manage it. These devices are just too limited; maybe we'll learn to do so over time, but it will be a learning curve. If we go by Metro, Microsoft seems to be of the opinion that we have too much of that capability right now.

So, to that extent, the interface complaint is just a complaint about a particular interface style. The underlying question, however, has a lot to say about whether and how that will change. If the dominant mode remains one-at-a-time, then the interfaces (visible and invisible to the user) may not change all that much or at least evolve slowly.

I feel like many of the posters misunderstood me. This isn´t a thread about "real multitasking" vs "saved state multitasking", it is about switching between open applications and how easy it is. It´s about how you access the task switcher, how you interact with it. My point was that task switching isn´t as fluid and as easy as it could be and feels like an afterthought, something that is just slapped on top of an excising UI that isn´t designed to work with a task switcher in the first place.

contextfree wrote:

The (imperfectly realized) goal is to give the impression that "all of your apps are running all of the time", without hurting performance. It's a bit of a cheap shot since many other factors could explain this, but none of the platforms you mentioned that implemented your preferred model were very successful.

That´s the issue I was trying to address with the garage example I had in my post. I want to open the apps that I need and juggle through those. The other apps can be ready and prefetched in memory so when I need one of them it starts quickly. However juggling through apps should be given higher priority and made easier compared to launching apps. Today this isn´t the case, the home screen is accessed easier than the task switcher. The devices I mentioned were not successfull, I agree, but they were all praised for how they handled task switching.

@OrangeCream - I wrote that task switching should be the cornerstone of a good UI. The things you named make a good smartphone but have nothing to do with the UI.

I find that the WP7.5 phone is functionally the same, once I stopped worrying about closing apps. On the Palm I had to worry about that, because if I allowed too many running apps to accumulate, WebOS would pop up a stern warning to let me know it was having trouble and I needed to close stuff.

WP doesn't bother me with that. It seems to handle more apps in the first place (because let's face it, Palm hardware was anemic), and in the second place, if resources are running low and something needs to be closed, WP just takes care of it for me. And it almost always closes something I won't miss anyway. And yet it's still very stable - I can't remember the last time I fully rebooted my WP handset. I have no need to reboot, so I don't. I'm pretty sure it's been more than two months since this phone had a restart - and that was only because I let the battery run down.

So, once I learned to stop manually closing apps, I found WP's task switching to be very familiar, very easy, very usable. The long press on the back button doesn't inconvenience me at all, and from there I can swipe left or right in a card stack, very reminiscent of what I had on my Palm Pre. Easy. So, honestly, I find WP better than Palm was. I can't comment about Apple or Android because haven't used either long enough to get a real feel for it.

I still claim the N9's implementation of this is by far the best. But since most of you will never see one in the flesh in your lifetime, let alone touch one, whatever.

I own a N9 actually and it is the device that opened my eyes to the flaws in the other UIs. Like many of the posters here I was perfectly fine with how my Galaxy S and Nexus S handled task switching, in fact I didn´t even think about it. But then I got the N9 and all that changed. The best thing about it is the swipe, I no longer have to move my finger to a specific location and press some (relatively) tiny button, I just swipe from the nearest edge! Every time I use my ICS running Nexus I feel like I spend unnecessary long periods of time switching between running apps, it is really annoying actually. Older Android versions feel even worse.

However I have to disagree with you about it having the best implementation. Have you tried the Palm Pre? I think it´s better then the N9 because it uses gestures better. For example to switch to the previous app you just swipe left below the screen, you don´t even have to access the switcher (or card view as they call it), task switching doesn´t get faster then that does it? Of course the N9 beats the Pre in the app closing/minimizing game, but I still prefer the Pre´s implementation.

I feel like many of the posters misunderstood me. This isn´t a thread about "real multitasking" vs "saved state multitasking", it is about switching between open applications and how easy it is. It´s about how you access the task switcher, how you interact with it. My point was that task switching isn´t as fluid and as easy as it could be and feels like an afterthought, something that is just slapped on top of an excising UI that isn´t designed to work with a task switcher in the first place.

In iOS that is almost exactly right; it's not a task switcher so much as a "list in order of most recently used apps" container.

Quote:

contextfree wrote:

The (imperfectly realized) goal is to give the impression that "all of your apps are running all of the time", without hurting performance. It's a bit of a cheap shot since many other factors could explain this, but none of the platforms you mentioned that implemented your preferred model were very successful.

This is why I mentioned battery life; what you describe is impossible without hurting the battery.

Quote:

That´s the issue I was trying to address with the garage example I had in my post. I want to open the apps that I need and juggle through those. The other apps can be ready and prefetched in memory so when I need one of them it starts quickly. However juggling through apps should be given higher priority and made easier compared to launching apps. Today this isn´t the case, the home screen is accessed easier than the task switcher. The devices I mentioned were not successfull, I agree, but they were all praised for how they handled task switching.

It probably indicates that most people aren't actually using their phones like tools in a garage, and probably more like a car. You don't switch cars very often at all, so the burden of parking, switching cars, and leaving the garage is comparatively minor.

Quote:

@OrangeCream - I wrote that task switching should be the cornerstone of a good UI. The things you named make a good smartphone but have nothing to do with the UI.

Excepting that battery life is hurt by multiple running tasks (unless user initiated like background music or background phone calls or background GPS, etc).

Towards the pursuit of battery life, improving the screen is a better tradeoff (brighter, clearer, more pixels) than improving background tasks (to me). Improving performance also sacrifices battery, but is more important than task switching, to me.

In terms of software/UI features, I put speakers, voice, and video ahead of task switching because I use them more.

In fact, it's only when speakers and voice are dramatically improved can task switching be a priority to me!

In other words, when I interact with my phone mostly by voice then I can have the luxury of running multiple tasks because I will be using my fingers and eyes to do one thing (editing an email) while I use voice to do a second thing ("Siri, grab Julie's address and paste it into this document".

Excepting that battery life is hurt by multiple running tasks (unless user initiated like background music or background phone calls or background GPS, etc).

I'm still trying to work out why this is the case. I get that a running app would eat more RAM than a hibernated one, but if you have an app and it's in the background but not responding to events why would it eat battery? It's just a blocked thread entry.

Excepting that battery life is hurt by multiple running tasks (unless user initiated like background music or background phone calls or background GPS, etc).

I'm still trying to work out why this is the case. I get that a running app would eat more RAM than a hibernated one, but if you have an app and it's in the background but not responding to events why would it eat battery? It's just a blocked thread entry.

Uh, not if the thread isn't blocked.

What's the point of "multitasking" if the second task isn't active? In which case why not implement "real fast app launching" instead?

I'm not as concerned about true "multitasking" as I am about how easy it is for me to get from one recently run app to another. And the iPhone seriously sucks at this. Most of the time my double tap of the home button is only seen as a single tap and I end up at the home screen anyway.

I think that this is what this thread is about, the user interface, rather than what is happening behind the scenes with respect to multitasking.

Edit: The iPad got it right with the 4 finger swipe. But that doesn't work for the small iPhone screen. I think that a single finger swipe left/right across the top of the screen would work. But the trouble is that it may break some app compatibility.

Edit: The iPad got it right with the 4 finger swipe. But that doesn't work for the small iPhone screen. I think that a single finger swipe left/right across the top of the screen would work. But the trouble is that it may break some app compatibility.

I'm jailbroken and run a Cydia app called Activattor that allows you to invoke certain actions through my choice of gesture. I invoke the multitasking tray through a "swipe to right" gesture, and it is a problem with app that disable the status bar, like Instapaper. In those cases I would have to pull down the Notifications screen, and swipe from that status bar. That's a complete non-starter for a coherent phone UI.

EDIT: But I don't like much of the way the home button works. I think it's poor design that opening an app from a folder and hitting the home button takes you back to the open folder, and not the home screen. I also think having the home button take you to the iPhone Search function if you're on the 1st home screen is poor design as well; the home button's functionality changes based on where you are in the phone's UI, which seems counter-intuitive to me.

It may be better, but not much. How easy it is to switch between apps dramatically affects how often users do it. For example, if flipping between two open apps in Windows was Ctrl-Alt-Del instead of Alt-Tab, it would be used far less often. That's the danger of relying on those kinds of metrics when asking the question, "do we need to make XYZ easier to do?" If the answer is "yes, because it's too hard now," then the metrics will frequently show a false negative.

The better question to ask is, "What are the tasks users perform that could be made better by better app switching, and how much better could we make them?"

I'm not as concerned about true "multitasking" as I am about how easy it is for me to get from one recently run app to another. And the iPhone seriously sucks at this. Most of the time my double tap of the home button is only seen as a single tap and I end up at the home screen anyway.

Well, the two are clearly deeply interlinked. Every time Android ICS decides to shut down my phone's browser just because I switched away from it to respond to a Google Talk message and check Facebook, it's that much harder to go back because all my tabs have to be loaded again.

Edit: The iPad got it right with the 4 finger swipe. But that doesn't work for the small iPhone screen. I think that a single finger swipe left/right across the top of the screen would work. But the trouble is that it may break some app compatibility.

I'm jailbroken and run a Cydia app called Activattor that allows you to invoke certain actions through my choice of gesture. I invoke the multitasking tray through a "swipe to right" gesture, and it is a problem with app that disable the status bar, like Instapaper. In those cases I would have to pull down the Notifications screen, and swipe from that status bar. That's a complete non-starter for a coherent phone UI.

Yeah, I used that before. It didn't work often enough that it wasn't worth using. And I haven't jailbroken my iPhone since a little while after that. It didn't feel worth it.

I'm not as concerned about true "multitasking" as I am about how easy it is for me to get from one recently run app to another. And the iPhone seriously sucks at this. Most of the time my double tap of the home button is only seen as a single tap and I end up at the home screen anyway.

Well, the two are clearly deeply interlinked. Every time Android ICS decides to shut down my phone's browser just because I switched away from it to respond to a Google Talk message and check Facebook, it's that much harder to go back because all my tabs have to be loaded again.

This is probably *the* prime reason I want some better form of (technology, not UI) multi-tasking. I hate the fact that I have to sit in the browser to load a tab.

I'm not as concerned about true "multitasking" as I am about how easy it is for me to get from one recently run app to another...

...I think that this is what this thread is about, the user interface, rather than what is happening behind the scenes with respect to multitasking.

Finally someone who got it right!

Your ideal task switcher is confusing then:

Quote:

So, the perfect implementation of task switching would be a combination of the approaches of the N9, N900 and the Palm devices. Combined they lead to a UI where the user opens applications from the launcher and juggles through them effortlessly until they're no longer needed at which point the user closes them just as easily. The home screen is the task switcher and is easily accessed, while the launcher is given lower priority and takes an extra step to access. Simple enough, no? Why does everyone continue implementing the same hold-the-home-button approach then?

If you want an "ideal task switcher", I think it would be:1) Drag a task pane from the bottom to show the list of apps OR2) Two finger drag from left to bring up the previous task3) Home screen is just the app launcher, static and representative of available apps4) Launching an app from the home screen vs from the task switcher vs search are identical5) The dock (as on iOS) is configured to launch the top 20 user apps (I have two folders of 9 plus two other apps; with folders there is the option of keeping 48 apps on the dock if necessary

I would keep the home screen as the app launcher because I like muscle memory and knowing where everything is. As it is because I have 180 or so apps on my phone I use search half the time to find an app. Making the home screen dynamic, as you propose, means I would waste more time looking for an app as opposed to already knowing within two taps how to launch my top 20 apps.

In other words, if I'm juggling 3 apps that I don't use commonly, the task switcher already has them since it lists the last four. If I'm juggling 3 apps I use commonly they are already in my dock. The only improvement I see would be the introduction of additional gestures to bring the task switcher up or to switch tasks.

I think that for the iPhone the ideal implementation is the following:

You swipe from the bottom edge of the screen and you move your finger upwards without lifting it from the screen. The app directly below your finger gets uncovered so you can see it better. When you find the one you want to switch to you just lift your finger off the screen. It is easy to implement without changing the flow of the UI or the inner workings of the system but it is better then the current implementation.

Of course a much better implementation can be made when designing a completely new UI from scratch, because in that case the developer´s hands are free.

You're proposing some style of coverflow (or more like flipping pages on a notebook), I think.

I would say have the existing task switcher be "pull from the bottom" since the existing task switcher actually works the way I want it (and see no problem with it), but because I like to be able to "switch apps", I can see the two finger drag right or left to pull up the previous app, and drag diagonally from the lower right to initiate a "page flipping" animation that scrolls through the previous pages (like in a notebook).

So as you drag your finger diagonally, more pages get flipped, perhaps limited to the last four or so.

I think that for the iPhone the ideal implementation is the following:

You swipe from the bottom edge of the screen and you move your finger upwards without lifting it from the screen. The app directly below your finger gets uncovered so you can see it better. When you find the one you want to switch to you just lift your finger off the screen. It is easy to implement without changing the flow of the UI or the inner workings of the system but it is better then the current implementation.

Of course a much better implementation can be made when designing a completely new UI from scratch, because in that case the developer´s hands are free.

1) The gesture you described to control that function is very unintuitive, and is unlike any other non-custom gesture in the OS, at least to the best of my knowledge.

2) Your method doesn't take into account 2 scenarios that apps fall into: landscape view and apps without a header, like Clear or Instapaper. Also, what happens when I'm in an app that has a header, but isn't easy to discern what it is even when I look at it? There needs to be a fixed-state identifier of each app (like the app's icon) to take into consideration the changing visuals of each app depending on what state it's in at the time iOS took a screenshot of each app.