All Android phones must have a back button for them to be certified as Android devices. Most phones, until recently, ship with physical back button. After announcement of the latest Android OS, Ice Cream Sandwich, it is now possible to build phones without physical buttons and use an on-screen buttons instead in the same fashion as on Android Honeycomb tablets.
So, What's the Problem?
While it is very easy for us, the developers, to understand what pressing the back button does it isn't so easy for the end users. The back button behavior is inconsistent.
The back button can perform any of the following actions:
- Go back to previous screen (activity)
- Dismiss a popup
- Terminate a long running process
- Close on-screen keyboard
- Go to previous page on browser
- Exit the running app when on the last activity
- Return to previous app when on the last activity and the app was launched through intent from another app
An added problem comes when trying to understand when the back button cancels a running operation and when not. For example, when installing apps from Android market tapping back takes users to previous screen and leaves the installation process running in background. I know there's a rule that back cancels operations that are presented users as popup progress indicators and any other cases it is used to navigate. But is that what users expect? Do users have to think before pressing back to understand what is going to happen?
One More Complication the Up Button
In Honeycomb and now also in ICS action bar has became part of the core platform APIs and hence an integral part of Android UIs. The new API allows changing the top left icon's functionality from what it was before. It can be used as "up" button now (also adding the visual indicator next to the icon). But what is the difference between pressing back and tapping up from the action bar?
According to guidelines difference between back and up is that up takes user one level up in the information hierarchy and back takes user back to the previous screen.
See the following example scenario. User navigates through screens from one to four.
On screen 1: Pressing back would exit the app. Up button on action bar is not active.
On screen 2 and 3: Back button and up button both take the user one screen up. Either screen 1 or 2.
On screen 4: Back button would take user to screen 3 and up button to screen 2.
Is this forcing users to think before taping or making them endup on different screen than they thought.
What About the Home Button
Home button adds some additional confusion in some situations. Lets take the previous scenario as an example again. On screen 1 pressing back button or home button will both take user to app's home screen (assuming that the app was launched from home screen or launcher drawer). What happens in the OS is different in each situation though. If users clicks the back button the app is actually terminated as the last activity is closed. Pressing home button, on the other hand, will not close the activity and the app will only be paused and if the OS doesn't need more memory and kill the app it will still be running and in the same state if the user returns to it later.
My Thoughts, How Should it Work?
Before Honeycomb action bar functionality was clear. Top left corner always took user to the app's front page. That was a familiar concept that was used in the web for ages. For example Android Market logo always takes you to the front page.
I think this is how Android apps should work. The new action bar up button is more confusing than helpful.
And what comes to the back button there's really never any need for back button to exit the app. Home button will take users to home screen and swiping in the multitasking menu will kill the apps if needed. As on ICS on new phones all the buttons are on-screen the back button could simply get disabled when user reaches the last activity if the app was launched from launcher icon. This would make some of the confusion to make away but still wouldn't solve all the problems.
Don't Make Users Think
Navigation is important. Users should always know where they will endup without thinking. Even a slight confusion in something so central as navigation can have big influence on general user experience. I don't think there are easy answers for this problem but I think it is a problem on the otherwise great Android platform. What do you think?