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.
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.
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.
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.
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.
To avoid having apps waste screen real-estate, mobile devices feature a couple of system buttons.
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):
Android Ice Cream Sandwich:
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
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.