Apple launched the iPhone 4 with iOS 4.0. The entire OS has been graphically enlarged to ensure crisp visuals on the new display. The new version of the OS brings a function called quick-app switching, and a sort of pseudo-multitasking/backgrounding, as well as some less vital things like folders.
Quick App Switching
Apple has its feet planted when it comes to the notion that apps that run fully in the background eat way too much battery. And for the most part, I’d agree with this stance. Apple has cleverly devised a way for app developers to create applications that more or less appear to run in the background. This implementation will please the vast majority of people because to most of them, there isn’t much of a difference between the way Apple has done it, and true backgrounding/multitasking, but of course there will be those that see right through it, and will be very angry that true multitasking doesn’t exist on the iPhone without jailbreaking.
To make Quick App Switching (let’s call it QAS from now on) appear to be running applications in the background, Apple has now given developers the tools to cause their applications to â€œfreeze inch in the background. I’m not 100% certain on the technical aspects of this, but through my experience with iOS 4.0, it appears as though the applications remain loaded in the phone’s RAM, but their state is completely frozen when they are closed and thus not using any CPU cycles. The effect is convincing when the smooth animation takes you from one app to another and you can see right where you left off, instead of launching into an app’s initial screen each time. To reach the quick-app switch menu, just double-tap the home button and you’ll see a scrollable list of the last applications that you’ve used.
The phone automatically terminates apps that you haven’t used in a while if it needs the RAM, which ends the QAS feature and the app will launch to its initial screen as though you are loading it for the first time since the phone has been restarted. You can also manually unload an app from the RAM by double-clicking the home button, holding your finger on an app icon until they start to wiggle, then pressing the red minus badge that appears. Not all applications in the QAS list are actually frozen in the background, but you can be sure that they are terminated by removing them with the method described above. I wouldn’t obsess over it though, the phone doesn’t appear to run any slower even when there are a lot of apps loaded in the RAM.
QAS works well, but a problem with this implementation is that apps have to be individually updated to support the feature. You can bet that new apps will have it included by default, but older applications have to be manually updated, and not all of them have been yet, and some of them may never receive such updates. This can be painful for users because it’s nearly impossible to know which apps do/don’t support QAS without reading their documentation (which most users won’t do). This leaves users guessing which apps will or won’t resume right where they left off, which can lead to some frustrating occurrences. Just to clarify, you can use the QAS menu (double-tapping the home button) to switch between any apps, whether they support background freezing or not, it’s just a matter of whether or not they remember where you last left off.
For instance, let’s say I’m using a third-party web browser, and I find a link I want to share with a friend. I copy the link, then open the mail app to send the link. Upon returning to the web browser (which doesn’t support QAS in our scenario) the user will be met with a blank page (instead of where they left off) and likely be frustrated. The only possible way to avoid instances like this is for the user to know which apps have support for QAS and which ones don’t â€“ not a realistic proposition. The ultimate cure for this problem is to make sure that all applications are updated with QAS, but with some 250,000 applications in Apple’s App Store, that’s probably not going to happen 100%. I will say that most of the applications that I use on a regular basis have been updated to support QAS. However, the first few weeks after the release of the iPhone 4 were plagued with this problem. As new apps are generally released with the QAS implementation and older apps are updated, the problem is alleviated as time goes on.
As I said QAS works well for what it’s designed to doâ€¦ which is creating the illusion of multitasking. However, it isn’t true multitasking. If you have an application that needs to sync data to a server, you can’t simply close the app and expect it to keep happening in the background â€“ that’s not how QAS works. Apple has, however, made provisions for some true backgrounding/multitasking in iOS4.
First, you’ll probably be wondering why I keep saying â€œbackgrounding inch. Well, I think this is a more accurate description than â€œmultitasking inch which implies that you are doing multiple things at once. Backgrounding seems to make more sense because we’re talking about letting an application do something in the background, rather than terminating immediately. Whatever your preferred terminology, Apple has implemented this to some extent.
There are a range of services that Apple will let developers use to background applications. One of which is audio. Applications like Pandora can now run in the background and can even be integrated into Apple’s native iPod controls.
Another service that developers can run in the background is location. If you have an application like Everytrail (which tracks trips based on your location) it can now track you in the background. You can see if the location tracking service is being used by an application by a small arrow indicator in the status bar.
There are several other services that developers can take advantage of with their applications, but the list is not all-inclusive, and I’m sure there are plenty more services that developers wish they could have access to while an app is in the background, but Apple will only approve what it thinks is necessary. Apps also have to be updated on an individual basis in order to take advantage of these newly accessible background services.
One of my biggest gripes about iOS these days is that it has an extremely poor notification management system. This is odd because it is actually great at receiving notifications (the push notification system is probably the best of any platform — mobile or not) but when it comes to actually presenting notifications to the user, it’s quite pathetic. (A quick tangent: Android is the opposite; has a great system for displaying notifications, but is relatively poor at receiving them). Nothing frustrates me more than feeling my phone vibrate, then looking at it but not know why it vibrated. If I’m in the middle of using an application and I feel my phone vibrate with no pop-up, I’ll generally assume that it’s an email (because there are no visible notifications other than a badge on the Mail app icon), but I still have to leave that app to find out if it really was an email. If the app I was using doesn’t support QAS, this scenario becomes even more annoying because I will have lost my spot in the previous application. And if you get a push notification from an application, the only way to remove the notification badge from the application is to launch it and let it realize that you’ve checked it. This is annoying when the push notification gave you all the into you needed and there really was no reason to fully open the app.