
Explore quick chat 2.0 for iOS 10 and Swift 3, a whatsapp-like chat app with login, one-to-one and group chats, multimedia messages, avatars, calls, and notifications.
Install CocoaPods and verify the version, sign in to Firebase, create the QuickChat 2.0 project, download the Google services file, and add it to your project.
Set up the QuickChat 2.0 iOS project by organizing the folder, navigating directories, and configuring dependencies in a workspace, using Firebase for chats and RTC integration.
if you have problems in lecture 8 (after this lecture) watch this video.
Initialize firebase and its real-time database in the app delegate. Define constants for first-run states and message types, and enable local persistence for offline use.
Request location permission and privacy in the welcome view, then build a login screen with email and password fields, a login button, and a register action wired to code.
Create a login function that validates email and password, shows a progress hud, calls the backend to log in, handles errors, and navigates to the app on success.
Register a new user by validating email, username, and password, optionally uploading an avatar to the backend and obtaining its image link, then log in after success and handle errors.
Explore the first run of a WhatsApp-like chat app, validate login and registration flows, fix firebase warnings, enable dynamic user definitions, and ensure secure password handling and email validation.
Explore managing privacy and permissions for camera and media library. Build a Camera class that handles photo library access, image picking, and a delegate-driven camera workflow.
Build a recent chats list by creating a table view with a custom cell, including avatar, name, message, and date labels, and wiring the controller and navigation controller.
Load and display recent chats from firebase in a swift 3 iOS app, querying by the current user, sorting by date, and populating the recent cells in a table view.
Create a custom friends table view cell by connecting outlets for avatar and name label, rounding avatar corners, setting a default placeholder image, and dynamically sizing the name label.
Create a date formatter utility that converts the current date into a string for file naming. Use a year-month-day-hour-minute-second format to ensure unique avatar image names.
Fetch a friend’s user data by id, query the backend for the matching user in the users table, and download and display the avatar in the friend cell.
Refactor the avatar image upload process during registration to ensure reliable avatar handling, create image folders on upload, and test the flow end-to-end in the QuickChat 2.0 app.
Implement a load users function that queries the backend for all users except the current user using the object id, then refresh the table and wire the search controller.
Create and connect recent functions for a two-user chat by deriving a chat room id, listing members, and creating a recent item for each user to display in response table.
Create recent functions part 2 shows how to query existing recents by chat room, check user IDs with Firebase single event, and create a new recent entry when none exists.
Create a recent item using a Firebase-backed dictionary with an auto-generated id, date formatting, and error handling in Swift 3, including parameters and constants for keys.
Create recent items for private chats by passing user and room parameters, create two user reasons with id and username, and save dictionaries after existence checks.
Create and save recent chat items in Firebase when a user selects someone to chat, using start chat and updated Firebase rules.
Fixes an error when creating recent items by filtering Firebase queries to the current user, preventing unrelated data from loading and improving offline access.
Implement restart recent and update recent to manage recent chats for private and group conversations, updating the last message in firebase and creating recents for other users when needed.
Develop an update recent item function that refreshes the latest chat entry with last message, date, and counter, updating all relevant recents in a chat room and saving to firebase.
Explore implementing a time elapse function for a recent chat cell that returns 'just now' for under 60 seconds and formats older messages' dates for display.
Debug and implement the recent chats view in QuickChat 2.0 for iOS10, generating cells, loading recent data, refreshing the table view, and preparing tap-to-chat and delete actions.
Set up a chat view controller in storyboard, subclass as a message controller, integrate navigation and image picker for sending picture messages, and prepare firebase-based message storage with message arrays.
Set up chat data structures for a WhatsApp-like iOS 10 Swift 3 app, including message and avatar dictionaries, data, user lists, chat titles, and outgoing blue and incoming green bubbles.
Explain how to implement the chat view controller data source for a collection view, returning message cells, distinguishing incoming and outgoing messages, and supplying bubble images and text attributes.
Implement the chat view controller’s attributed top label to display time stamps, plan label heights, and placeholder functions for message status (delivered, read) in a WhatsApp-like iOS app.
Explore the chat view controller and its send message function, managing text and media messages with text, picture, location, video, and audio parameters.
Create an outgoing message class that generates and sends messages through five initializers: text, location, picture, meet, and audio, using a mutable dictionary for sender, date, and type.
Implement a send message function to save chat messages in Firebase under a chat room with an auto-generated message ID, update the last message date, and notify the recipient.
Create and send an outgoing text message in the chat view by configuring sender id, sender name, date, and type text, then call the send message function in Firebase.
Learn to send a message in the chat view controller by validating input and passing text and date; configure the chat controller with sender id, display name, and chat room.
Send your first message in a QuickChat 2.0 chat app by debugging the outgoing message flow, converting dates to strings, and saving text messages in a firebase-backed chat room.
Learn to load and validate Firebase chat messages, handle legit message types, and update the UI with incoming messages while setting up incoming message creation.
Display messages from a real-time database in a swift 3 iOS app, see new messages appear instantly when sent, and implement the load earlier messages function.
Implement a load more messages feature triggered by the load earlier button, updating the collection view, calculating message counts, and inserting new messages at the beginning to preserve order.
Demonstrate implementing a chat accessory button that presents an action sheet with camera, photo library, video library, audio message, and share location options via an alert controller.
Integrate the camera and photo library with the chat accessory button, implement the media picker delegate, and send picture or video messages using the camera class.
Convert image data to a base64 encoded string and save it to firebase to fix outgoing picture messages, addressing encoding options and ensuring proper decoding.
Debug and implement incoming picture messages in a swift 3 chat app, ensuring local save, online synchronization, and building a picture message with media items for display.
Implement sending a location message in a chat view controller by retrieving latitude and longitude from the location manager, building an outgoing location message, and saving it to Firebase.
Create a location message from latitude and longitude, build a location media item, determine incoming or outgoing, and refresh the collection view to display the first location message.
Learn to update message read and delivered statuses as messages are downloaded and inserted, marking messages as read when retrieved and updating status when the sender is not ourselves.
Implement a function to update a message status from delivered to read by navigating Firebase paths for messages, chat rooms, and message IDs.
Log in as user one, view location-based chat messages on the map, and enable picture messages, while reviewing Firebase status and the last message updates, noting the color red.
Implement message time stamps and read/delivered status in a chat user interface by computing last message indices, handling outgoing vs incoming messages, and displaying appropriate status labels.
Implement upload and download functions for video messages in a WhatsApp-like chat app, generating unique file names, showing progress, and handling callback responses with video and thumbnail URLs.
Implement a video download function that streams media, derives the video file name, checks the documents directory for existing files, and saves a new download for offline playback.
Extract the video’s first frame at 0.5 seconds using an image generator, convert it to a CGImage and a UIImage, and return it as a thumbnail.
Learn to send video messages by extracting the video, generating a 320 square thumbnail, uploading media, and sending an outgoing message with the video link after upload.
If you are looking to learn how to build real world application, you have come to the right place.
This course is different from other Udemy course. I dont teach you to build 10 useless apps in 2 hours, If you are after quantity and not quality, this course is not for you.
This course is 27+ hours long in debt (every single step is covered) on how to build only 1 app. and that is a copy of Whatsapp Chat. After you finish this course you will have an app that can replace your messaging app and can be uploaded to App Store.
THIS IS NOT A BEGINNER LEVEL COURSE!
If you dont know your way around in xCode, how to make simple debuging, or this is your first tutorial, I strongly suggest you to take a beginner level course first before you take this course.
The QuickChat was updated to 2.01 version to work without backendless.
New update includes:
Overall the app became much faster, more responsive and easier to use. Offline functionality has improved as well. Push notifications work much better now.
This is not just update to existing QuickChat, QuickChat 2.0 its standalone course that has all the content of QuickChat and plus the extra functions, and its written in latest Swift 3 language. More than 20 hours of HD video material that will teach you have to build whatsapp clone, fully functional chat application with end to end encryption and call function.
This is not a beginner level course, you need to have programming experience in xCode and iOS programming in general.
This course will teach you how to building step-by-step a WhatsApp clone using latest Swift, xCode, Firebase and Backendless backend service.
We will be using Firebase as backend for our chat and Backendless for user login management, Push Service and File Storage.
Integrate App to App calling
The cool thing about Firebase is that its a real time backend, what does this mean? We dont have to constantly query for new messages, Firebase will push each new message to us automatically with no additional code required. This is very efficient on code writing and on network usage.
The application will work online and offline, Firebase will keep local datastore and will sync with online datastore ones the device gets internet connection.
We will use Facebook Login as well as user registration on Backendless.
The course will teach you how to integrate 3rd party libraries to your project, how to combine the Objective-C and Swift libraries.
I will teach you how to send and receive Push notifications to keep your users notified when they receive messages.
The application is build in a way that its very easy to modify to integrate to other applications as well, also you can continue building the app to a stage that you can post it to appstore as ready fully functional chat application.