CLLocation represents a point or vector and can be detected by several methods (GPS, Wi-Fi, Cell Towers). Of course, it uses Skyhook technology to retrieve accurate location results. Each CLLocation consists of properties such as the coordinate itself, altitude and timestamp.

There is a manager for all our CLLocations, and it helps to start or stop the location service. There’s also an included delegate which you may choose to use for location changes.

MapKit is how we can use Google Maps in our apps. The class MKMapView helps to display maps, satellite images or hybrid images. Annotations which are based on CLLocations can also be added to the map. MKMapView also has a delegate that helps to detect when it is zoomed or panned.

For MKMapView itself, it has a couple of properties, such as the region, centerCoordinate, mapType and annotations.

Annotations are pins which you can add in Google Maps. It has properties such as title and subtitle, which are entirely customizable. MKPlacemark which is based on MKAnnotation, goes a step further and converts human readable addresses to annotations. So if you create an MKPlacemark with a postal code, it will automatically map itself on the MKMapView.