
Build a fully functioning Instagram-like app with Swift 4 and Firebase, covering login, posts, comments, likes, direct messaging, hashtags and mentions, and push notifications, plus scalable back-end data modeling.
Build a login screen for an Instagram clone app using Swift, programmatic UI, with model view controller organization, creating text fields, a login button, and layout anchors in Xcode.
Construct the login screen by importing assets, building a centered logo container, adding a bottom-aligned stack and a styled attributed sign-up button, and prepare navigation to the next screen.
Learn to set up a Firebase backend for an Instagram clone by enabling email/password authentication, connecting database and storage, and integrating Firebase with an iOS project using CocoaPods.
Learn how to create a user with Firebase by uploading a profile image via image picker and saving user data and the image URL to storage and database.
Log in with Firebase email and password, validate inputs, and construct an Instagram-style interface via a tab bar controller with home, search, post, notifications, and profile, all in navigation controllers.
Persist user sessions with Firebase by checking current user, adding a sign-out button, and presenting the login controller or main interface, with alert-driven logout and navigation updates.
Set up the user profile UI and header for the Instagram clone app, then fetch current user data from Firebase to populate username, name, profile image, and follower metrics.
Construct a custom user class and connect a profile header to data fetched from the API and database using a model view controller approach, loading username and profile image.
Load a user's profile image from a URL into an image view using a UIImage extension and an image cache to minimize API calls and avoid flicker.
Build a user search interface by populating a search table view with other users, showing profile images and usernames, and tapping opens a user's profile.
Fetch users from Firebase, observe added users, build user objects, and populate the table view with profile images, usernames, and full names.
There was a video going over how to unfollow/follow users missing from the course. I created this video to explain all of the code and what goes on in the back end of the app when a user gets followed/unfollowed
Learn to track follow status with an is_followed flag, check follow status via database, and update the follow button and user stats using a completion block and an MVC protocol.
Refactor the code by introducing a user profile header protocol and delegate, aligning follow actions with the model‑view‑controller pattern, discuss real‑time updates and completion blocks for API calls.
Implement a followers and following view by turning labels into tappable controls, wiring taps to a dedicated follow view controller with a custom cell via MVC delegates.
Configure the follow button and delegate driven follow actions, implement a single event user fetch extension, and enable navigation to a user profile from the follower list.
Import photos from the library by fetching assets with options and loading them into a collection view; select a photo to update the header with that image.
Create a programmatic upload post UI, navigate to the upload post screen, display the selected image with a caption, and enable publishing to the database.
Learn to upload a post to the database by constructing a post object with caption, image URL, creation date, likes, and owner id, then store it in Firebase.
Define a Swift post class with caption, image URL, likes, owner UID, post id, and creation date. Fetch posts from the database and populate the user profile with them.
Populate the user profile with the current user's posts using a collection view and a user post cell, loading images, and sorting by creation date from newest to oldest.
Develop a custom image view to prevent duplicate post images by tracking the last loaded image URL and synchronizing image loading to avoid flicker in a Swift Instagram clone app.
Build a home feed UI by creating a collection view feed controller and a reusable feed cell with profile image, username button, post image, action buttons, caption, and time label.
Set up feed actions in a Swift 4 app by using a feed cell delegate to handle taps, enrich posts with user data, and navigate to user profiles.
Populate the current user's feed by gathering posts from followed users and updating the feed accordingly, then test by simulating logins and running the update function.
Implement a like system for the instagram clone app by checking whether the user liked a post via firebase single-event observation, updating the like button, and enabling viewing who liked.
Build a comment UI for the Instagram clone by creating a comment view controller with a collection view, integrating Firebase, and using an input accessory view for the comment input.
Fetches and displays real-time comments for a post by observing database changes, safely handling post IDs, and updating the collection view with constructed comment objects.
Dynamically size comment cells using a text view and a dummy cell with system layout size fitting. Adjust anchors and insets, and enable keyboard dismissal for a smooth Instagram-like feed.
Build the notifications UI for the Instagram clone by configuring a table view to show profile images, messages, time, with post previews for likes/comments or a follow button for follows.
Structure notifications by user on the server with checked state, creation date, from user id, type, and optional post id. Send and remove like notifications and explain the model-view-controller approach.
Implement a push notification system for an instagram clone by building a notification class, handling like, comment, and follow types, and uploading events to the server.
Sort notifications by creation date and configure timestamps; extend UIButton to streamline follow button setup, using a timer-based reload approach for stable UI in a Swift Firebase Instagram clone.
Configure a dynamic notification dot for the Instagram clone app and update Firebase to track unchecked notifications. Observe and mark them as read, adapting the tab bar for different devices.
Learn to add a top search bar, implement search bar delegate, and filter users in the table view. Build a programmatic collection view for posts, fetch posts, and handle selection.
** Source Code with updates for Swift 4.2 & Firebase 5 Available Now!! **
** Located in Lecture 1 Resources Section **
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. Throughout the process, you will develop high level programming, app design and app development skills.
Prior Experience?
No prior programming experience is required! The course will move a little fast if you're a complete beginner, but you will pick things up along the way. We will be teaching you how to program from scratch, all the way from the absolute basics to high level programming techniques and best practices.
Why take this course?
Taking this course will give you the knowledge and skills you need to become a professional iOS Developer, and vital skills that you will need to be able to build your own mobile apps from the ground up. You're not just learning how to build Instagram, but rather learning how to become a full stack app developer. All of the techniques taught in this course will give you the foundation you need to become a successful advanced level programmer, whether it be as a freelancer, a professional, or both. This is also a great item to add to your portfolio or GitHub profile, its awesome to show off at interviews or have as code to send potential employers!
What will you learn?
Comprehensive knowledge and understanding of Swift 4 & Xcode
Implement the Model View Controller system
Advanced level programming and app development skills
Advanced level User Interface Design
Advanced level back end engineering
How to communicate with a database (read/write)
How to monitor events in a database
How to structure data for optimum performance
How to build a fully functioning social network
How to implement push notifications using Firebase Cloud Messaging
How to programmatically construct storyboards
How to parse incoming JSON data from database
How to build a direct messaging feature using Firebase
How to use CocoaTouch classes, UIKit, UserNotifications and more
How to use CocoaPods and custom third party softwares
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
What features are included?
Home feed with pagination
Search feed with posts and ability to search for users
Create users, make posts, like posts, comment on posts
Hashtags and mentions
Direct messaging
In app notifications
Push notifications for likes, comments, follows and mentions
Follow/Unfollow users
View followers/following users
Complete pagination of data using Firebase for scalability
Edit profile feature
Deleting posts
Edit posts
Saved Photos
Ability to see who has liked posts
Logging in and logging out