Library

Course: Advanced iOS & Firebase: Rideshare

Advanced iOS & Firebase: Rideshare

  • Life Time Access
  • Certificate on Completion
  • Access on Android and iOS App
About this Course

Advanced iOS & Firebase: Ride Share (Uber clone app)

Welcome to advanced iOS & Firebase development. In this course you'll learn advanced development skills by building a polished full stack and fully functional Uber clone app. We start from the ground up and teach you everything you need to know from UI design and frontend and backend development.

*BASIC KNOWLEDGE OF SWIFT AND XCODE IS ASSUMED

WHY TAKE THIS COURSE?

Learning advanced development skills should be taught using real world examples. In this course you're going to learn to code the Devslopes way. We teach by building real world, professional, amazing looking apps from start to finish.

Here are some of the things you'll be able to do after taking this course:

  • Understand advanced Firebase backend development 
  • Work fluently with iOS & Firebase
  • Apply to jr iOS development jobs
  • Work as an iOS contractor

Who this course is for:

  • People who want to build advanced iOS apps!
  • Those who want to create their own startup
  • Those looking to get a full time job as a developer
  • Business owners
  • Students & teenagers
  • People who want to make money building apps

If you are a student of our iOS 11: From Beginner to Paid Professional - or have any other basic understanding of iOS development, then this is a perfect next step to advanced your iOS and Firebase skills.

WHAT YOU WILL LEARN:

  • Major focus on user experience
  • Setting up Cocoapods
  • Custom View Subclasses
  • UIView extensions
  • UIViewController extensions
  • Creating a sliding menu
  • Advanced Firebase for the backend
  • Firebase sign in and authentication
  • Location Services
  • Saving and showing real time driver annotations on the map
  • Using Firebase for real time user requests
  • MapViews

And much more!

Don't forget to join the free live community where you can interact with other students and ask questions to the community.

Who is the target audience?

  • If you have basic experience with iOS development take this course
  • If you have basic experience with iOS or mobile development then take this course
Basic knowledge
  • Must have a computer with OSX or macOS on it
What you will learn
  • Build a full-stack Uber clone - Both driver and user, custom UI, maps, GPS - everything!re an absolute beginner to macOS development then take this course
  • Beginner to advanced Firebase - real time location tracking and data storage of GPS coordinates
  • Master Apple MapKit - custom annotations, search, real time location tracking and more
  • Advanced iOS development techniques - custom animation, code management, UI design, back-end data management
Curriculum
Lectures quantity: 40
Common duration: 15:47:38
Intro to App & Building App UI
  • Intro to Course - Uber clone app  

    In this lesson, Caleb introduces the course and gives a brief overview of the content, then gives a demonstration of the completed build of the Ride Sharing (Uber Clone) app you'll be building with advanced iOS & Firebase.

  • iOS App: Xcode Project Creation  

    In this lesson, you will create an Xcode project and a Podfile then configure it to install the CocoaPods required to complete this course about advanced iOS & Firebase.

  • iOS App: Building HomeVC’s User Interface  

    In this lesson, you will build the user interface for HomeVC – the most important ViewController in our app – the one that displays the MapView, allows you to search for locations, request trips, and more for our Ride Share app with advanced iOS & Firebase..

  • iOS App: Creating Custom View Subclasses for HomeVC  

    In this lesson, you will create several view subclasses that are required to customize the appearance of HomeVC. You will also write some functions within the subclasses that allow for engaging animations and user experiences for our Ride Share app with advanced iOS & Firebase.

  • iOS App: Creating a Sliding Tray Menu with ContainerVC  

    In this lesson, you will build a sliding tray-style menu which can be animated open and closed nicely upon the press of a button. This is a commonly used and very handy feature to have in our Ride Share app with advanced iOS & Firebase.

  • iOS App: Creating a UIView Extension  

    In this lesson, you will create an extension of UIView and add a method which can perform a frequently used animation in our app. Later on in the course, you will add more functions to add greater functionality to our Ride Share app with advanced iOS & Firebase.

  • iOS App: Building LoginVC’s User Interface  

    In this lesson, you will build the user interface for LoginVC, the screen which allows you to create and authenticate users – both passengers and drivers with advanced iOS & Firebase.

  • iOS App: Creating Custom View Subclasses for LoginVC  

    In this lesson, you will create view subclasses for LoginVC to customize its appearance, then you will add functions to our UIView extension to add functionality to our Ride Share app using advanced iOS & Firebase.

  • iOS App: Adding RevealingSplashView  

    In this lesson, you will import the RevealingSplashView library, set up LaunchScreen.storyboard, and create/display an animated instance of RevealingSplashView for our Ride Share app using advanced iOS & Firebase.

Setting Up Firebase & Configuring Authentication
  • Firebase: Creating project in Firebase & adding it to Xcode  

    In this lesson, you will login to the Firebase console using your Google account credentials, create a new project, download/import the configuration file into your Xcode project, and set up the project in the AppDelegate for our Ride Share app using advanced iOS & Firebase.

  • Firebase: Creating a DataService Singleton  

    In this lesson, you will create a singleton class called DataService which will allow for the accessing and modification of our Firebase database. We will use it to create and store driver and passenger accounts and eventually check if a driver or passenger are on a trip for our Ride Share app using advanced iOS & Firebase.

  • Firebase: Enabling Sign In and Authentication  

    In this lesson, you will enable email authentication in Firebase and set up the code necessary to log users in and create accounts using advanced iOS and Firebase.

  • Firebase: Configuring Side Menu Changes Based On Account Type  

    In this lesson, you will display account type data for a user of a particular type using advanced iOS. You will add several labels to help provide context and valuable account information to a user. If the user is a driver, they will have access to a toggle switch that allows them to turn on/off their “pickup mode” capabilities.

Advanced iOS & Firebase: Displaying Users on MapView
  • Advanced iOS: Configuring Location Services and Permissions  

    In this lesson, you will enable location services and write a function which will enable you to center the map on the user location whenever the CenterMapButton is pressed with advanced iOS and Firebase.

  • Advanced iOS: Creating an UpdateService Singleton  

    In this lesson, you will create another singleton class with advanced iOS, but this one will be used to update data of different kinds throughout our app. We will use it to save the driver and passenger’s current GPS location in real-time to Firebase every time they move.

  • Advanced iOS: Creating the DriverAnnotation Subclass  

    In this lesson, you will create a subclass of MKAnnotation called DriverAnnotation and write the function necessary to visually display custom annotations for drivers on the MapView using advanced iOS & Firebase.

  • Advanced iOS: Loading Instances of Driver from Firebase  

    In this lesson, you will write a function used to display drivers on the map from GPS coordinates saved in Firebase using advanced iOS. You will also enable the drivers to be independently animated as well as hidden on the MapView.

  • Advanced iOS: UX Improvement 1: CenterMapButton Improvements  

    In this lesson we'll make some UX improvements to our Ride Share app we're building with advanced iOS & Firebase.

Advanced iOS & Firebase: Search Functionality
  • iOS App: Setting up UITextFieldDelegate Methods  

    In this video, you will set up the UITextFieldDelegate protocols for using the UITextFields in our app. You will enable the return button to function when we want to search. You will then set up a nice animation to occur when selecting the destination text field. Finally, will then set up various actions to occur when we tap the cancel button in the UITextField using advanced iOS & Firebase.

  • iOS App: Searching for Nearby Locations  

    In this video, you will write a function to harness the power of MKLocalSearch, allowing you to search for destinations nearby. We will set up our UITableView to show these results and perform actions if selected using advanced iOS & Firebase.

  • iOS App: UX Improvement 2: Animating and Hiding UITableView  

    In this video, you will improve the user experience in HTCHHKR by allowing a user to dismiss the UITableView with a swipe down using advanced iOS. You will write some conditional code so that the UITableView can only be swiped down when there are no results showing for the best possible experience for the user.

  • iOS App: Selecting A Search Result  

    In this video, you will write code which will control what happens when a search result is chosen from the UITableView. You will set up an instance of PassengerAnnotation to display on the current passenger’s location in MKMapView as well as push their destination coordinate up to Firebase using advanced iOS & Firebase.

  • iOS App: Dropping A Pin For The User’s Desired Destination  

    In this video, you will set up an instance of DestinationAnnotation, which will be displayed on the map at the GPS location of the destination the user selected from the UITableView search results using advanced iOS & Firebase.

  • iOS App: Showing Trip Route  

    In this video, you will write a function which will enable you to find a route that connects the PassengerAnnotation and DestinationAnnotation using advanced iOS & Firebase. It will be displayed on the map with custom styling (color, width, etc.) that you choose.

  • iOS App: UX Improvement 3: Loading View  

    In this video, you will create an extension of UIViewController and write a function that will allow you to create and fade in a semi-transparent black view with a spinner at it’s center using advanced iOS & Firebase.. You will use this to indicate loading throughout our app so that a user is not unsure of what to do when data is loading.

  • iOS App: Removing Destination Coordinate from Firebase  

    In this video, you will add code within the textFieldshouldClear(:_) delegate method to remove the ‘tripCoordinate’ child from our passenger’s Firebase account as well as remove all annotations and overlays shown on the map using advanced iOS & Firebase. We will simultaneously center the MKMapView on the passenger’s current location. This will allow for a selected destination to be changed without getting in the way of the user.

  • iOS App: Zooming in on MKMapView  

    In this video, you will write a function which will be used when multiple annotations are shown on the screen as well as a route line using advanced iOS & Firebase. It will center the MKMapView on the annotations for the passenger pickup point and the desired destination point. You will set up the Center Map button to work whether there is a destination showing or not.

  • iOS App: Showing Alerts  

    In this video, you will write a protocol extension called Alertable which can be called on any instance of UIViewController using advanced iOS. It will present a UIAlertViewController with a message you pass in. We will use this for error handling and as a way to interface with the user should there be errors in our app.

Advanced iOS & Firebase: Configuring Ride Experience
  • iOS App: Building PickupVC in Interface Builder  

    In this video, you will build PickupVC in Interface Builder – an instance of UIViewController which will be presented on driver accounts when a passenger requests a ride. After building the interface, you will write a custom subclass which will customize the appearance of an MKMapView using advanced iOS & Firebase.

  • iOS App: Allowing Passengers To Request Trips  

    In this video, you will write a function which will allow for a passenger to request a ride after pressing the action button using advanced iOS & Firebase. You will create an observer which for driver accounts which will monitor to see if a trip has been added in Firebase. If it has, the PickupVC will be presented on the driver account.

  • iOS App: Allowing Drivers to Accept Trips  

    In this video, you will enable drivers to accept trips once PickupVC is presented. Once accepted, the driver’s unique ID will be passed into the trip child for the requesting passenger. You will modify the driver’s status to be unavailable and also configure the trip so that it can be started once the passenger is picked up.

  • iOS App: Showing Routes and Annotations  

    In this video, you will set up the action for selecting the ‘Accept Trip’ button on PickupVC. You will allow for a new route and annotation to show up on the driver’s MKMapView which will route them to the passenger using advanced iOS & Firebase.

  • iOS App: Allowing a Passenger or Driver to Cancel Trip  

    In this video, using advanced iOS & Firebase, you will allow for a passenger or driver to cancel the trip that they are on whether it is accepted or not. Once canceled, the MKMapView will zoom and center on the user’s location whether or not they are a passenger or driver.

  • iOS App: Modifying Function to Show and Zoom Routes  

    In this lesson, you will learn how to show and zoom routes using advanced iOS & Firebase.

  • iOS App: Fixing and Removing Duplicate Overlays on MKMapView  

    In this video, you will fix an issue where the searchMapKitForRouteWithPolyline(_:) function is called twice – once before the route is removed to show a new pickup route, and once after it is removed – thus showing a leftover route when it should be removed. We will add a conditional check using advanced iOS so that only a single route can be added at a time.

Advanced iOS & Firebase: Configuring Start & End a Trip
  • iOS App: Setting up CLRegion for Passenger and Destination  

    In this video, using advanced iOS & Firebase, you will utilize the power of CLRegion so that when the driver gets close enough to the passenger, the button’s title will change to say ‘START TRIP’. Likewise, when the driver gets close enough to the destination while on an accepted trip, the button will say ‘END TRIP’.

  • iOS App: Making the Action Button ‘Smart’  

    In this video, using advanced iOS & Firebase, you will set up a function which can perform various actions – like request ride, start trip, get directions, end trip, etc. – so that our button can have multiple functionalities in our app. We will set up the code to get directions to the passenger as well.

  • iOS App: Starting a Trip  

    In this video, using advanced iOS & Firebase, you will enable a driver to start a trip as soon as they are within the pickup passenger’s region. Once the ‘START TRIP’ button has been pressed by a driver, the annotations and route are removed and a new one is added showing the route and annotation to the destination point.

Advanced iOS & Firebase: Wrapping Up
  • Finishing the Ride Share App: Getting Directions with Apple Maps  

    In this video, we will set up the action button to be able to get directions to the destination point and end the trip by removing the trip child from Firebase, removing annotations and overlays, and centering the map on the user location using advanced iOS & Firebase.

  • Ride Share App: Code Cleanup and Creation of Constants File  

    In this video, you will clean up code and remove unnecessary print statements you may have left in your code as you followed along. Using advanced iOS & Firebase, you will also create a Constants file which we will use instead of the many Strings utilized throughout this app in order to make our codebase less error prone.

Reviews (0)