4.1.2, Locations, Google Apps, and a UX WTF? Moment

If your device (e.g., Galaxy Nexus) got the 4.1.2 upgrade, and you try using Maps, you may encounter problems using GPS. You may get a Toast with “Please enable Google apps location access”.

The solution for you, as a user, is to go into Settings > Accounts > Google > Location settings, and in there slide the “Let Google apps access your location” Switch to ON. That should clear up your Maps problem.

From a usability standpoint, this little incident has a number of interesting lessons:

  1. Do not ship undocumented user regressions. Maps worked fine previously; 4.1.2 broke its GPS access. The fact that the user needs to go in and adjust a setting is not a problem, except that the user does not know that this is the case. Moreover, the user did not find out about this as part of installing the 4.1.2 upgrade, but only when Maps broke. This is not say “do not ship regressions”, but do not ship undocumented ones. Whether at the OS level or at the Maps app level, the user should have been proactively notified about this change, by something less obtuse than this Toast.

  2. Do not use Toasts for “load bearing” issues. A Toast is great for an advisory message, one that if the user misses, it is not a major problem. If the issue is something that is impeding the user’s use of the app, though, you need something more persistent. If you do not want to use a modal dialog, use a Crouton or the equivalent.

  3. If the user needs to take an action to fix a problem, lead the user to the action. Another problem with a Toast is that the user has no way of immediately taking whatever action you may be advising, since a Toast is modeless. Instead, the user has to guess what you mean, based on the text of the Toast, which may be problematic. A dialog or Crouton offer the possibility of buttons or links or something. In this case, the notice about the required setting change could have a link to that individual screen in Settings, or at least to the Google account page. Since the Maps app already does this when GPS is disabled (to lead the user to the location settings to go enable it), I do not know why they failed to take this approach for this change.

On the whole, change is good. Obtuse change is bad. Obtuse change when the user is trying desperately to catch a flight and cannot understand how to get Maps to use GPS to get a new route past an accident is really, really bad, and may make the user cranky, causing the user to write a blog post that ends in a run-on sentence.

Want an expert opinion on your Android app architecture decisions? Perhaps Mark Murphy can help!