How to track user’s location with high accuracy— (Vol.1) Introduction of CoreLocation

Tracking a user’s location is the core feature of apps such as Nike+, Pokemon Go, and Uber.
I’ve been making a running app from the time of iPhone3.1, and it took a lot of tries and errors to get accurate location information under various environmental condition. As Pokemon Go is getting the people’s attention back to location technology nowadays, I’ll share basic and practical knowledge of iOS location technology.

I will write 5 articles about location tracking technology on iOS, and after that will write about 5 articles on location tracking technology on Android. Those posts will be under the Publication of Location・Hack・Note.

Overview of Location-related technology on iOS

There are 4 key location-related technologies in iOS

  • Standard Location
  • Beacon Ranging
  • Visit Monitoring
  • Significant Location Change Monitoring

Standard Location is to track a user’s location periodically using GPS, which is the focus of this series of blog. 
Beacon Ranging is detecting a user’s approach to iBeacon devices. 
Visit Monitoring is sensing the information of the user’s visit to a certain location such as how long a user stayed at a certain location. 
Significant Location Change Monitoring triggers events when a user steps into a range of a certain geographical spot. This technology is also called Geo Fence or Region Monitoring.

In this series of blog posts, I am going to focus on Standard Location — getting user’s location constantly using GPS

In the next Medium post, I’ll build a sample app project and explain how to implement the location tracking feature for iOS.

Official Documents

It is always good for you to have quick access to official documents. Here are the four most important documents from Apple. From the next blog post, I will often refer these documents.

Location and Map Programming Guide

  • overall doc summarizing various location-related technologies and options available for iOS developers; also includes the links to other related documents

Most important part in the document above for getting GPS location information (i.e. latitude and longitude values) is Getting the User’s Location.

Core Location Framework

While implementing the location tracking feature, CoreLocation is the framework which you will heavily use. Here is the reference of CoreLocation Framework. CLLocationManager class is the most important class.


Displaying Maps

This is not mandatory knowledge to get users’ locations, but when you start making something with locations, you’ll want to show these locations on the map for debugging purpose at least. So, showing a map and plotting locations on it are always the steps which developers will take. This doc explains how to show a map on your app.

Next post — Getting GPS Locations

If you need any dev help..

I’m running an app development studio in Tokyo called Goldrush Computing.
If you need any development force to empower your app with location tech magic, feel free to contact me any time.