I'm a fairly new user of Android and i'm annoyed by the fact that almost all apps lack a "close" button.
Is there any reason why developers don't make such an option?
The major mobile touch screen operating systems (iOS, Windows Phone 7, Android) don't trouble the user with "closing" applications in the way that desktop applications do. This simplifies the experience, making applications appear seamlessly built into the operating system.
Typically, applications on these operating systems will "pause" when the user returns to another application or the home screen, using no CPU time but remaining "asleep" in memory. If the current application needs more memory, the operating system closes down the least used application, freeing up memory that can be used by the foreground application.
The answer is: you simply don't need to close applications manually on modern mobile operating systems.
Closing iPhone applications from within the app itself goes against Apple guidelines, so most developers would not take this route for fear of the app being rejected from the App store. Quitting from within the app "looks like a crash to the user." (Apple's words, not mine).
There's a question on StackOverflow about this issue.
Personally, if I were to develop an Android app I wouldn't include a close button either. As others previously mentioned, it's too easy to accidentally hit the close button inadvertently.
What I would do, is include a close/quit command as an option that comes up when the user hits the Menu button. It just feels like it should be a menu option instead of a UI element IMO anyhow.
I think it's important to include a close/quit function in an app to try and save on battery life and increase available memory for other apps that the user is actually using.
Honestly, I don't think the answer to this is UX related. It certainly can't be related to the size of the 'close' button being too small-- tablets are plenty big and don't have close buttons either.
I think the answer is just system resources. Mobile devices are slow, and it's a lot easier to switch between apps if they stay open in memory.
If you're a Mac user, you'll also be disappointed to know that the next Mac OS X (Lion) is reported to have this 'feature' as well-- the OS will determine when and which applications should be closed.
On a personal level, I'm totally with you. Any power user needs to be able to close apps on demand.
It's because of the way Android is designed.
The operating system manages the memory in a very different way to the way it's done on a desktop computer. The same goes for CPU.
When you don't have an application on the screen (in the foreground) it no longer takes up any CPU. That is because unlike with desktop applications the OS knows that you can't be using it, so why bother keeping it running.
At this point the memory it was using will still be allocated to it. However, if the operating system needs more memory for when you open a different application it will archive the memory that the older application used (not exactly, but you get the idea). This then frees up enough memory for other applications to run with no slow down.
If you then relaunch the application which had its memory archived the OS the has the option to unarchive that memory and start the application exactly how the user left it. Again, this isn't 100% accurate but you get the idea.
Essentially if you navigate away from an application it is no longer running. It doesn't use any CPU and the memory it uses will be aggressively cleared whenever the OS needs it. Therefore you will see extremely minimal battery life gain by closing an application.
The exception to this is when applications make use of services. Services are separate from the bit of the application that you see (the UI). The application has the option to keep these running when the foreground application closes. They are designed to be short lived and shouldn't be open for long before they finish themselves.
In the case of services it is possible to gain battery life by closing them, however only very badly designed applications should have services that run with no foreground application and drain the battery life. In this case the answer isn't a close button, it's to design the service better.
With tiny little touchscreens and fingers typically bigger than the touch points and touch points normally too close together for said fingers, it would probably be far too easy to accidentally tap the close button when you intended to do something else.
The only way that would work would be to have enough space around the close button where there isn't any other action that you would try to tap and accidentally hit close. And doing this (again, on small touchscreens) would waste way too much space in the application for a function that is handled natively by the device. This is similar to wasting space on a web application for a "Back" button only much worse because your available space is much smaller.
You have turn off buttons for certain apps, especially the ones that should run in the background.
The principle of hiding and not shutting down is borrowed from Mac OSX where it helps the loading time. Though the app is not using the processor while hidden, it starts instantly when you open it. I guess that for Android this also helps since the apps you use more often are running already.
Typically, unless the phone has multi-tasking, the app either closes or goes into a sleeping state when you hit the home key. WinPhone7 does this much to my annoyance.
On a Nokia, if you hold down the home button it pops up a list of the open apps and you can then close the ones you don't want to keep open.
On an iPhone (and presumably an iPod) if you double-click the home button it does the same thing.
I haven't tried Android but I'd imagine they have something similar.
The reason why mobile apps don't have a "close" button, is because there is no need for it.
All mobile devices are built with a button that fullfills the role of "closing" an app. For those that don't, the OS provides a replacement interface.
The problem with mobile devices (excluding notebooks/laptops), is that they come with a touchscreen instead of a keyboard or a mouse. Because of that, every interactive element has to be large enough for the user to touch it without accidentally touching something else.
Implementing a "close" button would therefore mean losing a lot of screen real-estate, especially considering that closing, minimizing or suspending an app needs to be doable at any time; nobody would want to navigate to a specific part of an app, just to be able leave said app - especially when it just crashed.
To avoid having apps waste screen real-estate, mobile devices feature a couple of system buttons.
iOS devices have the "Home" button, with which apps can be suspended. Double clicking the button will display the application switcher, from where you can close every suspended or running app. The "Home" button therefore effectively replaces the "close" and "minimize" buttons.
Android offers a "Home", a "Back", and an "Apps" button. The "Home" button suspends the current app, and the "Apps" button reveals the application switcher. You can also suspend an app using the "Back" button, if the app can't go back any further, or with the "Apps" button, if you touch anywhere on the screen except on an app.
Windows Phone offers a "Home"1, a "Back", and a "Search" button. The application switcher is accessed by keeping the "Back" button pressed; the "Search" button simply opens a "Bing" app. Aside from that, the buttons behave similarly to those on Android, except that if you press the "Windows" while on the "start" screen, you will switch back to your previously active app. Also, the "Back" button does not suspend the app, it actually closes it2.
Windows RT offers a "Home"1 button. That button behaves the same as on Windows Phone3.
Naturally, this opens the question: Why not make closing an app obvious? Why waste the little memory available on mobile devices?
The truth is: the memory isn't exactly wasted. As long as there is enough memory left, there is no need to free more. As soon as more memory is needed, however, the system will automatically close a suspended app.
1: Officially called "Windows" button.
2: As of Windows Phone 8; according to rumors, Windows Phone 8.1 will change the behavior of the "Back" button to match Android's.
3: As of Windows Phone 8; according to rumors, Windows Phone 8.1 will have a long press action.
So, all answers here are explaining the theory quite nicely, but are overlooking two important things (or one essentially):
Drag 'app' (well technically it's not the app, but lets not get into that) to the right or left to kill. Additionally I believed Samsung provided their own task manager even in older versions of Android.
Hit minus sign to kill app.
On both Android and iOS a mechanism has been build to quit apps. No matter the far greater memory and CPU management background apps do have an effect on your phone/tablet. It's smaller than on desktops and if you're not running any huge apps you won't notice, but my main point is just that it's not as simple and one sided as the other answers spelled out.
Either way, including close buttons inside apps themselves still makes little sense, just like some modern desktop apps rely on the OS to provide to UI to close an app (the window's close button or similar interfaces) removing it from their own menus (mind you, this is a minor trend, not even a major trend). to provide the
Mobile somewhat blurs what it means to "close" an app. Conceptually, apps are never "closed"; they're just "put away". When you exit to the home screen or switch to another app, the previous app is suspended. It might be kept in memory, or its state might be saved to disk and its process terminated. To the user, in theory, there's no difference, because next time you switch back to it, that state is restored and you're back where you left off.
Unfortunately many real world applications aren't well behaved. They don't save their state properly, or they return to their "main" screen when switched to. Also the OSes don't always do a good job of managing memory, hence task killers. (I find that my Android devices lag severely if free RAM drops below 100MB, so I have to manually terminate some apps by swiping on the recent app list.)
On the other hand, there are also background services, which do require explicit start/stop controls. For those, your app should probably provide a way to stop them. If your app isn't using background services, then it should be designed to give a consistent user experience whether it's closed or not.
Unfortunately it's not always clear how an app should respond to various events. e.g. when I switch back to it again, should it return to the screen it was last at, or to its main screen? Should the back button go back to the previous screen or to the previous app? These are the real difficult questions, and the answers depend on the app, and might involve some effort of trying to predict what the user wants. (If I open my GPS app after asking for directions a few minutes ago, I probably want to see them again, but if I asked for them last week, I probably don't care about them anymore.) But anyway that's a bit of an aside; the main point is that you don't really "close" apps, so a close button is unnecessary.
The lack of an exit option in mobile apps has always frustrated me from day one, and is all about user experience. I don't care how the device consumes and manages resources, but being able to run, use and then exit the app is a much more satisfying experience than just leaving it hanging there in limbo, everything seems much more orderly and tidy. I guess an analogy might be, running and not exiting an app is a bit like getting a drill from my workshop to put up a shelf, but just leave the drill hanging around. I like to put my tools away when finished. Being able to exit an app gives me closure on what I'm doing, and means I've finished what I'm doing.
So having an exit button is about user experience, not so much a technical one, classic example is windows 10 on a 2 in 1 laptop, when you switch to tablet mode, all exit buttons disappear!! Ridiculous.
most apps, games and some text editor, really closes themselves whenever i hit the home button, so I cant came back to work with them again. I th a close app option will let the system know if I really want to keep that particular app open in a suspended state, and dont force to use that allocated memory even if I open another app, I'd rather preffer the system ask me for memory so I know if I need to close some other apps or services other than that particular app I was using. For example, jetpack joyride closes if I press home button, even if its paused.