8

I display a map in my Android app, and on that map I have an icon button that's used to fetch the current device's location. The button is in the top-right corner in the image below, and the current location is displayed as a blue circle:

Map image 1

Constantly fetching the device's location is battery-intensive, and in my app it's not necessary, so I fetch it every few minutes; when the user taps the current location button, I display the most recent one.

In the event that the user wants an up-to-date, accurate location, I provide additional functionality: When the user taps the button, there's a 3-second window where he can tap it again and it will fetch the most accurate location. There is currently no visual indication to the user that this window exists, just a popup message after the 2nd click that the most accurate location has been set:

Map image 2

I haven't done any research to support this approach. It just seems to me that a current location button might be in the same class of buttons that users would tap repeatedly to ensure they achieve the desired effect (for example, C & CE buttons on a calculator).

My questions are: Should this really be done, or is it bad UX? Would it be sufficient if some visual indication were provided for the 3-second window, or is the entire approach wrong?


After the great answers I've gotten here, I've realized that I was needlessly worried about battery drain, so I've decided to eliminate the double tap and set the behavior so that it always tries to get the most accurate location. The user likely won't be using the button often enough to cause a noticeable drain on the battery.

  • 1
    Second tap on a UI device means undo first tap, or should in my opinion anyways – Evorlor Jan 6 '15 at 0:34
  • 1
    You should at least update the picture to an update icon so the user has some indication. – Jon Jan 6 '15 at 0:43
  • 2
    Can you scale the blue dot to reflect the precision of the location? I've you've use a low-quality fix, have a high DOP, or it has been a while since you got the fix and your use case assumes the user could be moving around, then the position uncertainty is larger and you should cue that to the user somehow. – RBerteig Jan 6 '15 at 1:30
  • @RBerteig: Thanks, that's a good idea, and I think the precision definitely can be approximated based on when the last location fix was retrieved. – seand Jan 6 '15 at 2:13
8

So I did my thesis research in grad school on wayfinding and identification on mobile devices and one of the things I noticed constantly was that while people were out completing the test, there was a HUGE reliance on the blue dot for people to show them where they are in the real world. That was why most of my users didn't do well on navigation style tasks.

I know that it's a huge battery suck, but it might be worth it to have the user's location update more frequently than a few minutes. Especially if it's something where people will be looking at it frequently (every minute or so). I think people understand when they get into an app with navigation/GPS capabilities, it will be a pretty solid battery suck.

If you do want to stick with updating every few minutes, I wouldn't make any kind of double tap on the GPS button. Most people nowadays think of the first click as finding their location and the second as orienting the map. I would take the 3 second delay off and make it so if the user hits the "Find Me" button, they are always getting the most up-to-date information with another tap either orienting the map or updating the location again. Also consider adding some kind of notification to the user telling them they haven't updated their location in a while and they should think about it.

  • 1
    I had forgotten about how the same button in the Google Maps app (and perhaps others) functions. It might not be the best idea to deviate from that, and just fetch the most accurate location with the first tap. – seand Jan 6 '15 at 1:55
6

Double tap is not a widely acceptable navigation pattern on a touch user interface. Therefore I would discourage using it unless you indicate it to the user that if they click twice then they would get a more accurate location set. You could visualize it with e.g:

  • a different icon during these 3 seconds
  • change of size of the icon - bigger, standing out during these 3 seconds

The other idea is to use a long-press for the most accurate location and short-press (standard tap) for an ordinary location.

I hope this can help or give some inspiration. I am curious how you will solve this problem- please write what you've decided to do with it :)

  • Slight disagreement; it's not widely used for major functions, it's widely used for higher functions and potentially for utility-based apps. – Jamezrp Jan 5 '15 at 23:22
  • I think users are less likely to long-press an icon button than press it twice, but thanks for the ideas on how to indicate to the user that the button behavior has changed. I'll update you with what I decide. – seand Jan 6 '15 at 1:48
  • 1
    If you're going for long-press, then consider having an expanding "bubble" in the icon while the user's holding it. This is becoming increasingly common. – wchargin Jan 6 '15 at 3:48
  • After the great answers I've gotten here, I've realized that I was needlessly worried about battery drain, so I've decided to eliminate the double tap and set the behavior so that it always tries to get the most accurate location. The user likely won't be using the button often enough to cause a noticeable drain on the battery. – seand Jan 7 '15 at 23:32
3

I agree somewhat with @adam.heleniak, though I do believe (and have seen many examples of good) double-tap gestures work just fine. In the case you are using it, however, that's a poor UX. Users have no reason to ever double tap on it to get their location. Furthermore, the function itself is used in a multitude of other map apps, where a single tap will initiate the location check-in.

What you could do, however, is have a single-tap be to center (without pinging a new search again), and tapping a second time (not a double-tap gesture, just tapping again) will initiate a search. That way it's a dual-purpose button without any fancy (unnecessary gestures) that still does what the user needs and remains efficient for data/power consumption.

3

BDD's excellent answer provides reasoning why you should update the location more frequently than few minutes. This is especially important when the user is moving out of the blue circle more quickly than the circle can be moved to the new location.

However, if your app really does not require updates any more frequent than just a few minutes, I would suggest the following alternative approach. For the purpose of the answer, I would take "few minutes" to mean "3 minutes".

  • 00:00 (mm:ss) - At start of app, refresh automatically.
  • 03:00 - 3 min elapsed. App is still on screen, refresh automatically.
  • 04:12 - User tapped once on the button. refresh location and reset timer. Also, hide button.
  • 04:15 - Fade the button back into the screen after 3-second delay.
  • 07:12 - 3 min elapsed. App is still on screen, refresh automatically.
  • 09:45 - User tapped once on the button. refresh location and reset timer. Also, hide button.
  • 09:48 - Fade the button back into the screen after 3-second delay.
  • 11:23 - User tapped once on the button. refresh location and reset timer. Also, hide button.
  • 11:26 - Fade the button back into the screen after 3-second delay.
  • 14:23 - 3 min elapsed. App is still on screen, refresh automatically.
  • 17:23 - 3 min elapsed. App is still on screen, refresh automatically.

The problem with your original approach is that once the user learns that a double-tap is require to truly update the location, the user can incessantly hit the button and thereby defeat your original intention of avoiding battery drain. By allowing the user to refresh on demand by tapping the button just once, you keep the user happy. And by enforcing a short tolerable delay, you ensure that the user does not poll for location incessantly.

There is another approach taken by some mapping apps, which is to use a simple toggle button. When toggled on, the app will frequently poll and update the location (with very short delays). When toggled off, the app doesn't update the location at all (the user is free to explore the map manually).

Also note that most battery drain comes from screen backlight and GPS usage. As long as you use mobile-tower-based location data and WiFi-based location data, you don't have to worry too much about battery drain. But whatever you do, never force the user to turn GPS on, just to be able to use your app.

2

enter image description here

First of all, I suggest to move your location button to the "bottom-right" corner, it will be more accessible to the user. Top-right corner is too far to reach with a thumb (when user is using the phone with one-hand).

Secondly, if you are pulling the current location every few minutes already and displaying it to the user, then tapping the "location" button once should pull the accurate location. This way you can eliminate double tapping altogether.

1

I was thinking more or less the same as @ADTC.
The problem with this UI is that it is deceiving the user, by not fully updating the location when the "update location" button is tapped.
I would forget about this battery saving strategy, and try to find others, like for example not updating anything when the app doesn't have the user's full attention.
Fading the button is like communicating that there is an ongoing countdown: I'd consider communicating something like "updating location in 10, 9, 8... seconds" for example displaying the actual countdown seconds in the button.

0

No. It goes against the user. If they click something once, it should do the exact same thing each time after, because it is counter-intuitive for a single button to have two functions, unless both are clearly shown, which at the same time, is also bad, because you will have to long a description on too small a space. A way to describe both, if this is the way you have chosen to go, is a simple hover tool tip, as this is hidden until the user hovers over the button.. The only acceptable way you can implement this is in a toggle button, as this is widely used in many programs.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.