
Learn to set up a SwiftUI project in Xcode, explore the new app lifecycle, use previews to build a Twitter-style UI with stacks, text, padding, and spacers.
Create a SwiftUI tab view inside a navigation view to build a multi-tab home screen, with tab items using system images and titles, and learn navigation between screens.
Create a floating action button in a SwiftUI feed using a ZStack and bottom trailing alignment, with a scrollable tweet list and a template rendering of a tweet image.
Create a tweets feed in SwiftUI using a scroll view and a for-each loop. Build a tweet cell with image, author, time, and caption, preparing to load tweets from Firebase.
Learn to build a polished search view in SwiftUI for a twitter clone, including a custom search bar with a magnifying glass overlay, binding text, and responsive padding.
Build a SwiftUI user cell for the Twitter clone, with a 56x56 avatar in HStack and a text stack. Use a ForEach loop to render multiple cells in scroll view.
Access course resources, including assets, view and model files for the Twitter SwiftUI clone, plus optional completed source code with a side menu and cloud functions.
Create the messaging UI skeleton with a conversations view and chat view using mock data, organize files in messages folder, and implement a floating action button with reusable conversation cells.
Explore how to implement navigation links inside a SwiftUI list, push to a destination view, customize labels, and present a modal sheet using a state variable to toggle the view.
Create a SwiftUI chat view with a bottom message input and a scrollable message list, using a message data model and binding for text and user-specific alignment.
Build a chat bubble UI in SwiftUI by designing a custom shape with conditional corner radii for current user messages, and create mock data models to feed the chat view.
Create a mock message model and populate mock messages to drive a dynamic chat view, distinguishing current user messages from others in a SwiftUI layout.
Refactor the message view by extracting it into its own struct, pass the message data, and polish previews with mock data while preparing for API-driven chat.
Create a new message view to start chats by binding start chat and show, dismissing the sheet and navigating to the chat when a user is selected.
Build a profile screen with a header showing follower and following stats, follow and message actions, and a tweet filter, navigated from search results to user profile; API integration planned.
Create a SwiftUI profile action button view that switches between edit profile for the current user and follow and message actions for others, based on a current-user flag.
Build a SwiftUI profile filter button using a tweet filter options enum (case iterable), iterating cases, and rendering a clickable filter with animated underline. Bind the selected option to underline.
Build the upload tweet UI in a Twitter SwiftUI clone by implementing a full-screen new tweet view with cancel and tweet actions, and state binding for presentation.
Build a custom text editor with a placeholder in SwiftUI by layering a placeholder label over a text editor in a ZStack, showing or hiding it as you type.
Create the login and sign-up UI in SwiftUI, connect the app to Firebase, and implement custom text fields with bindings, placeholders, and icons to support user authentication.
Finish the login screen by converting fields into a custom secure field with a lock icon and dynamic images, and fine-tune spacing with SwiftUI stacks, forgot password, and sign-up layout.
Build a registration screen in a Twitter-style SwiftUI clone, adding full name, username, and profile image selection, navigating from login to signup, and implementing dismissal and back navigation.
Learn to present an image picker in SwiftUI by wrapping UIImagePickerController with UIViewControllerRepresentable, toggling a sheet on button press, and coordinating image selection.
Learn to select a profile image in a SwiftUI app by wiring a UIKit image picker through a coordinator, binding a UI image to SwiftUI, and displaying the chosen photo.
Integrate Firebase into your iOS app using Swift Package Manager to power authentication, Firestore data, storage, and Functions, turning the login UI into a functional social feed backend.
Register a user with firebase in a swiftui app by enabling email/password authentication, configuring firestore and storage, and signing up with email, password, full name, username, and profile image.
Upload a user profile image to Firebase storage, obtain its download URL, and save email, full name, username, and uid to Firestore.
Learn to implement login and sign-up flows in a SwiftUI MVVM app using a user session with Firebase, handling errors, and presenting the main interface post-login with an environment object.
Show the main interface after authentication in the Twitter SwiftUI Clone by using an environment object and updating the user session on login or signup.
Create a user data model and fetch user information from Firestore, decoding a dictionary into a User struct with id, username, profile image URL, email, and full name.
Fetches all users from the database and displays them in a dynamic list with profile images, usernames, and full names. Uses Kingfisher for image loading and MVVM.
Explore the mvvm breakdown, showing how the model, view, and view model interact via data binding and published variables to fetch users and update the ui without controllers.
Wire the profile to load a user object from the view model, display the header with the user's image via Kingfisher, and enable follow actions and bio updates.
Learn to implement follow and unfollow in a Twitter SwiftUI clone using Firestore followers and following collections, plus a view model that updates the UI on action completion.
Learn to implement unfollow in a twitter swiftui clone using mvvm, firestore, and binding to update isfollowed across the profile header and action button, including deleting follower and following documents.
Implement an API call to check if the current user follows another user by querying Firestore’s following collection and updating isFollowed via MVVM bindings in SwiftUI.
Implement a top navigation bar button to present the new tweet screen, upload tweets to the server, and fetch and display them in the feed for a Twitter SwiftUI clone.
Fixes an authentication bug by reconfiguring the UI when the user property updates after login or logout, using a shared Orfeu model for consistent user data.
Upload tweets to Firestore using a new SwiftUI MVVM view model. Build tweet data with uid, caption, user details, timestamp, and likes, and save to the tweets collection.
Explore how to dismiss the tweet composer after upload completes in a swiftui mvvm setup, using either a binding-driven ispresented or a completion handler in the upload view model.
Create a view model to fetch tweets from the tweets collection. Map the retrieved documents to a tweet data model and display them in the feed with a unique identifier.
Build a tweet detail view in a SwiftUI Twitter clone, navigated from feed to display the tweet's profile image, full name, username, caption, and date, with a likes actions area.
Implement a reusable like action via a view model in a mvvm swiftui app, updating firestore with tweet and user like subcollections and a did like flag.
Learn to unlike a tweet, check if a user has liked it, and keep tweet like counts and user like records in Firestore in sync with the backend.
What are we building?
In this course, you will learn how to build an MVP version of Twitter with strictly Swift UI using the MVVM architecture. This is the only course on the market that builds a fully functioning app as complex as Twitter using nothing but SwiftUI. We will be building this completely from scratch, starting with the User Interface skeleton, and working our way up to integrating our API with Firestore and data models. This course WILL take your development skills to the next level, using the latest and greatest techniques in modern programming.
We will be building all the core components of a social network. This includes following users, uploading/liking tweets, direct messaging, 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 SwiftUI & Xcode 11
How to 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, follow, tweets, messaging)
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?
Direct Messaging
Create users
Create a user profile
Authenticate users with Firebase
Search for users
Upload tweets
Home feed with tweets
Like tweets
Follow/Unfollow users from profile
Logging in and logging out