
Learn to build an Instagram-like app with SwiftUI and Firestore, covering login, home feed, user search, real-time chat, photo posts, discover screen, notifications, and MVVM architecture.
Install Xcode and set up your macOS environment to start Swift UI development, including creating an Apple ID, meeting macOS Catalina and Xcode 11 requirements, and preparing for iPhone testing.
Create a new SwiftUI iOS project in Xcode, configure a content view, and preview updates in canvas while building a layout with VStack and HStack, text, and an image.
Build an Instagram-like sign-in flow in SwiftUI by composing a vertical stack with a logo, headline, divider, and styled text, applying padding and color modifiers.
Add email and password fields to a SwiftUI login screen using state and binding, with placeholders, borders, padding, and a secure field for privacy; prototype with constant binding for now.
Design and customize the sign in button in SwiftUI, applying background, padding, corner radius, and shadow, while aligning text, width, and layout with stacks and spacers.
Add icons to sign-in text fields using SF symbols and an hstack, pick envelope and lock symbols, switch to a secure password field, and tune padding for email and password.
Create reusable SwiftUI view modifiers, including a text field modifier and sign in button modifier, to style email and password fields. Store magic values in a constants file.
Design and implement a personalized sign up scene in swiftui, adding a username field, avatar selection, and a cohesive sign up button, while updating the initialization and sign in views.
Master SwiftUI navigation with a navigation view and a navigation link from sign in to sign up, then set an inline navigation title and back button color.
Install and integrate Firebase into your iOS app using CocoaPods, create a Firebase project, download the GoogleService-Info.plist, and connect Analytics, Storage, and Firestore for rapid SwiftUI development.
Learn how to integrate UIKit with SwiftUI to open the photo library from the sign up view, update the avatar with a selected image, and prepare image data for Firebase.
Enable email authentication in Firebase, create a new user on sign up, upload the avatar to Firebase Storage, and save user data in Cloud Firestore under a Users collection.
Learn why SwiftUI favors MVVM over MVC, replacing controllers with view models to handle signup and related tasks, improving maintainability and code organization.
Refactor part 1 moves signup and avatar handling into dedicated auth and storage services, using static urls and firestore paths for a cleaner, testable flow.
Master a Firebase sign-in flow in SwiftUI by reusing sign-up logic, wiring sign-in view model and auth service to authenticate with email and password and load user data from Firestore.
Log out users and auto sign them in by switching the initial view between main and login screens, using a session store and Firebase auth state listener.
Store the logged in user in a session variable and display the email in the main view, while showing a loading state until Firebase downloads complete.
Design an Instagram-style home screen with a navigation view, horizontal stories, and vertical posts. Style story images with circular clips and overlays, and extract the story view for cleaner code.
Design and refine the home view by building header and footer post components with avatar, username, location, photo, and interactive icons in hstack and vstack layouts.
Refactor the project structure by moving header, footer, and story views into a home folder under components to improve readability and future maintainability.
Learn to navigate to comment view in SwiftUI with a navigation link from the home screen, using destination and label closures and a scroll view to limit navigation to comments.
Design a comment view in SwiftUI with a comment row, input field, and scrollable list, reusing header styles, adding navigation from the home view, and refining layout.
Learn to build a discover screen in SwiftUI by creating a scrollable three-up photo grid, powered by an array-splitting extension and a photo model conforming to Identifiable.
Create a discover screen with a segmented control in SwiftUI, using a picker for grid and table modes, displaying the selected value, and styling with icons inside navigation view.
Design the camera tab to upload photos to firebase and preview them. Arrange the image view and caption in an hstack inside a vstack with a navigation view.
What are we building?
In this course, we will learn how to build our own Instagram clone with SwiftUI framework. Throughout the process, you will develop high level programming, app design and app development skills.
At the completion of the course, you will get all knowledges of social apps creation, building strong logics of app, app customization, app designing, social app features programming and many many many more.
What will you learn?
Comprehensive knowledge and understanding of Swift 5 & Xcode
SwiftUI Framework
Firebase & SwiftUI integration
Implement the MVVM system
Advanced level programming and app development skills
Create professional UI and UX
Work with backend server
Advanced level back end engineering
How to monitor events in a database
Structure data for optimum performance
How to build a fully functioning social network
How to build a direct messaging feature with Firestore
Best Coding Practices
Implement custom subclasses for clean and reusable code
Deep programming, create extensions and functions for clean and reusable code.
What features are included?
Home feed
Search feed with posts and ability to search for users
Create users, make posts, like posts, comment on posts
Direct messaging
Follow/Unfollow users
View followers/following users
Ability to see who has liked posts
Logging in and logging out
Who this course is for:
Anyone that wants to learn how to code or learn how to build high level full stack iOS Mobile Applications.
Anyone wanting to learn how to build full Social Network app
iOS developers who want to learn about the new SwiftUI Framework.
Swift developers who wants to learn about SwiftUI Framework.