Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Multitasking without background execution.

There's a bunch of benefits that people want.

Benefit A) They want to be able to leave an app, change a setting or make a call, and then go back to where they left off.
Benefit B) They want to swap, back and forth between two or three apps, without restarting and reloading.
Benefit C) They'd like an application to be able to carry on doing something in the background, even when another application is running.

And in a zombie like monotone, a the assembled cohorts of geekdom proclaim the solution is background execution.

But multi-tasking as implemented on most mobile platforms breaks some other expectations that people have.
* That the battery life or performance of a device should not get worse unless the user to plays housemaid and cleans-up left-open applications.
* That a device fails, not because of what is on the screen, but is the fault of some software that was started two days ago.

While technically-experienced users, completely understand there are inevitable penalties to having background apps running. The typical consumer does not.

From my perspective, there is technical solution which offers all of the benefits without any of the penalties.

Benefit A and B can be delivered by simply not sending a quit message to applications when the home button is pressed. Instead of quitting apps, the OS should freeze apps - leaving them in memory. Only when memory is running low should an app be selected for quitting.

The new iPhone hardware has enough memory to support multiple apps. 90% of the complaints about "multi-tasking" would be addressed by simply implementing "lazy quitting".

These un-quitted apps remain in memory and can re-start immediately with no loss of context. We know what tapping the icon of a frozen app would be like. Tap Mail - and you see what un-freezing looks like.

The system, and not the user plays housemaid. When apps are finally booted out of memory, they quit conventionally - and if well written should restore quickly. There's no real benefit in explaining to the user the difference between "loading" an app and "un-freezing" an app. They will simply notice that one is a lot faster.

But there is another reasonable feature that multi-tasking is proposed as a solution. Allowing an app to do stuff while another app is in the foreground.

The most common example is streaming music, but there are other examples.

The reason Apple does not allow 3rd party apps to run in background is that it does not trust them to play nicely. Apple apps are trusted. Not anyone else's.

Badly-written, bad-neigbor apps could steal resources from the foreground app and create an unacceptable user experience. For the technical expert, this is a non-issue. But for the typical user, it is Microsoft-like mumbo-jumbo.

I think there is a solution here too. Hand the execution of these background task over to a trusted delegate. Either a part of the OS - or a specially crafted code fragment, which can be safely allowed to run in background without hogging the system.

Such entrusted services, could wait for network events, stream music or log data, without the parent app being allowed to foul outside its sandbox.

I would like to see both of these implementations in OS4.0

C.
 

The thing is though, that this supposedly non-multi tasking operating system already multi-tasks very well! Jailbreak and you can find out for yourself. Most apps that stay in the background don't consume much extra battery life. I have some apps that I leave backgrounded for days at a time, and there is no noticeable difference in the performance or battery life of the device. The OS already handles low memory situations fairly well in that apps in the background not currently being used are automatically and silently quit. This could be improved somewhat, but it's already there and transparent to the user. Sure, if you stream music, browse the web, and use a GPS device all at the same time, your battery life is going to suffer - but it suffers when doing any of those things anyhow. The cognitive leap that doing more than one battery intensive activity at a time will cause your battery to deplete faster is not very great.

To the person who said that multi-tasking would destroy the simplicity of the iPhone OS, well, try it out, because it doesn't! The home button already serves multiple purposes depending on context or how you press it. Multi-tasking just adds another button sequence to invoke and bring up a screen of currently running programs. Choose the program you want to go to or click the X next to it to close. It's simple!
 
Wirelessly posted (Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_3 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7E18 Safari/528.16)

chowmein said:
There's really no reason for Apple not to bring full multitasking support with the next iPhoneOS. You flub your way around it to some degree with push notifications, apps saving their state and so on, but it's no substitute for the real deal. As other platforms like WebOS and Android continue to mature and get more powerful hardware behind them the iPhone's like of real multitasking is going to become a more and more glaring fault if Apple just leaves things as-is.



Palm already knocked the ball out of the park on this one with WebOS's cards and notifications. Simple, intuitive, any idiot can use it. Done with an app? Just throw it off the screen.

...Which of course means that it's all probably patented and Apple will have to come up with their own system. But it's not exactly like they have to work a miracle here or anything.

The problem is that the iPhone OS is designed around the home button. Adding multitasking to a phone that was originally designed for single-tasking makes no sense. Apple has to rethink the iPhone while at the same time make it compatible with the existing ecosystem. The Pre, on the other hand, was designed from the ground up with multitasking in mind. It doesn't have a home button (well, the Pre Plus anyways) because it doesn't need it. Apple needs a new phone and OS to make multitasking work. Putting multitasking in the current iPhones would be like putting Flash in the iPhone. It doesn't work because it wasn't designed for it. The whole user experience just falls apart.

Nonsense. It can be beautifully implemented on the current iPhone, as jailbreakers prove.
 
Wirelessly posted (Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_3 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7E18 Safari/528.16)



Nonsense. It can be beautifully implemented on the current iPhone, as jailbreakers prove.

I'm not 100% sure everyone is getting the same "stability" though, here's some comments posted by people on another forum:

on top of it makes the iPhone extremely unstable in my opinion

I have tried it with the jailbreak and it's not stable.

I can't speak from personal experience as my phone is not jailbroken so I never tried it
 
The thing is though, that this supposedly non-multi tasking operating system already multi-tasks very well!

Most apps that stay in the background don't consume much extra battery life.

I think you use of the word "most" is the real issue.
Any well-written, bug free application can be permitted to sit in memory and run, using just a microscopic amount of resources. There is no problem with such applications. And if all apps were perfect, Apple would permit background execution.

The problem is those apps which are not good-neighbors. Apple has absolutely no way of validating the trustworthiness of App Store applications with any degree of certainty.

We smart technical types can quickly identify the crap-ware which is sucking our batteries dead. But non-technical customers should not be expected to play detective to figure out why their battery life now only gets 3 hours.

This is a consumer cellphone, not a computer science lab.

As I said in my post. All of the mooted benefits of background execution can be delivered *without* background execution.

C.
 
Like the OP stated, many people are complaining about the lack of multitasking in the iPhone OS. But, I think that there's two main issues with implementing multitasking in the iPhone OS's current state. First, how would you implement this in the UI? The iPhone's (and other related products) simplicity is built around the home button, the home screen icons, and the fact that each of those only does one thing: exit or open an app. If you add multitasking, then that whole paradigm shatters. Second, how would you distinguish between exiting an app and leaving it open? If this isn't addressed, then the OS will eventually run out of memory. If this is answered with a task manager, then it'll just become another Windows Mobile. The whole reason the iPhone was built to only single-task is because Apple believes that [ordinary] users don't want complexity. Since Apple appeals not only to the people smart enough to complain about multitasking on blogs but to everyone, it has to figure out a way to implement this in a simple and natural way that everyone would understand. Until Apple can do this, we won't see multitasking.


For a rough idea check out proswitcher in youtube. Applications that get backgrounded also get a indicator on the home screen. The indicator is ugly but I am sure Apple could do it better. Applications that you never want backgrounded you can blacklist. Want to invoke a backgrounded app, set your method to squeeze two fingers toward each other on the home screen and up pops what is backgrounded. People are already used to multitouch in apps like safari so not hard at all.
 
I still hope that this is in the pipeline with iPhone OS 4.0 , I can think of a lot of reasons why i would like to keep an app running vs closing it out entirely. Also , this will make the iPad a tad bit more fun. If you know what I mean .
 
1) iPhone users already have to be battery managers.

Besides the fact that everyone on the planet knows that doing more with a portable device means lower battery life...

Think of much users already have to know how to manage: GPS, WiFi, Bluetooth, backlight, and especially Push mail and notification. Enough said.

2) Palm WebOS has proven that handling multiple running apps can be fun and easy.

Nobody has an excuse any more on the topic of simplicity.
 
1)
2) Palm WebOS has proven that handling multiple running apps can be fun and easy.

The Palm OS is interesting.

But in Web OS all the Apps are just web pages. For the most part the OS is really only keeping multiple web pages open - in a single (tasking) browser.

I am not suggesting this is cheating. It is a good solution, it certainly reduces the possibility of badly-written apps, sitting in background, hogging resources. The notion of a rogue webpage, is not scary to deal with. It's like having to cope with an attacking butterfly!

But Palm has recently announced an SDK which will permit native-code apps to be developed by third parties. And this would mean that WebOS will presumably allow third-party native code apps to run in background.

When they do release this - only then will we be able to say they are doing something that Apple does not.

C.
 
The Palm OS is interesting.

But in Web OS all the Apps are just web pages. For the most part the OS is really only keeping multiple web pages open - in a single (tasking) browser.

I am not suggesting this is cheating. It is a good solution, it certainly reduces the possibility of badly-written apps, sitting in background, hogging resources. The notion of a rogue webpage, is not scary to deal with. It's like having to cope with an attacking butterfly!

But Palm has recently announced an SDK which will permit native-code apps to be developed by third parties. And this would mean that WebOS will presumably allow third-party native code apps to run in background.

When they do release this - only then will we be able to say they are doing something that Apple does not.

C.

I think the facts are simple which is that:

1.) The iPhone already has multitasking capabilities between Apple applications.

2.) Fact number one demonstrates that you can multitask while maintaining a decent battery life.

3.) Multitasking has been fully implemented in the OS' by 3rd parties who have a limited knowledge of the iPhone OS' architecture.

4.) Other manufacturers have implemented multitasking into their mobile OS' while keeping battery life competitive if not better than the iPhone.

So with this all being known I come to the conclusion that your argument while intelligent is nothing more than babble made to convince yourself that multitasking is not necessary and is inefficient. The reality is that the iPhone OS already multitasks but simply has the functionality crippled by Apple which is similar to bluetooth...you can use it to connect a headset but if you try to transfer files it suddenly no longer works. It's not that connecting to devices is dangerous and complex it's that Apple doesn't want you to do it point blank. The bottomline is that multitasking on iPhone OS 3.0 is crippled and needs to be fully implemented in further iterations if Apple is to remain competitive in the marketplace. The last thing they want is for the iPhone to end up like the Razr which it most likely will with phones like the Droid and Nexus One around.
 
I think the facts are simple which is that:

1.) The iPhone already has multitasking capabilities between Apple applications.

2.) Fact number one demonstrates that you can multitask while maintaining a decent battery life.

3.) Multitasking has been fully implemented in the OS' by 3rd parties who have a limited knowledge of the iPhone OS' architecture.

So with this all being known I come to the conclusion that your argument while intelligent is nothing more than babble

You would come to that conclusion if you could not follow a very simple argument:

Well-behaved applications can be trusted to work reliably in a multi-tasking environment. But poorly written applications simply cannot. Not without compromising the user experience.

Babble babble babble babble..

C.
 
I agree completely. Apps like Pandora is the only case where I think multitasking is really needed. Quickreply for SMS would be sweet.

I think there's a good case for multitasking for apps like Skype. I'd like to be able to read my email receive a Skype call. Right now, if I'm checking my email, Skype is off and I don't get the call. That'd be the best use of multitasking IMO.
 
I think there's a good case for multitasking for apps like Skype. I'd like to be able to read my email receive a Skype call. Right now, if I'm checking my email, Skype is off and I don't get the call. That'd be the best use of multitasking IMO.

I agree that it would be good to use the Skype application to receive calls.

It is disappointing that Skype has had the option to include push notification in their App for a year - and has simply not bothered to implement it.

But it would be good to see OS 4 present some new methods for ongoing activity.

C.
 
I agree that it would be good to use the Skype application to receive calls.

It is disappointing that Skype has had the option to include push notification in their App for a year - and has simply not bothered to implement it.

But it would be good to see OS 4 present some new methods for ongoing activity.

C.

Yeah, I'm a little disappointed Skype hasn't even adopted push in its app. Push would work for text, but I'd still need multitasking to receive calls. This is actually the only thing I really want multitasking for. The current workaround is for Skype calls to be forwarded to my iPhone, but this costs me money (not much, but it's still irritating), and I can't tell who's calling me.
 
Yeah, I'm a little disappointed Skype hasn't even adopted push in its app. Push would work for text, but I'd still need multitasking to receive calls. This is actually the only thing I really want multitasking for. The current workaround is for Skype calls to be forwarded to my iPhone, but this costs me money (not much, but it's still irritating), and I can't tell who's calling me.

+1, push just won't work for calls, so while Skype has the option to do it, it makes no sense (do you really think the person will wait that long, most people hang up after 2-3 rings)
 
I think there's a good case for multitasking for apps like Skype. I'd like to be able to read my email receive a Skype call. Right now, if I'm checking my email, Skype is off and I don't get the call. That'd be the best use of multitasking IMO.

Oh yeah, I forgot about Skype.
 
I think you use of the word "most" is the real issue.
Any well-written, bug free application can be permitted to sit in memory and run, using just a microscopic amount of resources. There is no problem with such applications. And if all apps were perfect, Apple would permit background execution.

The problem is those apps which are not good-neighbors. Apple has absolutely no way of validating the trustworthiness of App Store applications with any degree of certainty.

We smart technical types can quickly identify the crap-ware which is sucking our batteries dead. But non-technical customers should not be expected to play detective to figure out why their battery life now only gets 3 hours.

I'm sorry, your arguments here are getting so desperate here that they're almost to the point of being laughable.

If Apple wants to become the mobile company that protects its stupid users from themselves, it's certainly their prerogative, but it will only hurt them in the long run. Their competitors are already allowing full, working multitasking on hardware that's comparable to what Apple currently offers (if you think that pre-PDK WebOS apps are somehow incapable of hogging or wasting resources, then you're totally out of touch), and it's only going to be a few years until smartphone hardware advances to the point that the "no multitasking to protect performance!" argument is rendered completely null and void.
 
I'm sorry, your arguments here are getting so desperate here that they're almost to the point of being laughable.

If you want to point out an actual flaw in the arguments feel free.

Apples strategy might not fit the viewpoint of the dark armies of geekdom, but commercially it does not seem to be hurting them. The iPhone allowed Apple to become the most profitable cellphone manufacturer last year.

I agree that users, myself included, would benefit from fast app swapping and a facility to enable some apps to have some degree of ongoing processing in background.

But I think Apple can easily deliver those benefits to customers without going down the path that Android has taken. And I am very confident we will see a set of technologies in 4.0 which will deliver those benefits.

Palm is not yet allowing 3rd party native-code applications to run in background.

C.
 
But in Web OS all the Apps are just web pages. For the most part the OS is really only keeping multiple web pages open - in a single (tasking) browser.

Totally incorrect. What's up, C.? You usually don't get things this wrong :)

I'm looking at my wife's Pixi in its card display, with multiple apps in view, and I can see their display change in realtime.

WebOS apps use web languages for the UI, but they're Linux apps underneath. WebOS apps absolutely can and are multitasked, with a UI and/or as unseen background services.

Bear in mind that I've programmed with WebOS. As Palm answers on their dev site:

"What happens to the current foreground application when you switch to a new application? The previous application is not closed but continues to run as a background application. Background applications can get events, read and write data, access services, repaint themselves and are generally not restricted other than to run at a lower priority than the foreground application. "
 
Totally incorrect. What's up? You usually don't get things this wrong :)

I'm looking at my wife's Pixi in its card display, with multiple apps in view, and I can see their display change in realtime.
I am sure it can!

There is one browser supporting multiple web-based applications which are cached locally on the device! They are all "running" at the same time. But they are not native code. Apart from the Classic Palm OS emulator which is not a 3rd party app.

WebOS apps use web languages for the UI, but they're Linux apps underneath. WebOS apps absolutely can and are multitasked, with a UI and/or as unseen background services.

I think you are slightly wrong. The existing SDK requires devs to create JAVA applications.

I quote from Palm's website
You can think of webOS applications as native applications, but built from the same standard HTML, CSS and JavaScript that you'd use to develop web applications. Palm has extended the standard web development environment through a JavaScript framework that gives standardized UI widgets, and access to selected device hardware and services.
According to Palm these are Java apps.

Only this week did Palm announce this:
http://developer.palm.com/index.php?Itemid=20&id=1850&option=com_content&view=article

This is new - and will eventually allow devs to create C and C++ native-code applications for Palm OS.

If I am wrong about this - I apologise in advance.


C.
 
I think you are slightly wrong. The existing SDK requires devs to create JAVA applications.

First they were "just" web pages. Now they're "just" Java apps. What will they be next? :rolleyes: I have more than a few friends who will be sad to know that in the year's they've spent developing with Java they weren't creating "real" programs.

Regardless, debating about how real current WebOS apps are is pointless. Since you need to see PDK developed apps to be convinced that WebOS does "real" multitasking, we'll use them. Because while the PDK won't be publicly available for another 2-3 weeks, apps developed using it have been out since it was announced in January.
 
Middle ground?

To be honest the lack of multi-tasking hasn't been as big an issue as I thought it would be. Yes in some cases (like Skype) it would be nice but I do worry about the simplicity versus extra functionality.

However why don't they allow multi-tasking - but make it pretty difficult to do it so only trusted developers and/or developers willing to pay more can have a multi-tasking app.

This extra money would have two reasons:
1) Deter everyone and his dog making their app multi-tasking when there really is no need for it to be if they program it properly.
2) Allow for Apple to pay for some testing/code review process to confirm the app isn't going to anything obviously bad.
This would obviously lead to massive extra lead times to release apps though...

Oh and you should also have a "Allow 3rd Party Apps to run in the background" option which is defaulted to "No" and gives you a warning about the dangers (battery/stability) if you switch it to "Yes" to protect non IT literate people.

Yes there is lots of reasons to make the iPhone a much more open platform, and this idea seems to fly in the face of it, but I can see why they do what they currently do (both in terms of locking it to approved apps and to not allowing multi-tasking) because, for every IT geek that complains about this, there are probably 100 happy customers who don't complain and like the stability, reliability and understand how their battery life works at the mo.

Barry

P.S. I'm glad the original poster posted this, and am glad he gave a real life example (even if it did show him to be a little niave for what his users would want). I don't see this as a plug and think it's stimulating some interesting debate.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.