
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 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.
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
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.
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.
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 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.
** 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