Today, you can hardly find an app that doesn’t suggest content or services based on your location. Airbnb offers you a room when you’re on a business trip. The Mall of America helps you find your way around America's largest mall via the Mall app. But why are location-aware apps on the rise? The reason is that maps and location services enhance the interactions between customers and businesses.
[Statistics of people using geolocation services in the US from 2013 to 2018 – Statista]
As you can see from the graph above, the number of people using geolocation services on their smartphones has dramatically increased, from 123 million in 2013 to 242 million in 2018. Many business owners ask us to integrate features for determining user locations, mapping, navigation, calculating travel times, and real-time geolocation tracking. These features have already proven handy in ride-hailing, delivery, logistics, and other service industries. Here are just some examples of location-aware apps we’ve worked on:
Brilliant Move lets users pay for deliveries and track them on a map in the app.
PoGo allows travelers to explore new cities, taking them on quests around the most interesting places.
A fitness center platform helps people get around the fitness center, schedule appointments with fitness instructors, order food, and do much more.
We have a lot of experience building location-based mobile apps, and we’d like to share some useful insights to help you get a better picture of how and when to use location-based functionality. In this post, we explain how geolocation technology works and how to integrate it with your app, give some examples for location-aware apps, talk about the challenges of geolocation app development, and suggest ideas on how to create a location-aware app.
What is geolocation and how does it work?
The starting point of working on a mobile app with geolocation is identifying where a user currently is so that an application can use this data to provide the right services. In other words, it's about making an app location-aware. This can be done with the help of a number of technologies.
The Global Positioning System (GPS) determines the geographical position of a user with the help of satellite signals. GPS gives you both accuracy and speed: you can identify a user’s location coordinates down to a foot. But there are some drawbacks, like high battery consumption and low signal when the weather is bad or when the user is inside a tall building.
As an alternative to GPS, Cell Identification (Cell ID) lets you determine a user’s position based on signals from cell towers sent to the device’s GSM/WCDMA/CDMA modem. The good news is that this method works when the GPS signal is lost but the device has access to cell towers. The bad news is that it’s far less accurate than GPS. Actually, the accuracy here mostly depends on how close the device is to a cell tower.
Wi-Fi is another good way to discover where a user is. Here’s how it works for location awareness:
The user’s location data is pulled from the hotspot database that the phone manufacturer collects from the hotspots around a user.
The user’s geoposition is determined based on the signal strength indication (RSSI), which is pretty similar to the Cell ID method, only Wi-Fi signals are used instead of cell network signals.
With Wi-Fi positioning, you can rely on easily accessible infrastructure for defining a user’s geolocation and don’t have to worry about battery drain as with GPS. But you’ll need quite a number of hotspots to accurately define the user’s position and won’t be able to locate people out of hotspot coverage.
This is an improved way of collecting geolocation data about users by means of satellite signals paired with a Wi-Fi or cellular connection. In other words, Wi-Fi and cellular connections assist GPS in finding where a user is. With this technology, it’s possible to identify a user’s GPS position faster, more accurately, and even in areas where a satellite signal is hard to find, like inside a building. Moreover, with this method, devices consume less battery. The only disadvantage of this technology is its cost.
Bluetooth Low Energy (BLE) uses beacons that send signals to users’ devices via Bluetooth. Small BLE devices that work on batteries are easy to install anywhere, but are mostly used indoors. The accuracy of geopositioning in this case is really high. But it takes a pretty penny to use beacons, regularly update them, and even just replace the batteries.
Similarly to BLE technology, Radio Frequency Identification (RFID) requires a built-in reader and a tag. When a user with a smartphone activates a tag, it sends data about the position back to the smartphone. This technology is good for accurate indoor navigation and consumes little battery. However, few smartphones can read RFID tags. You’ll also have to buy quite expensive tags and replace the batteries inside them. Both RFID and BLE are mostly used for indoor navigation, speed tracking, and routine task automation, like checking in at a hotel or turning on the lights automatically when a user gets home.
These technologies help in making apps location-aware. In our work, we rely heavily on a number of third-party services – libraries and APIs that directly engage with GPS, AGPS, Cell ID, and Wi-Fi technologies built into users’ devices for both outdoor and indoor mapping, navigation, real-time geolocation tracking, and estimating speed and time.
What features should you add to your location-aware app?
Based on our experience building location-aware apps, here’s a list of the most common geolocation features that customers request.
Determining a user’s current position
If you’re planning to add location-based search, content, or services to your app, you definitely need to know the user’s current location. Gas Buddy uses location data to help you find the nearest and cheapest gas stations. The app determines your current location, then locates gas stations nearby, notifies you about them, shows directions to the gas station you choose, and allows you to pay for gas in the app.
Or recall the breakout game that made millions of people walk out of their homes in search of fantastic animals – Pokemon Go. This game also tracks a user’s current location to suggest where to find Pokemons and where to rest at a Pokestop. While resting at a Pokestop, users receive notifications of the Pokemons nearby.
[Pokestop in the Pokemon Go game]
To implement these features in your app, you can use a Google Location API (a native tool for the Android platform) and Apple Core Location (a native tool for the iOS platform) technologies, which make use of GPS, Wi-Fi, and Cell ID for accurate geolocation.
Thinking about an app for travelers or building a car sharing app for your local area? In that case, you’ll definitely need detailed maps in your application. Uber, the taxi service giant, allows you to open a map and see where you are and where you want to go to. Another app, Map My Hike, allows you to map all your workouts and build and visualize your hiking routes using detailed maps.
[Tracking and mapping a workout in the Map My Hike app]
You might want to provide your users with detailed information about places around, including addresses, contact information, ratings, and reviews. Let’s look at Foursquare, which allows users to share their opinions on places they’ve visited and displays those ratings and reviews to people nearby. Tripadvisor is another great example of an app that gives details of places to visit. It helps users choose hotels and restaurants with photos, and reviews.
[Information about restaurants and hotels in the Tripadvisor app]
To get the places functionality in your app, you can use the Google Places API, HERE Places API, or Bing Places API. However, our clients mostly prefer to use the Google Places API, as it provides over 100 million places worldwide and significantly improves an app’s location intelligence.
If you’re building an app for drivers, walkers, runners, cyclers, or logisticians, you’ll definitely need built-in navigation with detailed routes, driving tips, voiceovers, offline maps, and so on. This is what we normally call outdoor navigation features.
Audi MMI Connect is an app for Audi drivers to enhance vehicle functionality and navigation. Transparking is an app that helps truck drivers navigate to parking spaces, restaurants, and gas stations. Drivers can choose places based on ratings, photos, and comments.
[A map of the car parks in the Transparking app]
But people don’t always need to go somewhere far away to get lost. Big shopping malls and museums can take hours to stroll around. This is why indoor navigation apps have appeared.
You may have already used Google Indoor Maps, which shows you the plan of a building with detailed descriptions, signs, and levels. One more example of an indoor navigation app is Mally, an application that will lead you through all the corridors and levels of a mall. Mally creates 3D maps of shops and gives you a 360-degree view of every shop in the mall, even listing special offers.
[An indoor map in the Mally app]
For indoor navigation, you can choose from the Google MapsIndoors SDK, Indoor Location Framework, GoIndoor SDK, and Proximity Beacon API, all for both Android and iOS. From our experience, Google’s tools are most frequently used for indoor navigation app development.
To implement outdoor navigation, you can select from the Mapbox Navigation API, TomTom NavKit, and the Google Maps Directions API. Again, the Google Maps Directions API is the most commonly used thanks to its detailed routes and accuracy.
Calculating travel times
Someone who’s ordered a taxi in the rain and someone who’s hungry as a wolf and waiting for pizza delivery both need to know how long the wait will be. This is why taxi-hailing and food delivery apps need to provide users with estimated travel times. Curb, an Uber competitor, tells users the estimated arrival time along with the travel time. Seamless, one of the top food delivery solutions in the US, informs customers how long they need to wait for their food.
[Details on a delivery in the Seamless app]
To get time estimates in your app, you can choose from the MapQuest RouteMatrix API, Bing Route Data API, GraphHopper Directions API, and Google Distance Matrix API. In most cases, we use the Google Distance Matrix API to estimate travel times within an app due to its precision.
Real-time location tracking
Aside from taxi-hailing and food delivery apps, real-time geolocation tracking can be important for, say, a family tracking app. One such example is Life 360, which tracks and shares real-time locations with family and friends.
Logistics products can also benefit from real-time geolocation tracking. For instance, an app called Hawk-Eye Trucking Log Book tracks GPS locations and automatically handles routine paperwork like bills of lading and invoices. Moreover, it provides business owners and auditors with access to location data and paperwork.
[Driving log in an app called Hawk-Eye Trucking Log Book]
From our own experience, we can say it’s a good idea to create a custom solution for real-time location tracking, using third-party tools for real-time push notifications and embedded maps.
When considering the main features of a location-aware app, you can get a bit lost with what industry to choose and what features to focus on. No worries. We suggest some good ideas below.
What are some great ideas for a location-aware app?
The most obvious option is to create your own navigation app to help users find places they need and not get lost in places they’ve never been. You can try to compete with such giants as Google Maps or try and build an app for your local area, like the Tube Map for the London Underground. One more obvious use case is weather forecasts tied to a location, like what the Google Weather app offers. But let’s try and think of more sophisticated apps you can build with location awareness.
You can help people find friends or significant others. This can be done with a dating app that matches single people based on location and interests. Tinder and Happn both demonstrate the power of location awareness for bringing people together.
Augmented reality and gaming
We’ve already mentioned Pokemon Go as a location-aware game with augmented reality. Before it, there was also a game called Ingress that has the same principle of taking people outside to interact with AR objects and other people in the local area. But gaming isn’t the only option here.
You can help people enjoy local museums more, or even improve the experience of stargazers by, say, adding an AR feature to an app for watching the stars. SkyView is an example of such an app, allowing you to watch your favorite constellations from anywhere using AR technology.
No matter where you travel, whether in your local area or to a new country, you might be looking for a good place to eat or stay for the night. Consider creating a service that helps people find a restaurant or hotel based on location, ratings, reviews, and photos. Again, Foursquare is just perfect to show how appreciated such apps are.
You can focus on events, allowing people to discover new concerts, open mic sessions, plays, and so on. In that case, location awareness plays a really important role. Check out Bandsintown and Eventbrite, apps that use interests and location to suggest events nearby.
Geolocation integration will surely come in handy for taxi-hailing, food delivery, on-demand delivery services, and logistics. Mobile SCM is a perfect application to help logistics and supply chain professionals. With this app, logisticians can track a fleet of delivery trucks, reconcile inventory, and monitor customer shipments.
You can create a location-aware concierge app that informs hotel personnel of guests coming, provide users with real-time information on their reservations, and informs users of the events in the local area. AppHotel is just one hospitality industry app that uses location services. It helps guests to check in, gives details on nearby entertainment, and sends geo-localized push notifications about restaurants in the area.
Health and fitness
Runners and walkers often want to know the exact number of miles they’ve run or walked along with their speed. Moreover, users often plan routes before working out and enjoy sharing their achievements on social networks, pinning the locations they’ve gone to. This is why location awareness is important for health and fitness apps. Check out the Runtastic and Nike apps if you’re thinking of developing an app for sports lovers.
Imagine that your kid is asleep and you really need to buy some food for breakfast. But you’re worried about your kid going somewhere before you get back. If you had RFID tags placed around your house, you could be notified if your kid wearing the RFID reader on his clothes went somewhere and run back home to make sure they’re fine. Or you can be the owner of a car used only for business purposes and wouldn’t like the car to be used by anyone else but you. With GPS tracking, you could determine certain boundaries for the car and get notified if it crossed them. Spyzie and GismoControl Family are examples of apps for geofencing.
Aside from tracking, geofencing can be used for:
Marketing, such as for push notifications about discounts once a user has come into a shop. The Sephora app does this.
Controlling a smart home, like turning on the lights as you open the door or unlocking a smart lock when you get close to it. Yeti Smart Home Automation is just one of many apps for this.
Security, like apps that notify you of any activity at home while you’re out: fire, water leakage, or strange movement. Apple Maps actually has this feature.
For countries and cities often affected by floods, earthquakes, and other dangers, emergency apps can save people’s lives. Disaster Alert informs people of natural disasters and other dangers.
We can take this more local and think of bank workers, who sometimes suffer from robberies, or people who have health issues. A panic button app would be a great idea so that people in danger can be quickly found and saved. SOS Emergency and ICE Standard can be taken as examples.
There are plenty of great ideas for your app. But aside from the great features, there are some important issues you need to know about to make your geotargeted app really successful and to avoid some serious trouble with users.
How not to fail when creating a location-aware app
The first thing to worry about in a location-aware app is data security. Otherwise, you risk your reputation and money. This is exactly what happened to Uber when they didn’t take all the necessary measures to protect user data. As a result, rider and driver data of about 57 million people was exposed. But Uber decided to keep this breach a secret and paid $100,000 to the hackers instead of properly informing every user whose data had become vulnerable. As a result, Uber ended up paying $148 million to cover consequences of the data breach. But wait – there’s more.
Uber was accused of abusing access to the user data of celebrities, politicians, and even personal acquaintances. Uber’s employees even spied on Beyonce’s account and revealed her location to fans, breaking the law and hardly damaging Uber’s reputation.
Uber promised to learn from these mistakes, so why don’t we do the same? As you can see, the security of user data is vital for a location-aware app. Make sure that your app is compliant with the highest standards of the country or countries where your target audience is. For example, being compliant with the General Data Protection Regulation is crucial for any company that stores and processes data of users in the European Union. For US businesses working with user data, it’s necessary to comply with the Patriot Act, Safe Harbor Act, and Privacy Act, along with the Privacy Shield security standards. Most probably, you’ll need to consult a legal adviser and hire data security professionals to make sure that you protect the user data in your location-aware app.
Hopefully, our advice can help you with choosing the industry and idea to create a custom geolocation app and explained how to build it. If you need help from experienced app developers, we’d be glad to walk you from concept to fully operating product.