
Explore Firebase basics, Firestore vs Realtime Database, and implement practical SwiftUI apps—from a to-do list to a chatroom—covering MVVM design, nested data, authentication, storage, and real-time updates.
Have solid Swift language knowledge and experience with the declarative interface platform by Apple, and use Xcode 12+ on macOS Catalina or Big Sur.
Access the exercise files linked with each code sample in resources to download, run, and explore the course code; for the complete final product, download the final lecture's exercise file.
Discover Firebase, a Google backend-as-a-service platform offering authentication, hosting, cloud storage, cloud functions, and Firestore to power Android and other mobile apps, with a generous START plan.
Compare Cloud Firestore and Realtime Database to decide based on data model, querying, offline support, and scalability for your Firebase project.
Explore data structuring inFirestore, comparing nested documents, subcollections, and root-level collections with grocery-store examples. Assess scalability, query capabilities, and trade-offs for fixed lists, growth, and deletion.
Learn to build a todo list app by wiring Firebase Firestore into a SwiftUI project, inserting, retrieving, updating, and deleting data directly in the view to see Firebase in action.
Set up a Firebase project in the Firebase console, enable analytics, and prepare to integrate Firebase with a SwiftUI app using the Spark plan for the course.
Learn to install Firebase in an iOS app using CocoaPods, including downloading GoogleService-Info.plist, adding it to the project, initializing CocoaPods, and building with Xcode 12.
Fix Firebase issues with Xcode 12 by updating deployment targets across targets and CocoaPods, disable goateed include in framework, then rebuild and use the provided resources to complete integration.
Initialize firebase in a swiftui app with xcode 12 and migrate from the app delegate to the app file. Prepare and install the firestore cocoapod to enable database operations.
Initialize a Firestore database in test mode, install Firestore CocoaPods and the Firestore Swift package, configure Firebase, and use a Firestore object to perform create, read, update, and delete operations.
Save a task to Firebase Firestore by building a simple SwiftUI interface with a text field and button, then store the task in a Firestore collection.
Fetch all tasks from Taffe collection in the firestore database using getDocuments and unwrap the snapshot. Map documents to task data and update a state array when the view appears.
Learn to delete a task in a SwiftUI app using Firebase. Use an on delete handler with ForEach to remove the Firestore document by its ID and refresh the UI.
Update a task through a detail screen in a SwiftUI app, navigate from the list, edit the title in a text field, and update the Firestore document with Firebase.
Explore design patterns as best practices for solving problems, revealing relationships between classes and objects, and learn how they speed development, enable language-agnostic, flexible, reusable, and maintainable architecture like MVM.
Explore the MVVM pattern, where the model holds data, the view displays it, and the view model mediates between them to keep business logic out of the view.
Explore why MVVM uses a password reset view model to supply username, new password, and confirm password, enabling client side validation and a clean view model split.
Explore MVVM architecture for SwiftUI apps and how a view communicates with a view model, which forwards requests to a web service to fetch web API data.
Learn to build a grocery app with a fire stored database, add stores, manage items, and track purchases across stores, while wiring a growth map to the final store database.
Explore the starter project with the folder structure, pre-integrated Firebase Firestore, and a view extension; learn to replace the GoogleService-Info.plist and initialize your Firebase project.
Define a store model with id, name, and address, including an items collection, and centralize save operations in a Firestore manager. Save the store to Firestore and handle completion.
Create an add store view model to connect the UI with the firestore manager for saving a store's name and address, with a published saved state and message.
learn to add a store in a swiftui app by presenting a sheet with a name and address form, wiring to a view model, and dismissing on save.
Implement the Firestore manager's get all stores function to fetch stores from Firestore, return an array via a completion handler, handle errors, and map documents to store objects.
Implement a store list view model that fetches all stores from the store manager, converts store models to store view models, and publishes updates for the SwiftUI view.
Display all stores from the store database in a list using a view model and observe object, showing each store’s name and address with refreshed data when the view dismisses.
Update a Firestore store document by appending grocery items to a nested items array using array union, and build models to manage item additions.
Develop a store item list view model to add grocery items to a store via the store manager, and prepare a detail screen with navigation to manage existing items.
Create a SwiftUI navigation from the content view to a store items list by passing a store model and view model, then add items and save to the store database.
Learn to display grocery items by subscribing to store item changes with combine, refreshing the view on appear, and wiring a store value model to update the UI.
Refactor the store items list by adding a get store by id function in the Firestore manager, enabling the view to fetch store data on load and streamline updates.
Create a store item model and a store item view state to capture name, price, and quantity via ui fields. Expose these with a store item view model for listing.
Update the store by adding an item through the add item to store flow that creates an items subcollection under the store document in Firestore, saving name, price, and quantity.
Implement a get store items by store ID function in the store manager, fetch items from Firestore, and display them in a SwiftUI view with a store item view model.
Delete a store item from a selected store by implementing a Firestore manager function, wiring it to the view model, and enabling swipe-to-delete in the user interface.
Fix a bug that prevented clearing grocery item text fields by using a store item view state struct, binding inputs, and updating the add item to store flow.
Build the Fungai finder app with Firebase authentication, create and log in to accounts, then upload images to Firebase storage and save URLs and metadata in Firestore.
Explore the Fungai Finder starter project with prebuilt SwiftUI views for login, registration, listing fungi, image capture, and resizing before Firebase upload.
Set up firebase for the Fungai finder app by creating a firebase project, downloading the google services file, and integrating authentication, firestore, and storage, then run pod install.
Enable Firebase authentication in the console, explore providers like email and password, and prepare to create user accounts with the authentication UI.
Register a new user using a dedicated register view model that binds email and password and calls the authentication framework to create the account.
Implement a login flow using a dedicated login model and Firebase authentication with email and password, handle errors, and navigate to the Fungai list view upon success.
Set up Firebase storage for the Fundi Finder app, configure a default bucket, adjust read/write rules for testing, and verify authentication requirements before uploading photos.
Develop a fungai list view model to upload photos to firebase storage, obtain photo URL, and save it in firebase store, then wire the view to take or select photo.
Select a photo from the library or camera, resize it to 1024, upload the data to Firebase storage, and save the image URL to Firestore for user records.
Upload photos to Firebase storage, then save each photo's URL with the current user's ID in a Firestore document under the Fungai collection.
Firebase is the most popular backend in the mobile community and it is used in thousands of iOS apps. In this course, you will learn how to integrate Firebase in SwiftUI application. You will build several SwiftUI apps which will use Firebase Authentication, Firestore, Storage and Real Time Updates. This is a fun course with real life hand-on coding projects. Let’s check out the contents of the course.
Requirements
Knowledge of Swift Language
Knowledge of SwiftUI Framework
Xcode 12 and iOS 14
Google account to access Firebase console
No paid software is required. All apps are created using Xcode.
Understanding Firebase:
In this section, you will learn about the Firebase platform. You will also learn about the Firestore database and how it is different from Real Time Database. Finally, you will learn different ways to structure data in the Firestore database.
TODO List
In this section, you will learn about how to implement a simple TODO List app using Firestore and SwiftUI. This section will demonstrate how to perform CRUD operations with Firestore and quickly get your SwiftUI app integrated with Firestore database.
Understanding MVVM Design Pattern
In this section, you will learn how to implement MVVM Design Pattern in a SwiftUI application. MVVM Pattern is the preferred pattern when building SwiftUI apps.
Grocery App
In this section, you will learn how to implement a complete Grocery App using SwiftUI and Firestore. This app will allow users to persist hierarchical information for each document. Later you will update the app to replace the nested data with nested collections.
Fungi Finger
In this section, you will learn how to integrate your SwiftUI app with Firebase authentication, Firestore and even Firebase Storage. The user will pick a photo from the photo library or take a picture. Once the picture has been selected, it will be uploaded to Firebase storage and then the URL will be persisted to the Firestore database under the user identification.
Let’s Chat
In this section, you will learn how to create a Chat App called Let’s Chat. This app will showcase Firestore Real Time Update feature and also use SwiftUI iOS 14 ScrollViewReader API to automatically scroll when new messages arrive.
Don’t take my word for it, check out reviews from my other courses.
It is amazing, not only is it clear but it clarifies all my unanswered questions. It's hard to find someone who has a well detailed swift DS & Algo class. This is a gem. Thank you Mohammad Azam
This course provides a bundle of resources on Swift UI. Great explanation, building different apps and addition of latest updates makes it a five star course. Thanks Mohammad for your valuable work on providing this course.
Mohammad's courses are usually outstanding, but he has put in a great amount of detail into this course. He provides great detail in his explanations. If you have never parsed JSON and are looking to learn about MVVM design I would highly recommend this course.
Very elegant course. Well scaffolded. Each section is very focused on a single task. One pet peeve I have of Udemy courses is when an instructor teaches a new skill but nest it inside a project that does 10 other things. This is the second course I've had with this instructor and both are excellent. Highly recommended.
After completing this course, you will be ready to build your next SwiftUI application with Firebase platform.
Let's get started!