With app maintenance on an iPhone or iPad, there are basically three kind of users:
1. Users who like to regularly double-press the home button, and swipe up all apps that remain.
2. Users who don't care, and almost never use the app switcher except to re-open a recently used app.
3. Users who terminate only specific apps that they think have a negative impact on their device.
The Google I/O conference took place a few weeks ago, beginning with the traditional keynote. When they announced a new "Clear all" button on the Android app switcher, the crowd cheered.
If you recognize yourself as the first kind of iOS users, you might think "Yes, I want this on my iPhone !".
Well that would be all kinds of wrong, and let me explain why.
Reasons for killing app
Users kill app for 2 main reasons:
- Because they think it will save battery, or improve device performance.
- Because of the visual clutter when a lot of apps are opened. It is true that the app switcher does not handle quantity very well, and there is currently no other means to help than killing apps.
When asked, Apple insists that killing app should never be done, except when the app stopped working. They insist on that because killing apps can actually have negative side effects, for exemple on the app's scheduled background activities.
I would tend to agree, but it is not so simple.
The iOS app lifecycle
Starting an iOS app from scratch is a lot of work for the system. It needs to allocate memory, create initial screens, etc. The app itself might have some heavy work to do on its initial startup.
When you leave the app, the system simply stores its current state in memory. Once there, the app does not run anymore, it's completely pending. When you open it back, the system simply restores it from memory. It's super fast, and very light-weight compared to starting it from scratch.
Taking this into consideration, killing apps via the app switcher will actually not help you save battery. It will use more, because next time you launch the app, the system will have to do all ths heavy work again.
The only exceptions are:
- Apps that enter some buggy state, and can only work again after being completely rebooted.
- Apps that are bad iOS citizens, and find a way to continue running in the background even when they are not supposed to. The Facebook app for example has been one of the worst in that regard, but there are others.
Why a clear all button would be bad
Killing all apps all the time with a single button is clearly not the way to go. It would go completely against the basic principles of app management on iOS.
However we have also established that there are good reasons to kill apps sometimes.
So how should we go about managing this in the most efficient way, that would satisfy all kind of users ?
Improving the iOS app switcher
The iOS app switcher does not help us in the cases where removing apps would be really helpful.
First, it is not possible to remove from sight opened apps without killing them. It is a problem for users who like to have a minimal app switcher, with only apps that they might want to re-open later.
Second, there is no simple way to identify apps that should really be killed, for exemple because they continue to drain battery and performance after being closed.
A few changes to the app switcher could go a long way, for example:
- Make the swipe up gesture not kill the app, but just remove it from the switcher. That would imply implementing a new interaction to actually kill an app. We would also need a new view that shows all opened apps, similar in function to the task manager you can find on Windows systems.
- In the app switcher, add an "expert mode" button to display battery and CPU usage of an app since it last entered suspended state. That way, we can kill apps that do actual harm.
Rather than insisting on the 'right way' to use their system, and redesigning the app switcher every few years, maybe Apple could first try to understand why it is misused, and how they could fix it.
WWDC is coming in a few weeks. Hopefully iOS 10 will bring a few improvements to this central part of iOS.