What are the Different Options for Location Aware Mobile Apps?
Many product owners realize that location can play a huge role in an iOS or Android app. But there are many options and permissions to consider when building in location-awareness.
Location has a long history with the smartphone; it was even a key feature in the launch of the original iPhone. When the iPhone 3G moved from cell-tower triangulation to full-blown dedicated GPS, location took a permanent place in the fabric of mobile apps. However, like all things in mobile, the breakneck pace of innovation has caused an explosion of potential options and it can be somewhat confusing to understand the subtle differences.
Here’s a rundown of the different ways that mobile apps can access and use location:
Geolocation allows you to determine the rough location of the device. If you’ve ever used one of the countless store locators, or searched for a restaurant nearby in Yelp, you’re probably familiar with geolocation.
Geolocation works via Assisted GPS, which uses some pieces of data to quickly obtain an accurate position of where you are based on a network of satellites orbiting the earth. The result is that you can determine a lattitude/longitude point on the map where the given device is located. The accuracy of that point will generally improve as the device has more time locating satellites and processing data. This is why you’ll see the phone show you as a big circle on the map, which then shrinks down into a small point as it gets more confidence in your location.
Geolocation is the most mature of the different mobile location technologies. As such, it has universal support across Android and iOS and comes with very few caveats. You’ll want to target geolocation when you are getting a broad location of a user (i.e. determining where the nearest Starbucks is or if they are currently in a brand’s store). The key is that the location is broadly accurate, but not fine-grained – e.g. you can tell which Walmart they are in, but not which aisle.
- iOS: you’ll need to ask the user before you can access their location. Normally this is the “when in use” location permission, as your app will not be accessing their location when you’re in the background.
- Android: as part of your app’s listing in Play, you’ll need to require coarse grained location at least. However, when using Google Maps, Google also suggests fine grained location and a few others for things like downloading/caching tiles.
Geofencing expands on geolocation technologies to create a virtual “fence” around a specific location. This allows for notifications, actions, or UI change to occur. As an example, let’s take a look at how Starbucks uses Passbook to show you your loyalty card when you’re at one of your favorite locations:
First, inside the app you sign in and enter your loyalty card details. You then choose specific location(s) you frequently visit and it stores those along with your loyalty card in Passbook. Each of those locations is marked by a specific circle around a geopoint – this is the “fence”. Think of it as an invisible circle, with it’s center in the middle of the store and covering the area around the actual store. When you drive up to the window and hit any button on your phone, your location is compared with all of these fences. It then determines you are, in fact, at a specific location, so it shows you and easy lock screen alert you can swipe to bring up your card to pay.
Geofencing is great for any task or activity that is specific to a geographic context. For instance, OmniFocus – my task-management app of choice – allows you to make a list for a specific location. So if I store a few things that I need at Lowe’s, the next time I’m there, it’ll pop up and remind me of the list of things I needed to get there. Because your app knows the user is in a specific geographic context, these sorts of interactions can be very powerful if used precisely. Short circuit the longer process of remembering your app, launching it, and drilling down to the context by taking users directly from the alert to the context.
- iOS: As the fence will be active and alert your app, you’ll now need the more ominous sounding permission that tells users you can track them all the time, even when in the background.
- Android: The fine grained location required for geolocation is also required here, but you’ll need the additional permission of location hardware.
BTLE / iBeacons
iBeacons are small devices that transmit a specific signature over Bluetooth Low Energy (BTLE). By placing them in specific locations and examining the signal strength, they can provide a much more precise location of the user’s device. Compare this to our geolocation example: the app knows not only which Walmart you’re in, but could know which aisle or give you specific directions in the store to get to the item you were looking for. As such, they are particularly useful in the context of retail.
But they are useful in non-retail apps as ways of providing location-aware context. One novel use by MLB offered up a video about the Mets’ iconic statue when fans were close by it in Citi field. Location-aware content, much like geofencing, can be a great way of reducing friction in your interface. Rather than look through a long list of different things in a store, museum, or ballpark, the app can serve up the precise content that is relevant to where the user is currently standing. When you make the interface fall away into the background, you give the users a more personal interaction that feels almost like magic. As Golden Krishna has been proclaiming, “The best interface is no interface” – or in this case, far less interface.
The big caveat – on Android – is that BTLE is not uniformly supported across the many devices and manufacturers. A lot of the flagship handsets from most major brands will support it, but you’ll need to be careful to degrade gracefully if it’s not supported.
- The permissions on Android and iOS are both the same as geofencing.