
Programmatically create User Interface through use of custom extensions
Set root view controller
Configure MapController Interface
Configure LocationRequestController Interface
Enable location services
Presentation logic for LocationRequestController
Request user location
Display user location upon dismissal of LocationRequestController
Create custom region in map view around user location
Center map on user location with animation
Create subclass for SearchInputView
Add to MapController
Configure view components of SearchInputView
UISearchBar
UITableView
Implement functionality to expand/collapse input view
Use enum to keep track of expansion state
Implement swipe gesture recognizers to activate animations
Implement search bar functions through protocol
Implement expand/collapse functionality with search bar functions
Add center map button
Implement action handler for center map button to re-center map on user location
Discuss problem with animation of center map button
Implement protocol function to animate center map button with input view
Implement functionality to locally search map with a given query
Implement protocol to execute search
Add location annotations to map view based on search results
Remove annotations when user executes new search
Load initial search data and annotation so map view is not blank on app launch.
Set data source in SearchInputView by passing search results structure to SearchInputView
Use table view functions to configure cells with search data
Calculate distance to each search result location from user location
Move selected location cell to the top of table view
Collapse input view to partially expanded when location is selected
Add directions button to selected cell
Open maps to get directions from user location to destination
Generate route from user location to destination and display on map
Implement functionality to select location from table view and have that location's annotation get selected on map view
Implement functionality to create custom region on map based on user location and destination
Zoom to fit user location and destination annotation with route
Implement a cancel button that removes routes and zooms out to show all locations from original search
Disable row selection so user can't generate multiple routes on screen at once until cancel button is clicked
Disable search bar editing until cancel button is clicked
Remove center map button while cancel button is showing so user can't zoom out of selected annotations and route view
Understanding the MapKit and CoreLocation frameworks are fundamental components of becoming an advanced iOS Developer. In this course, I teach you everything you need to know about the two frameworks from the ground up, from the basics to the advanced stuff.
You will also learn how to structure your code like a professional, write super clean and reusable code, and implement some cool animations and functionality along the way!
You're not just learning how to work with map kit here, you're learning how to code like a pro, from a pro. My name is Stephan Dowless and I have been a professional iOS Developer for 4 years now. Take a look below to see what you will be learning in this course.
What you will learn:
MapKit & CoreLocation
How to enable location services
How to request user location
How to display user location on map
How to center map on user location with animation
How to search for locations on map
How to display locations on map based on search results
How to define a custom region on a map
Implement custom zoom functionality to show certain annotations
How to select/deselect annotations
How to get directions from user location to a selected location
How to generate a poly line from user location to selected location
How to calculate and display distance between user location and selected location
Programming Techniques
How to implement a custom subclass for the search input view
How to implement custom animations for an awesome user experience
How to implement swipe gestures for animations
How to work with enumerations to create clean and professional code
How to use protocols to delegate actions
How to pass information from one class to another
Object Oriented Programming
Protocol Oriented Programming
How to refactor code for efficiency
Swift Stuff
Programmatically implement Search Bar
Programmatically implement Table View
Programmatically implement custom UIView
Create all storyboards programmatically
Create custom colors with extensions
Auto layout
Model View Controller