
Pods to install
pod 'MBProgressHUD'
pod 'Firebase/Firestore'
pod 'FirebaseFirestoreSwift'
pod 'Firebase/Auth'
pod 'Loaf'
pod 'FSCalendar'
toggle container views on and off using a segmented control, connect an IBAction for value changed, and switch between ongoing and done by showing the appropriate container views.
Add an action button that presents a modal view controller for creating a new task in a Swift 5 iOS app, including button styling, constraints, and an IBAction workflow.
Add components to the new task view controller by placing a bottom container, vertical and horizontal stack views, a button, and a text view for new task input with constraints.
Set up a firebase console project, integrate firebase into your app, download the google-service-info.plist, and enable email/password authentication and the firestar database in asia east 2.
Add a test task to the Firebase Firestore database to verify integration, using a task with id and createdAt saved to the task collection via a database manager in Swift.
Add a snapshot listener to the tasks collection in Firebase Firestore to automatically fetch and decode new documents, updating the table view in real time.
Populate a table view with tasks from the database using a tasks array and a task listener to refresh the UI, and configure cells to display task details.
Wire the action button tap in the ongoing task cell to the parent controller using a closure, updating the task state and timestamp observed in firebase.
Implement update task functionality by handling decoding issues, using a do-catch flow and state, and updating the database document to set isDone and doneAt.
Move tasks from done back to ongoing by updating Firebase data, including isDone and doneAt properties, and implement a status update function in the database manager.
Implement a custom calendar view for the to-do list app by wrapping the FSC Calenda library in a UIKit Calenda view, arranged with a stack view and Auto Layout.
Remove the deadline by dismissing the calendar view when a date is selected, clearing the deadline label, and returning focus to the task text input.
Create an onboarding screen by adding a new view controller with a vertical stack, an image, two labels, and a get started button.
Refine the login flow by building an onboarding view controller, presenting the login modal from the get started action, and using a delegate to dismiss and reveal the main app.
Implement a singleton navigation manager to transit from onboarding to the task view controller by changing the route view controller, using storyboard IDs and a custom transition.
Learn to implement firebase email/password authentication in a to-do app, wiring a login button to an auth manager, navigate to main screen on success, and show error toast on failure.
Add a reactive login flow with an error label between the password field and login button, validating email and password. Use combine to update the UI based on login outcomes.
Welcome to the Build To Do List App like Google Task with Firebase & Swift 5 course.
In this course, we will build a Google Task clone app from start to end. In this course you will learn to:
Implement the fundamentals of CRUD - Create, Read, Update, Destroy
Store data using Firebase Firestore (with FirestoreSwift SDK)
Learn FirestoreSwift new Decodable and property wrappers like @DocumentID and @ServerTimeStamp
Reactive programming using Combine framework with UIKit
Add real time listeners to database
Authentication - sign up a new user / log in / log out
Protocol extensions
Protocol & delegate patterns & closures
UI Animations
Weak & unowned self for avoiding retain cycles / memory leaks
Coding views programatically with UIKit
This course is designed for iOS developers with at least 6-9 months experience and is not a beginners' course.
These are some comments from my students:
Excellent Content, I appreciate the different styles of onboarding screens and all the great explanation! - Carey M
The course is very concise but informative . I really like the project based approach that this course takes. It cuts straight to the chases and show you how these abstract concepts are put into real life problems . Highly recommended - AN Dinh
Really easy to follow and great for beginners. Really enjoyed the course, thanks Kelvin! - Atiqah A.K
Perfect course to help me get started on ios programming! - Tan Kel Vin
The instructor is knowledgeable and clear with his instructions. The course is great and informative for those who are planning to build a skeleton they can build on their own app projects Instructor is also helpful. - Raphael Lim