
Explore building a WhatsApp-style Android chat app clone using Jetpack Compose with Firebase authentication, database, and storage; implement login, signup, profile, chat, and status features.
Understand how the Udemy review system affects course visibility and why 5-star ratings matter for course standing. The instructor invites feedback to improve the course and earn positive reviews.
Create a new Android Jetpack Compose project with an empty activity, add dependencies such as navigation, Firebase Firestore, Hilt, Coil, and coroutines, and configure Google Services and kapt in Gradle.
Connect your Android Studio project to Firebase, create a chat app clone, enable authentication with email and password, and set up Firestore and Storage with development rules true.
Create screen placeholders for a WhatsApp clone using Jetpack Compose, including signup, login, profile, chat list, single chat (with chat ID), and status screens; plan NavHost in the next video.
Implement a navigation foundation by defining a sealed destination screen with routes and a nav host. Wire signup, login, profile, chat list, and single chat with dynamic id routes.
Create three vector assets for the bottom navigation—profile, chat, and status—and define a bottom navigation enum with drawable icons and destination screens for later implementation.
Implement a bottom navigation menu in Jetpack Compose, highlighting the selected item and enabling navigation between profile, chat list, and status screens with a navigation utility leveraging popUpTo and launchSingleTop.
Set up Hilt to decouple the Firebase instantiation, create a Hilt module that provides Firebase auth, Firestore, and storage, and inject them into a ViewModel for an MVVM Android app.
Build a signup screen UI in Jetpack Compose with name, phone number, email, and password fields, an app icon, login navigation, and a reusable progress spinner for Firebase authentication.
Implement an error handling pattern in a Jetpack Compose app using a generic event wrapper and view model driven toast alerts, consuming events to avoid repeats and log for debugging.
Learn to implement signup with Firebase authentication and Firestore, validate name, number, email, and password, handle errors with custom messages, and show a progress indicator during user creation.
Create a Kotlin data class named UserData to model user profiles, with nullable fields userId, name, number, and imageUrl defaulting to empty strings, and a toMap function for Firestore.
Create or update a user profile in Firestore during sign-up using the current Firebase Auth user ID. Upsert name, number, and image URL, with the UID as the document ID.
Auto navigate from signup to profile screen once signed in using Firebase authentication. Use a Firestore user data snapshot listener and a composable to trigger navigation on sign-in.
Develop login functionality in the view model by validating email and password, showing 'please fill in all fields' when needed, then sign in and get user data.
Implement a login screen UI for the WhatsApp clone by adapting the signup UI to accept email and password, wiring vm.onLogin, and navigating to sign up or profile screens.
Implement a complete logout flow that signs out the user, resets sign in state and user data, and triggers a logged out notification, while preserving existing profile data during updates.
Build the profile screen user interface for the Android Jetpack Compose clone, featuring back and save actions, image update via gallery with Firebase Storage, and editable name and number.
Build the profile screen UI for a WhatsApp clone using Jetpack Compose, with a back and save top bar, dividers, a placeholder profile image, and editable name and number.
Implement profile screen functionality by adding update profile data in the view model and wiring the user interface to save name and number, while keeping image functionality for later.
Select a device image to set your profile picture, display it as a circular card with a loading spinner, and bind its URL to the view model for later upload.
Implement uploading a profile image to Firebase Storage, generate a unique image id, retrieve the download url, update user profile, and refresh UI in a Jetpack Compose chat app.
Define chat data structures to model conversations, with ChatData and two ChatUser entries, including userId, name, imageUrl, and number; store chats in Firestore under a chat collection.
Create the chat list screen with a floating action button to add chats, using a view model to manage chats and in-progress states in a scaffolded UI.
Develop chat functionality by adding chats to Firestore through a ViewModel, validating digits-only numbers, checking for existing chats, and creating a two-user chat document with a snapshot listener.
Retrieve chats from the chat collection in the database for the current user, set the in-progress chats flag, populate the chats variable via a snapshot listener, and reset on logout.
Display chats in a lazy column on the chat list screen, using a reusable row with image and name to navigate to the single chat screen by chat ID.
Develop a single chat screen by defining a message data type, implementing send functionality, and storing messages in Firestore under chat and messages collections, with a view model managing state.
Build a single chat screen in Android Jetpack Compose with a header, a message list, and a bottom reply box to send messages to a Firebase backend.
Retrieve messages from the database using a snapshot listener on the chat's messages collection, mapping documents to message objects, sorting by timestamp, and showing a loading spinner while loading.
Implement a chat interface by displaying messages in a single chat screen, aligning by sender, coloring messages, and wiring the view model with live chat using a lazy column.
Build a two-screen status feature with a list and viewer, showing your and connected users' five-second statuses, and upload images to Firebase storage to update the database.
Implement the status list screen UI with a floating action button to upload statuses, fetch statuses and user data via a view model, and scaffolded layout with bottom navigation.
Retrieve status functionality demonstrates fetching recent statuses for chats in Android Jetpack Compose, using a 24-hour window and Firestore queries.
Designs the status list UI for the Android WhatsApp clone, showing my statuses separately from others and enabling navigation to a single status view via a lazy column.
Display all statuses for a user on a single status screen, with a top five-second progress indicator. Navigate between statuses or back using a nav controller and view model.
Celebrate completing the WhatsApp chat app clone for Android Jetpack Compose, showcasing code foundations and core functionality you can expand with more features.
Learn to build a real-time WhatsApp-like chat app for Android with Jetpack Compose, using Firebase authentication and Firestore for messaging, and features like status updates and profile management.
Understand the Udemy review system, why five-star ratings boost visibility, and invite constructive feedback to improve the course while aiming for top ratings.
Build the project on your local machine to learn by implementing what you see, follow along with the lectures, and use the GitHub repository code if you get stuck.
Install Android Studio on a Mac, download from developer.android.com/studio, install and run, set up a Nexus 6 emulator with Oreo or Lollipop images, and learn to rebuild code.
Install Android Studio on a Windows PC and start a new project. Use emulators, download Oreo and Lollipop images, and fix build errors with a clean rebuild.
Set up a new Android Studio project for a WhatsApp clone in Kotlin, configure colors, styles, and manifest, and run a test Hello world app on an emulator.
Rename the activity to login and build a main screen with swipeable sections (camera, chats, status) using a view pager, app bar, and a floating action button.
Build a main screen with a three-page pager hosting placeholder fragments driven by a sections pager adapter, each displaying a hello world label, plus a top menu with settings.
Hide the action bar on login and sign up screens, enforce portrait orientation, and implement navigation between login, sign up, and main activities using intents and onClick handlers.
Import the provided drawables, including the app icon, into the project's drawable folder to standardize assets for the WhatsApp clone, then update the manifest to use it.
Social media now has the largest user base ever.
Have you ever thought of owning a chat app similar to WhatsApp, WeChat, Line or Telegram?
Now you can
This course teaches you how to build a real world chat application. We will be coveting topics such as User Accounts, Profiles, Sending and Receiving messages, creating statuses and much more.
I will show you step by step how to build the app from scratch. Previous development experience is useful, but not strictly necessary, as we will write every line of code together and I will explain what it does.
More features than any WhatsApp clone app out there.
We will build several Whatsapp features like:
User accounts with signup and login
Initiate chats with contacts on your phone
Send sms messages to users that aren't signed up
User profiles
User details screen and potential enhancements
Live chat functionality
Live status updates
We will also be learning about more advanced topics such as Firebase Firestore, Real time communication and Threading.
If you have a passion for building things and are interested in Chat apps, this course is for you.
I will show you step by step how to build an Android app similar to WhatsApp, how to program it and what each step means. It's never been easier to have your own chat app.
Sign up today and start creating your own app.
And who knows, you might even get a date out of this.
30 day money back guarantee provided by Udemy
Highly rated instructor with over 10.000 active students and growing monthly.
Student feedback:
*****
"Great teacher! His courses brought me a lot bring me a lot of praise, thank you!" - Eduard
*****
"Yep, it is really WhatsApp clone course. Thank you Stefan for creating another wonderful and useful course. I highly recommend this course." - Cyrus