
Programmatically create a title label, center it with auto layout, anchor to the safe area, and apply font, color, and status bar style for the login UI.
Implement a reusable UIView extension in Swift with UIKit, featuring an anchor function to set constraints and padding. Use it to center a title label and simplify programmatic layouts.
Build a login ui by combining a container with an image view, email text field, and separator, set dotted border and dark keyboard, and anchor elements for layout.
Learn how to refactor a login UI by creating reusable extensions for text fields and input containers, reduce copy-paste, and assemble components with a vertical stack view.
Finish the login UI by adding a login button and a sign up button below, and introduce a UIColor extension to create and reuse a main blue tint for styling.
Add action handlers for sign up, capture email, full name, and password, embed login and sign up screens in a navigation controller, and push the sign up controller.
Configure a programmatic sign up UI for the Uber clone app, adding email, password, full name, and a rider/driver account type segmented control in a stack-based layout.
Set up firebase as the app’s back end, enable email/password authentication for sign-up and login, and configure the iOS project with GoogleService-Info.plist and Firebase pods.
Register a new user with Firebase using email and password. Save the user's full name, email, and account type under a unique user id in the real-time database.
Set up the home controller as the app’s entry point, check Firebase authentication to present the login controller when needed, and implement sign out with a main thread UI update.
Implement and test the login and signup flow to present the home controller, dismiss the login screen on success, and configure a full-screen map view for authenticated users.
Check the completed source code for the updates on how to request location from the user
Develop a location input activation view to present a header, show safe locations, support place typing with nearby results, select a location, and generate a polyline to request an Uber.
Animate the location input activation view from hidden to visible with a two-second alpha transition, trigger a tap, and delegate its presentation to the home controller via activation delegate protocol.
Configure the location input view in the home controller, animate the header and table view, and implement back-button dismissal via a delegate to manage the location input flow.
Build a programmatic table view for a home controller, create a custom location cell, register and configure data source, and animate the location input view for a slick show‑and‑hide UX.
Animate the table view presentation and dismissal with chained animations, adjusting the y origin to slide up from the location input view, and remove the input view to prevent duplicates.
Set up table view cells for location entries with a title and address in a vertical stack, animate input view removal after alpha animation, and prepare two sections with headers.
Add a completion handler to fetch user data and retrieve the full name, then update the home controller's title label and location input, using a class property with didSet.
Construct a custom user object as a Swift struct with full name, email, and account type, initialized from a dictionary after an API call, and use it to drive UI.
Fetch nearby drivers from the database using geo fire with a radius, then fetch each driver’s user data to attach their location.
Fetch drivers from database within a radius, construct a custom MKAnnotation subclass for drivers with a unique id, and display and update driver annotations on the map in Swift.
Render a custom driver annotation on the map by implementing MKMapViewDelegate and viewForAnnotation, using a custom driver annotation with a unique identifier, and updating coordinates in real time via observe.
Prevent duplicate driver annotations on a live map by using a computed visibility check, and update the driver's position in real time with dynamic coordinates in a Swift / Firebase Uber clone.
Fix login and signup bugs while enabling map search results, updating table view with nearby shops, adding annotations and polylines from user to destination, and showing a location info pop-up.
Type in a text field to trigger a delegate and execute a search, then populate the table view with MK local search results as place marks.
Select a location from search results, dismiss the input view, add and highlight an annotation on the map, then draw a polyline from the user to the chosen location.
Learn to zoom a map view to fit selected annotations by building an annotation array, filtering out non-driver annotations, and calling show annotations to adjust the visible region.
Animate the ride action view to show after a destination is selected and hide when animations finish, using a show/hide function with a height constant and zero point three seconds.
Pass an MKPlacemark as the ride action view destination and configure title and address labels from the placemark, handling it as an optional in the selection flow.
Implement a custom zoom to fit annotations in a programmatic Uber clone app, adding a map extension to compute a zoom rectangle with edge padding for your ride action view.
Learn to implement ride requests in a programmatic Uber clone by uploading trips with a delegate, using pickup and destination coordinates and tracking status from in-progress to accepted to completed.
Replace boolean trip flags with a TripState enumeration. Create a Trip object with pickup and destination coordinates, passenger id, optional driver id, uploading state as raw value.
Set up the driver side by adding an account type (driver or passenger) and gate driver data until user data loads. Then tailor UI and location input by account type.
Fetch driver trips and observe new ones using a child added observer, construct trip objects, and trigger the pickup screen when a trip is available.
Learn to build a driver pickup controller UI for a ride-hailing app, featuring a circular map view, cancel and accept trip controls, and trip-based initialization.
Configure the map in the programmatic Uber clone app to show pickup coordinates by setting a 1000-meter region, adding an MKPointAnnotation, and selecting it.
Learn to accept a trip in a programmatic Uber clone app. Update the trip state to accepted and attach the driver id, using a delegate to refresh the home controller.
Fully Programmatic Uber Clone | Swift 5 | Firebase | No Storyboards | iOS 13
Welcome! In this course you will learn how to build a fully functioning clone of the famous Uber application. We will be building this app from the ground up, fully programmatically without the use of storyboards.
In addition, we will be using Firebase for our backend database, which we will engineer completely from scratch. Along the way, you will learn all kinds of advanced programming techniques, best practices, professional architecture, and more!
*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 from a real life, professional developer. You will learn how to code like a pro, and everything will be explained in detail along the way. This will teach you to build production ready applications, that are easily scalable and maintainable.
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
WHAT YOU WILL LEARN:
Major focus on user experience, using advanced animations and a clean UI
Engineering a database from scratch using Firebase
Integration Cocoa Pods
Custom CocoaTouch View Subclasses
UIView extensions
UIViewController extensions
Creating a sliding menu
Creating a settings page
Searching for locations
Displaying locations on map
Firebase sign in and authentication
Location Services & Geolocation
Saving and showing real time driver annotations on the map
Using Firebase for real time user requests
MapViews
And much more!
Who this course is for:
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