An incomplete list of reasons why I force-quit iOS apps
As a result of having iOS devices, I've wound up reading a certain amount of things about using iOS and how you're supposed to do that. One of the things that keeps coming up periodically is people saying 'don't force-quit iOS apps, it's a bad idea'. What reading a number of these articles has shown me is that people seem to have somewhat different views about why you might want to force-quit iOS apps than I do, and often more narrow ones. So here is an incomplete list of reasons why I end up force-quitting iOS apps:
- To remove the app from the carousel display of 'recently used'
apps. In order to make this carousel usable (especially on my
phone), I curate it down to only the apps that I'm actively
using and I want to switch between on a regular basis. If I use
an app only once in a while, I will typically eject it from the
carousel after use.
(I also eject apps that I consider sensitive, where I don't want their screen showing when I cycle through the apps.)
- To force Termius to require a thumbprint
to unlock, even if it's immediately used again. Termius's handling
of SSH keys is a bit like
sudo, and like
sudoI want to get rid of any elevated privileges (such as unlocked keys) the moment that I know I don't need them again. Generally this overlaps with 'remove an unused app from the carousel', since if I'm forcing Termius to be explicitly unlocked again I'm not planning to use it in the near future.
- To get the app back to its initial screen. I've read a proposal that this should be the only thing that a 'force-quit' does in a future iOS version.
- To abort or discard something that an app is doing. Sometimes resetting
an app back to its initial screen is the easiest way to get it out of
some activity, because the app itself is quite insistent that you not
have any easier way of outright cancelling things.
(In the case that comes up for me, the app in question is trying to avoid data loss, but as it happens I want to lose the 'data' in question.)
- To restart an app because it seems to have gotten itself into some
bad or hung state.
- To stop an app from talking to another device because I'm about to
do something to the other device that I know the app will react
badly to, for example restarting the device.
- To hopefully stop an app being active in the background for whatever
reason it thinks it has for doing that. There are some settings that
probably control this, but it's not entirely clear and there are apps
that I sometimes want to be (potentially) active in the background
and sometimes definitely don't want active, for example because their
purpose is over for the moment.
- To force an app out when I don't entirely trust it in general and only want it to be doing anything when I'm actually running it. Sure, I may have set permissions and settings, but the iOS permissions stuff is somewhat intricate and I'm not always sure I've gotten everything. So out it goes as a fairly sure solution.
What strikes me about these different reasons I have for force-quitting apps is how they'd be hard to provide in distinct app UIs or system UIs. Some of them perhaps should be handled in the app (such as locking Termius), but there's only so much room for app controls and there's always more features to include. And it makes sense that an app doesn't want to provide a too-accessible way of doing something that causes data loss, and instead leaves it up to you to do something which you've probably been told over and over is exceptional and brutal.
The other UI advantage of force-quit as a way of resetting an app's state is that it's universal. You don't have to figure out how to exit some particular screen or state inside an app using whatever odd UI the app has; if you just want to go back to the start (more or less), you know how to do that for every app. My feeling is that this does a lot to lessen my frustrations with app UIs and somewhat encourages exploring app features. This is also an advantage for similar effects that I want to be universal, such as cutting off an app's ability to do things in the background.
(In general, if I feel that an app is misbehaving the last thing I want to have to do is trust it to stop misbehaving. I want some outside mechanism of forcing that.)