
Create custom subclasses and extensions to reuse UI components, such as a text field with a placeholder and a button with attributed titles, reducing duplication across login and signup screens.
Learn to build a reusable registration page UI for an Instagram clone using Swift, including custom text fields, a plus photo button, gradient backgrounds, and navigation to the login screen.
Learn how to implement authentication view models and form validation to enable login and signup flows, updating user interface in real time with computed form validity and dynamic button states.
Finish form validation in the instagram firestore app clone by introducing an authentication view model protocol, adding full name and username, computing form validity, and enabling signup updates.
Learn to update the current user after authentication by using a weak authentication delegate, delegating to the main tab bar controller to fetch and refresh the profile across views.
Fetches all users from the Firestore database, maps documents to user objects, and displays them in a table view, showing usernames and full names in the Instagram clone.
Implement follow and unfollow functionality in the Instagram Firestore app clone by adding is_followed logic, profile header delegation, and Firestore updates to followers and following collections.
Learn how to check if the current user follows another profile by querying the user following collection and returning a boolean via a completion handler, then update the UI accordingly.
Add and display post user data by using the owner uid to fetch the user’s username and profile image, stored in the post and shown in the feed with mvvm.
Learn to implement a pull-down to refresh in a feed, fetch and order posts by timestamp, and auto-refetch after uploading a post in an Instagram Firestore app clone.
Fetch a user's posts to update profile stats, render accurate post counts, and enable tapping a post to view it in a single-post feed using the existing post view model.
Create a comment UI for posts using a collection view, with a comment input, delegated actions from the feed cell, and navigation to a comments screen.
Implement a post like feature in the Instagram Firestore app clone by delegating like actions from the feed cell to the controller, updating the database, and refreshing the UI.
Implement unlike post logic in a Swift MVVM Instagram clone by updating post and user likes collections and refreshing the UI according to like state.
What are we building?
In this course, you will learn how to build a complete version of Instagram ready to be published on the App Store. We will be building all the core components of a social network. This includes following users, making posts, liking/commenting on posts, in-app notifications, creating a user profile, and registering users. Throughout the process, you will develop high level programming, app design and app development skills. We will be building this without the use of storyboards, fully programmatically.
Prior Experience?
Some programming and basic Xcode experience is preferred. The course will move a little fast if you're a complete beginner, but you will pick things up along the way.
Why take this course?
Learning advanced development skills should be taught using real world examples. This course will teach you how to build a fully functional social network, from complete scratch. You will be learning advanced front and backend development skills, 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. This also makes for a great project to add to your portfolio, which you can use to show off to potential employers if you're trying to become a pro.
What will you learn?
Comprehensive knowledge and understanding of Swift 5 & Xcode 11
Implement Model View ViewModel (MVVM) architecture
How to engineer a backend server using Cloud Firestore
How to authenticate and register users with Firebase
How to communicate with a database (read/write)
How to monitor events in a database
How to upload images to Firebase Storage
How to structure data for optimum performance in Cloud Firestore
How to build a fully functioning social network (likes, comments, follow, posts, notifications)
How to programmatically construct views and controllers
How to parse incoming JSON data from database
How to use CocoaTouch classes, UIKit, UserNotifications and more
How to use CocoaPods and custom third party APIs
How to implement/use protocols
How to implement custom subclasses for clean and reusable code
How to dynamically size collection view cells
How to create extensions and functions for clean and reusable code
Advanced level programming and app development skills
Advanced level User Interface Design
Advanced level back end engineering
What features are included?
Create users
Create a user profile
Authenticate users with Firebase
Search for users
Upload posts
Home feed with posts from followers
Like posts
Comment on posts
In app notifications for following, post likes and post comments
Follow/Unfollow users from profile
Follow/Unfollow user from notifications screen
Go to post or profile from notifications screen
Display timestamp on posts and notifications
Logging in and logging out