Key Concepts: CLLocation Manager
To monitor the phone's location we use CLLocationManager. CLLocationManager has a delegate property that should be set to a ViewController that conforms to the CLLocationManagerDelegate protocol. The key methods to implement are:
We can convert a coordinate pair to a human-friendly address string using CLGeocoder's reverseGeocodeLocation.
Though we can convert an address to a coordinate with CLGeocoder's geocodeLocation method, this will not work for more general searches, eg. McDonalds because CLGeocoder expects there to be only one result for its query. Instead use MKLocalSearch.
We can get directions between two locations using MKDirections. Most of the new tools we learned today take block parameters. Don't forget that these blocks are executed asynchronously!