Monday 2 July 2012

Android Back, Still Confusing

I was watching the Navigation in Android presentation from this year's Google I/O conference an I can't help thinking that the back button is still far from what it could be on Android. If it takes almost an hour to explain developers how to handle back it simply cannot be easy enough for users to understand. To me the biggest problem with the back button is its inconsistent behavior without any visual hint of the currently active state of the back button.

Improvements in Jelly Bean

In Jelly Bean Google fixed one of the overloaded states of the back button (which was actually already fixed in Honeycomb but got broken on ICS phones) which is the dismissing of keyboard. On JB once they keyboard is open the back button changes to clear down indicator and there's no room for misunderstanding for users.

See this and other UI changes in JB in Taylor Ling's excellent write up in here. (Image by Taylor Ling)



Still confusing

In Android you can easily switch between apps and tasks using the tab switcher, tapping on notifications or triggering intents from other apps. Therefore it is impossible to know what the back button does any given time.

What do you think the back button does in the screenshot on the left? You might get an idea if you read the content of the email but otherwise you can't even guess.







Software Button as Software Button

When I first heard that Google was going to change from physical back buttons to on-screen back buttons I thought that this issue is finally going to get solved. The software button can help users by giving them tips about what is going to happen.

If I share something from the Google Play with my email the back is going to take me back to the Google Play. Why not show that info to the users? Below, you see a very crude draft of how that could look like. Why couldn't the back button show the app it is going to take you?


This would also solve the problem of understanding internal vs. external navigation. When there is no icon users know that the navigation is internal in the app. I would also like to have a special icon for home screen so the users would know that pressing back on the last screen will kill the app and they end up to the home screen.

What do you guys think?

20 comments:

  1. I like that .. this beside altering the "up" actionbar button to actually point "up"! would be great

    ReplyDelete
  2. "What do you think the back button does in the screenshot on the left?"

    It is supposed to take you to whatever state you had been in before (e.g., previous activity). IMHO, anything else is broken, which includes Google's "hey! let's lie to the user" approach of faking a back stack.

    ReplyDelete
    Replies
    1. Hey Mark,

      I agree! But even then it has complications when combined to multi-tasking. If we take the above example but instead of sending and going back I go to home or choose another task from task chooser. Then later I come back to the email compose task via the multi-tasking. Where should the back take me then? Probably still to the play store? I'm not sure. In any case especially in situations like this having this indicator would help the user to understand what happens when the button is pressed.

      Delete
    2. I personally find nothing confusing about the back button. It takes you back to the previous Activity. In fact I love that about Android that the previous Activity can be a screen in the same app or another app entirely and it seems like a seamless action. I found this to be a much better approach than the much lauded cards in WebOS.

      What is confusing on the other hand is the combination of Up and Back buttons. I had to read the developer's documentation about it to understand the difference. There is no way it's intuitive to an end user.

      The other thing that's confusing is that if the previous Activity was another app say the browser, and I switch to Home or some other app and then want to go to the browser, if I open the task list, I don't see the browser screen, but the app that it's invoked (eg. the email app above). That confuses me as every now and then - as a developer who understand stacks. I can only imagine what must be going on through an end user's mind!

      I do like the idea of showing the icon of another app on the back button. But there needs to be a more holistic approach that care of the above two problems as well. I don't know how to show breadcrumbs in a intuitive non overwhelming way. But hey, that's what they pay Duarte the big bucks for :-)

      Delete
  3. From what I'm seeing on ICS the hardware\soft back button goes back in a chronological order, while the back button in the action bar it's there to go back in the upper level

    ReplyDelete
  4. I like the idea with the software buttons. The problem of course is that there is not need to use software buttons. Though I cannot understand it at all, most vendors seem to prefer hardware buttons.

    ReplyDelete
    Replies
    1. Yeah, true. I think that utilizing the soft buttons fully could change minds of the manufacturers'.. maybe...

      Delete
  5. Having watched the comments after the lecture most of the drama came when people insisted on using the old back button behavior in back that had been decoupled and placed in recents. Im not a coder at all but I found the reasoning behind the decoupling and the creation of expected hierarchies to be sound. I think its now a matter of developers implementing the new conventions rather than trying to preserve legacy behavior. Of course this is just my opinion

    ReplyDelete
  6. I'm weary of adding too many meaningless animations and flurries to Android, but what if every forward navigation was accompanied with the previous screen being "minimised" down to the Back button. This could be combined with adding a small icon next to the Back button.

    Of course, you could only do this with a software on-screen Back button, as it would be impossible to know for sure where a physical legacy Back button is positioned relative to the screen.

    ReplyDelete
    Replies
    1. As long as performance didn't take a hit, I'd definitely like this. As far as hardware back buttons go, I would think that the location of the back button relative to the display could be a configurable setting for devices...

      Delete
  7. Even with a hardware back button, there could be a small LCD placed next to it to allow for the little context icon, if they so desire.

    ReplyDelete
  8. I'm not an Android expert, but I think it's confusing to place the icons either on the action bar or the bottom bar. For example, a user has received an Email with a link, open it with the browser in Gmail. Then the user was surfing the web for a while, different URLs. Does it still apply the Gmail icon on the nav bar to quickly go back to his Gmail?
    Also he will see the Gmail icon on the browser URL bar, it might look like sharing icon.
    just my thoughts. May be I like the current mighty back button ;-)

    ReplyDelete
  9. One major issue I see with attempting to present the user with a back button "state" is that, currently, developers can actually override the functionality of the back button within their activities.

    What would happen if a user navigated from app A to app B, and app B overrode the back button to take the user to the apps "home"? Would the back button appear as a standard back button, or as a back button taking you back to app A?

    ReplyDelete
  10. I opened your post in the Android Google+ application, and I noticed that when clicking the home button in the Action Bar, I was not sent to the home screen but rather one step "up". Thus, forcing me to click the home button several times to reach the home screen.

    Example: click a post in Google+ and then click the user profile. At this stage, clicking the "Back" button and the "Home" button gives the exact same result.

    What do you think of this way of implementing home button interaction?

    ReplyDelete
    Replies
    1. It really bothers me that the new Google+ app behaves this way. They don't seem to follow their own design guidelines when you click a G+ notification--
      http://developer.android.com/design/patterns/navigation.html#into-your-app

      The Up button in G+ always go back to whatever you were doing before you got the notification, whereas it should take you back to G+ Home, or at least your stream. If you want to go to G+'s home, you have to get back to the home screen, apps, then G+ launcher icon.

      Delete
  11. Aaaah the baaaack button!

    What's great with the back button is that everyone has an opinion on how it should work. An inevitably, someone will hate it or will not agree. In other words, it doesn't matter much how you handle the back button in your app.

    ReplyDelete
  12. I like the back button and don't have issues with it. The up button though should be like a carat or circumflex, above the logo... I reckon... :)

    ReplyDelete
  13. I can understand why they created the 'up/home' button, but I think it's inconsistent usage by different applications that causes confusion. As a developer I would like the SDK to provide some better guidance and framework for working with the system buttons, at the moment you have to detect it as if it were a keypress, whereas the 'up/home' button is detected in a completely different, more obvious way. Add to this the fact that they now allow you to push other Activities into the 'back stack' for things that haven't actually been shown to the user and the issue becomes even more confusing.

    As for the up button actually having an 'up' arrow, I don't think that's an issue at all, users don't get told about it, it's just a visual clue that the 'home' button does something. I wouldn't really like it to be displayed visually as an up arrow, left makes more sense to me, since most swipe gestures are left/right, not up/down, so it just feels more natural to think the 'previous page' of this activity.

    ReplyDelete
  14. I think the problem is primarily the developer - when developing for ICS+ at least.

    Too often developers hijack the Back button and use it as the Up button - Spotify is a perpetrator of this. This means that when you open and app from another app, or from the Recents button, the Back button no longer works as you'd expect and instead move 'Up' a level within the app.

    If developers stuck to the guidelines more closely this wouldn't be as much of a problem. Blaming the developers is too easy though - Google should have thought about this more carefully when developing the OS.

    ReplyDelete