
Create an Xcode project for a Swift chat app, configuring name, team, bundle identifier, interface, language, and deployment target. Prepare to install third-party libraries with CocoaPods in the next lecture.
pod 'Firebase/Core'
pod 'Firebase/Auth'
pod 'Firebase/Firestore'
pod 'Firebase/Storage'
pod 'Firebase/Analytics'
pod 'Firebase/Messaging'
pod 'FirebaseFirestoreSwift'
pod 'Gallery'
pod 'RealmSwift'
pod 'ProgressHUD'
pod 'SKPhotoBrowser'
pod 'MessageKit'
pod 'InputBarAccessoryView'
Learn to update placeholder labels for email, password, and repeat password fields as users type, using text field edits and delegates, and conditionally reveal the sign-up button.
Toggle between login and sign-up views by updating titles, labels, and field visibility, and animate the transitions with a 0.5-second duration using asset images for login and register.
Learn to hide the keyboard with a background tap gesture recognizer, and implement data input checks for login, register, and forgot password, with clear error messages.
Create a custom user struct with id, username, email, push id, and avatar link, encoded to and decoded from firebase data, with current user helpers and equatable by id.
Build a Firebase user listener in Swift, create top-level collections with a helper, and use a singleton to register users, send verification emails, and save user data to user defaults.
Master the Firebase login flow with email and password, including email verification and error handling. Download the user object from Firebase and save a copy to local storage on login.
Learn how to resend verification email and reset passwords using Firebase user listener, including accessing current user, reloading data, and handling completion with errors.
Enable autologin by listening for Firebase authentication changes to detect the current user. Then switch the root view controller to the main view when a user is logged in.
Create and connect four tab views—chats, channels, users, and settings—using table view controllers, segues, and SF symbols in Xcode to build a complete chat app interface.
Embed the settings view in a navigation controller to enable a large title. Create a three-section static table view with avatars, labels, and disclosure indicators.
Learn to design an edit profile UI in the settings screen, including avatar image, name field, and optional profile picture, using a storyboard table view with segues and constraints.
Save user name changes to Firebase and refresh the profile UI on each view appearance by configuring the text field and updating local and cloud data on return.
Save files locally by locating the app’s documents directory, building file paths, and checking existence before writing image data for avatars, and using atomic writes to protect existing files.
Learn to download and cache avatar images locally, checking for existing files before download. Fetch from Firebase when missing and return the image via a completion handler.
Fetch the locally stored image, convert file contents to a UIImage, and if unavailable, download from Firebase, then save the image locally and return via completion.
Build a status feature by creating a status enum and loading statuses from user defaults, then display them in a status table view with a checkmark for the user.
Learn to show and persist user status in a chat app using user defaults for first run setup, map statuses, update a status table with checkmarks, and sync with Firebase.
Create dummy users for the iOS chat app by building a users data source, enabling search with a search controller, and uploading avatars to storage and saving to Firebase.
Download a user by id from Firebase, via a completion handler. Fetch all users with a limit, decode to user objects, and filter out the current user.
Design and implement a profile view UI in a chat app using a table view controller with static cells, an avatar image, name and status labels, storyboard constraints, and Xcode.
Create a recent chat cell and struct to track who you chat with, the last message, timestamp, and unread count, tied to a chat room and Firebase server timestamp.
Implement a custom recent chat cell for an iOS app, wiring avatar, username, last message, and date outlets; configure with a recent chat and show unread counts.
Explore how to manage recent chats in a group chat by identifying which users lack recent conversations, generating new recent objects with sender and receiver details, and saving to Firebase.
Discover how to display recent chats in a table view, download them from Firebase, and add a search controller to filter by chat partner name.
Navigate from the profile view to a private chat room by initializing the chat view controller with the recipient's id and name and pushing it onto the navigation stack.
Learn to implement chat extensions by organizing five delegates into separate Swift files, conforming to MessageKit protocols, and wiring the data source, display, layout, and input bar handling.
Implement MKR sender and MKMessages message conforming to the sender type protocol for chat handling. Set default outgoing and incoming bubble colors and add initializers for message creation and display.
Implement a Realm manager with a shared instance to save any object conforming to the object protocol into the local Realm database, supporting create and update and handling errors.
Implement a function to save outgoing chat messages to Realm, iterating over member IDs and persisting each message to the database, then test by sending a sample message.
Save chat messages to Firebase in real time, organized by member ID and chatroom, encoding messages as JSON and handling errors, while a Firebase listener reads and syncs across devices.
Load chats from Realm by querying local messages for a specific chat room, filtering with a predicate on the chatroom id and sorting by date in ascending order.
Create an incoming message class to convert local messages into AMK messages for display in the chat collection view, handling text and multimedia messages and providing insert and process functions.
Learn to customize chat message cells in an iOS app by adding top date labels every third message, dynamic label heights, bottom status labels for the sender, and avatar initials.
Create the message bottom label for chat messages, show a timestamp for non-last messages and a read status for the last message using attributed text with a 10-point system font.
Learn to toggle the microphone and send buttons in the message input bar by dynamically updating the mic button status based on text presence, creating a responsive chat interface.
Create a last message date helper to drive real-time chats, default to now when no messages exist, and add one second to prevent duplicates in Firebase queries.
Implement loading earlier chat messages in an iOS Swift app by showing the last 12 messages, tracking display counts and indices, and enabling pull-down reload to fetch more.
Learn to build a Firebase typing listener that powers typing indicators in chat rooms by creating a typing collection, tracking each user's typing flag, and listening for changes.
Update the message status to read and record the read date in Firebase for each member by looping through member IDs and updating the appropriate message document.
Listen for read status changes in Firebase messages by attaching a snapshot listener to chat data, convert updates to local messages, and update the chat in real time.
Fix the infinite loop between Firebase and the local database by updating only incoming messages, not those already read, and refining listeners to avoid redundant writes.
Add an action sheet to the chat app to send multimedia, wiring the attach button to present camera, library, and location options with icons, and hide the keyboard.
Learn to send a picture message by uploading the photo to storage, retrieving its link, composing a photo message with a unique chatroom-based name, and saving locally.
Configure long-press gesture recognizer on the mic button to record audio messages like WhatsApp. Begin on began, stop on release, save a unique file name, check file exists, and send.
Create an audio recorder class in Swift, manage microphone permission, configure an AVAudioSession, and implement start, stop, and setup functions to save recordings to the documents directory.
Implement an audio message play feature in a chat app using a basic audio controller to manage play, pause, and stop across multiple messages. Stops playback when leaving the chat.
Explore the basic audio controller class that manages the audio player, progress view, duration label, and cell configuration, with play, pause, stop, resume, and a timer-driven progress bar.
Build and navigate the channels user interface in an iOS chat app, where admins post and subscribers read, view subscribed and all channels, manage members, and create new channels.
Build a Firebase-backed channel model for Swift chat apps, including ID, name, admin, member IDs, avatar, and timestamps, plus a channel cell showing name, about, members, and last message time.
Dequeue a reusable channel cell by identifier, configure it with a channel, and drive the channels list using two arrays (subscribed and all) controlled by a segmented control.
Build my channels and add channel interfaces in a swift storyboard using table view controllers with a plus button and static cells for avatar, channel name, and about channel.
Download user channels from Firebase where admin id equals current user id, listen for changes, map to channel objects, and sort by member count for display.
Learn to edit channel details by reusing an add/edit view, implement segues from the channel list to the edit screen, pass an optional channel for editing, and handle optionals safely.
Enters editing mode by populating name, about, and avatar from the selected channel, updates the title to editing channel, and assigns the channel ID for in-place updates.
Download channels from firebase and subscribe channels, update the table view in the background, and auto reload when the user switches between all channels and subscribed channels.
Set up a channel detail delegate to notify on follow, update channel members in Firebase, save changes, and refresh all channels and subscribed channels when the user follows a channel.
Learn how to implement unsubscribe and delete channel functionality in an iOS chat app using Swift, handling admin versus member permissions, swipe-to-delete actions, and syncing with Firebase.
Refactor channel chats by saving all messages in one place, adding a channel parameter to sending, and fixing the date label and read-status logic for messages, with push notification setup.
Reset the app icon badge to zero by implementing a reset badge function that sets the UIapplication.shared.application.iconBadgeNumber, called after login, on disconnect, and when the app enters background or foreground.
In iOS 14 & Swift Chat Application Like Whatsapp Viber Telegram, we are going to build a real-world iOS application. And when I say real world, I mean you can use this App every day, communicate with friends and family!
Unlike any other courses on Udemy, I always teach full real-world apps, when we finish with the course, we are going to have an app ready to post to AppStore. This iOS14 Chat Application can easily replace your native iOS chat app or WhatsApp.
What our app will include:
· One on one chat
· Channels
· Multimedia messages (Photo, Video, Audio, Location)
· Push Notifications
· Firebase users Authentication
· Firebase storage
· Firebase Firestore
· Firebase Cloud Messaging
· Custom UUCollection views
· Custom UITableviews
· Git Source control
· the app covers many more topics its, impossible to include all of them here
This iOS 14 & Swift Chat Application Like Whatsapp Viber Telegram is NOT a beginner-level course. You need to know your way around the xCode, be familiar with it, you have to have basic knowledge in Swift and application building. We are going to start from scratch and build the application together. All assets will be provided by me. I will type and explain every line of code. the course is around 35 hours long. And by the time we finish, you will learn a lot of new things even if you are an experienced, iOS developer.
The curse will teach you how to write clean code, structure your app development, so even if you get back to your code in few years, you can read and understand it clearly.
We are also proud to say that we have one of the best Support available on Udemy! Our Q/A Section is constantly monitored and all questions are answered within few hours, Sometimes we even chat with students in real-time to help them with the issues they may face during the study.
Don’t waste your time on low-quality courses where you don't even get the support of the instructor
Don't just take our word for it, check out our other courses and what other students have to say about our courses!
We are so confident that you'll love this course that we're offering a FULL money-back guarantee for 30 days, No Questions Asked!
So what are you waiting for? Click the Buy Now button and join the best iOS 14 & Swift Chat Application Like Whatsapp, Viber, and Telegram development course and let's get started.