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
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
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?