
Define functional and non-functional requirements for a to-do app, covering authentication, to-do lists, search, and light/dark mode. Outline data models and APIs within an mvvm architecture using stores and services.
Define data models for to-do lists, tasks, and users with ids, owner ids, names, and timestamps; outline app state, auth enums, and firebase auth and firestore APIs with real-time listeners.
Master a decoupled system design for a SwiftUI app using MVVM and stores. Visualize client and backend flows with Firebase Auth and Firestore.
Set up your development environment by creating a GitHub repository, configuring a Swift gitignore, and cloning the project. Then create an Xcode SwiftUI app, commit changes, and push.
Set up the project by creating core, domain, components, extensions, and stores folders, aligning views with their view models under an mvvm structure, including app starting view.
Set up and import Firebase into your iOS SwiftUI project, configure authentication with email/password, enable Firestore, and initialize the Firebase SDK for app functionality.
Learn to implement dependency injection in SwiftUI with factory, register an app info store in a container, and enable testable mocks for mvvm to-do apps.
Build a Firebase authentication store with a main actor protocol, implementing sign in, sign up, reset password, and sign out, plus mock data and Combine updates.
Explore how the app starting view model coordinates authentication and app flows by subscribing to the authentication store's update publisher and updating the app state for spring-animated transitions.
Learn to build a reusable SwiftUI color theme by extending Color with an app color theme, naming colors by meaning, and supporting light and dark modes across views.
Learn to create reusable SwiftUI UI extensions for corners, shadows, and buttons, centralizing styles with app-wide corner radius and shadow systems, plus a pressable button style for consistent UI.
Build an auth view model that manages authentication state in a swiftui firebase mvvm app, wiring to authentication, user, and to-do stores with sign-in and sign-up workflows.
Design a complete login and registration flow in SwiftUI using MVVM, integrating Firebase authentication with sign in, sign up, forgot password, and polished input fields.
Explore a robust error handling and alerts system for a SwiftUI Firebase MVVM app. Map authentication and database errors, and implement reusable error and alert views with modal presentation.
Build and manage a user store for Firestore, creating and fetching user documents in a users collection, using a codable app user and snake_case fields.
Implement a Firestore-backed todo store in an mvvm Swiftui app, modeling to-do lists and tasks, loading tasks, adding and deleting lists and tasks, and syncing changes with real-time snapshot listeners.
Learn to build a task view model that manages tasks and state for a Firebase-backed to-do app. It covers loading data, searching, selecting lists, and handling settings.
Build reusable SwiftUI components for a to-do list app, including a to-do list name pill and a compact task view, with toggle completion and previews.
Build reusable SwiftUI components for new to do list and new to do views, enabling multi-add, dismiss-after-confirmation, and a custom text editor placeholder implemented via a modifier.
Bring together the main tasks view by building the SwiftUI to-do interface, including search, list selection, and a scrollable task area, with mock data for previews via dependency injection.
build a settings screen in swiftui with mvvm pattern, loading app and user info from stores, handling sign out via alert, and dismissing the view with mock data for previews.
Secure your Firebase app by writing production ready rules for users, to do list and tasks, enforcing authentication and current user checks before reads or writes.
Explore the MVVM SwiftUI and Firebase to-do app architecture, including authentication, Firestore stores, and dependency injection with mocks for previews.
Want to build professional iOS apps with SwiftUI — the kind that feel polished, scalable, and ready for the App Store?
In this course, you’ll build AllDone, a fully functional To-Do List app built from scratch with SwiftUI, Firebase, and MVVM clean architecture. Whether you’re preparing for iOS interviews, freelancing, or aiming to reach the next salary tier, this project will teach you how senior developers design, structure, and deliver production-ready apps.
We’ll start with system design and architecture planning, defining functional and non-functional requirements before writing a single line of code. Then, you’ll implement features step-by-step — from authentication with Firebase Auth and data persistence in Firestore, to input validation, error handling, and smooth state management with modern Swift concurrency (async/await).
You’ll also learn how to:
Apply MVVM architecture with dependency injection and decoupled services
Use Git & source control for real-world project tracking
Build reusable SwiftUI components and beautiful UI layouts
Handle Firestore rules and secure user data
Plan your app like a pro with system design principles
This course isn’t just about building a To-Do List — it’s about mastering how real engineers think, plan, and code.
By the end, you’ll have a portfolio-ready app, scalable architecture skills, and the confidence to build production-level projects that can help you land high-paying iOS roles or freelance clients.