
Explore how to build five social media apps with flutter and firebase, focusing on one app’s ui, firestore and storage, and essential state management and data modeling.
Watch a Flutter demo of an Instagram-like feed with real-time comments and image posts powered by Firestore and stream builder across platforms with responsive design.
Create a flutter project named instagram_flutter, open it in code, run on a simulator, and apply a dark theme by copying colors from a GitHub instagram clone.
Build a responsive layout with a layout builder, using constraints to switch between web and mobile layouts at 600 px width, using a dimensions file for web and mobile widgets.
Install firebase core, cloud firestore, and firebase storage for a flutter app, create a firebase project, and configure iOS, Android, and web with email authentication and firestore rules.
build a login screen UI in flutter for the sign‑up flow, featuring a centered logo, email and password fields, a login button, and reusable input widgets with padding and controllers.
Build a mobile sign-up user interface in a Flutter app by adding email, username, and bio fields with controllers, and include a circular avatar with a file picker.
Learn to implement Firebase authentication in Flutter, create users in Firebase Auth, store user data in Firestore, and upload profile images to Firebase Storage with image picker and validation.
Implement firebase login in flutter by creating login function with email and password, use sign in with credentials, show a loading indicator, and snack bar feedback while handling firebase exceptions.
Persist authentication state in Flutter with Firebase, handling login and home screen navigation in main.dart, using stream-based auth checks.
Create a user model with required fields and a named constructor, then implement a to Jason method to convert the user to a map for Firebase use and data persistence.
explains fetching the username from firebase, converting it to a user model, and managing state with the provider package for one-time data retrieval and updates.
Create a mobile bottom app bar with a Cupertino navigation bar, linking five icons to a page view via a page controller, with dynamic icon colors and non-scrollable navigation.
Explore building a Flutter post creation screen with a center upload button, profile image, and description input, featuring a responsive layout, text field, and image preview.
learn to implement image selection in a Flutter app by using a simple dialog with gallery and camera options, selecting an image with image picker, and displaying it.
Learn to store post data in Firebase by uploading images to Firebase Storage, generating a unique post ID, and saving a post model in Firestore with description and user info.
Design a flutter feed posts ui with an app bar, avatar, username, image post, like, comment, share, and delete actions, plus navigation to messages and a firestorm data source.
Display all posts in real time from a Firestore collection using a stream builder, showing user image, username, description, likes, and comments.
This Flutter and Firebase tutorial teaches building a like animation for social media apps using a dedicated widget, animation controller, scale transition, and animated opacity triggered by a double tap.
Implement a like toggle in flutter with firebase: toggle user id in the post’s likes using array union and remove, update only the likes field, and reflect changes in real-time.
Build a Flutter comments screen UI with a scaffold and app bar, plus a bottom input for posting. Display comment cards with avatar, username, text, and a like button.
Store and display comments in Firestore by creating a comments subcollection under each post. Build a data model with user id, username, profile pic, and text, all updated asynchronously.
Display and stream comments from Firestore, sorted by date published, with a loading indicator and a comment card UI for posting and viewing comments in real-time.
Learn how to delete a post in Firestore by deleting its document in post collection, handle the async operation with a try-catch block, and update user interface and dialog.
Search for users on the third screen using a text field and Firebase where query on username, then display matching results in a list with avatars.
Showcase building a search screen that displays posts and polls in a staggered grid with Flutter and Firebase, loading posts from Firestore and rendering images while enabling profile navigation.
Create a reusable Flutter profile screen with a scaffold, app bar, circle avatar, and bio plus posts, followers, and following counts, plus follow or edit actions.
Retrieve and render a Firestore profile using a constructor-provided user id, showing username, bio, avatar, and post count with followers and following; load posts in grid and enable follow controls.
Implement follow and unfollow functionality by querying the Firebase Firestore users collection, checking the following list, and updating the followers and following counts accordingly.
Implement an asynchronous sign out on the profile screen using the auth instance, await signOut, and navigate to the login screen with pushReplacement to keep the user signed out.
Develop a responsive Flutter web UI for a social app using conditional rendering, media queries, and adaptive layouts across mobile and web, with an Instagram-like top bar and navigation.
Build a full-stack social app with a Firebase backend, enabling video and image uploads, captions, sharing, likes, comments, and profiles across Android and iOS.
Set up a flutter project with version 2.8.1, modify main.dart to display hello, run in simulator, organize colors in a constants file, customize scaffold background, and hide the debug banner.
Build the login screen UI in a flutter app using an mvc structure, with email and password inputs, input decorations, and a tappable login button.
Create a sign up screen with username input, a circle avatar for image selection, and integrated authentication logic using Flutter and Firebase.
Create an authentication controller to separate logic from the UI, initialize Firebase with authentication, Cloud Firestore, and Firebase Storage, and configure the project in the Firebase console.
Learn to set up Firebase for a Flutter app, including iOS bundle configuration, Google services, Android deployment, and enabling email/password sign-in, Firestore, and Firebase storage for user profiles.
Create a user model in Flutter with name, profile photo, email, and user ID, including to JSON and fromSnapshot converters, and implement storing to Cloud Firestore with image handling.
Persist user state across sessions by binding the Firebase current user to a stream and using Get navigation to swap between login and home screens.
Add a bottom navigation bar to the home screen with five items: home, search, custom plus, messages, and profile, each with icons and labels, controlled by a stateful index.
Create a new video screen with a centered button that opens a show options dialog to pick a video from gallery or camera, then navigate to a confirmation screen.
Set up a video player with the video package, create and initialize a controller, play and loop the video, and build a user interface for song name, caption, and sharing.
Learn to implement a Flutter and Firebase video upload flow by building an upload video controller, compressing videos, uploading to storage, generating thumbnails, and saving video metadata to Firestore.
Create a vertical video screen in flutter using a page view and a network video player, with an overlay showing user, description, song, and interactive icons.
Create a real-time video controller that binds a firestore video collection to an observable list, mapping query snapshots to video models and displaying them in a dynamic UI.
Learn to implement a like and unlike feature in a video feed by updating the Firestore 'likes' property with the user UID, using a document snapshot, and handling real-time updates.
Build a comments screen in Flutter using Firebase; display comments with avatars, usernames, timestamps, and like counts; post new comments, update post's comment count, and navigate from video screens.
Build a Flutter search screen that uses a GetX controller and a Firebase query to fetch users, display results in a list, and navigate to a profile screen on tap.
Build a dynamic flutter profile screen with username, avatar, followers, and following counts, loading images from firebase and enabling sign-out, follow, and a thumbnail grid.
Build a zoom-clone app with Flutter and Firebase, enabling Google sign-in, creating and joining meetings with IDs, muting audio, video on, sharing YouTube videos, livestreaming, chat, data stored in Firebase.
Create and configure a Flutter project using a specified version, initialize boilerplate, clean comments in lib, and run the app to view hello world, then begin login screen design.
Design and implement a Flutter login screen UI using Firebase authentication, featuring a custom rounded button, image assets, routing, and Google sign-in integration for a Zoom clone app.
Configure Google sign-in with Firebase authentication and store new user data in Firestore, setting up plugins, Firebase console authentication, and robust error handling for a Flutter app.
Register the iOS app in the Firebase console, configure the iOS bundle ID, and initialize Firebase in code. Verify Google sign-in and explore authentication data in the console.
Configure firebase for android in a flutter app by registering the package name, adding google-services.json, setting min sdk to 19, enabling multi dex, and troubleshooting google sign-in on the emulator.
Utilize a stream-based approach to persist and reflect user state in real time, handling login, home, and loading states with StreamBuilder, snapshot data, and a bottom navigation bar.
Learn to build a home screen UI in Flutter with a bottom navigation bar, fixed type, color theming, and a reusable home meeting button for actions like create and join.
Learn to set up Jitsi Meet for video meetings in a Flutter app, configure iOS and Android builds, manage permissions, and implement Google sign-in with debugging tips.
Create a new meeting workflow in a Flutter Firebase app by adding a history meetings screen, generating random room names, and wiring navigation to join and display the correct screens.
Build a join video screen in a flutter and firebase tutorial by implementing a video call screen, joining meetings via room IDs, handling user names, and adaptive meeting options.
Create and store each meeting’s name and creation time in a firestorm collection, using a Firebase instance and user id, with try-catch error handling and meeting history updates.
Display a user’s meetings history by streaming Firestore data in Flutter, building a dynamic list with a loading indicator, and formatting timestamps into readable dates.
Learn to add a logout button in the settings, implement an asynchronous sign-out function with error handling, and verify the logout flow on Android and during cross-device testing.
Test the app on a physical Android device and iOS simulator by signing in with Google, joining meetings, chatting, and verifying camera and video in dark mode.
Evaluate the pros and cons of gypsy meat for the app, highlighting setup difficulties, documentation issues, open-source benefits, encryption, and options like video calls, sharing YouTube videos, and livestreams.
Build a real-time social media app with Flutter and Firebase, featuring Firebase authentication, live streaming, real-time chat, and responsive cross-platform deployment.
Learn to scaffold a Flutter project, configure themes and colors, and build an onboarding screen with login and signup buttons, using Material Design and a clean project layout.
Define and use named routes to navigate between screens, such as onboarding, and declare route names to prevent typos, ensuring smooth back navigation.
Build the onboarding ui in Flutter with a centered welcome text, two reusable buttons, and padding, using named routes for onboarding, login, and signup and simple navigation.
Design login and sign-up screens in Flutter with scrollable forms, email, username, and password fields, a consistent custom text field and button, responsive padding, and Firebase authentication.
Install firebase_core, cloud_firestore, and firebase_storage, set up a firebase console project, enable email/password authentication, and configure asia southeast database with public read/write storage rules.
configure ios app bundle, install google services, copy to runner, initialize flutter binding and firebase, run on simulator, resolve errors by updating port and installing plugins.
Learn how to set up firebase for Android in a Flutter app by configuring package name, downloading google-services.json, updating gradle files, enabling multiDex, and testing on an Android emulator.
Learn to sign up users in a Flutter app with Firebase authentication, store user profiles in Firestore via a user model, and manage state with Provider.
Implement a login flow with Firebase authentication by signing in with email and password, retrieve the current user, and ensure login state persists beyond app restart.
Persist login state in a Flutter and Firebase app by checking the current user, using a FutureBuilder, and routing onboarding to the home screen with a loading indicator.
Learn to design a bottom navigation bar in Flutter, with labeled icons for feed, go live, and browse, including theme colors, on-page change handling, and dynamic page content.
Build a go live screen UI in Flutter with a dotted border and text fields, and save images to Firebase Storage with post data to the feed.
Learn how to pick an image from the gallery in flutter using image picker and file picker, handle permissions, and display the selected image across Android, iOS, web, and Mac.
Fix memory leaks by disposing email, password, and username controllers, add loading indicators in signup and login screens, and use isLoading flag to show spinners while saving data to Firebase.
Design and implement a livestream workflow in Firebase: create Firestorm and storage methods, upload thumbnails, define a live stream model, and start the go live flow with channel id.
Install the Agora RTC engine 5.0.1 across Android, iOS, Marcus Web and Windows, configure permissions with permission_handler, and run a debugging setup to verify the app.
Fix Firebase livestream bugs by properly unwrapping optionals, validating inputs (title, thumbnail), and managing Firestore documents to prevent duplicate live streams, then configure for iOS.
Explore Agora iOS setup by adding camera and microphone usage descriptions, fix deployment target errors, and update the bar file for Mac M1 compatibility, then rerun the app.
Initialize the Agora RTC engine in the Flutter app by creating a global RTC engine and instantiating it with context via RTC engine create with context, passing the op id.
Learn how to obtain and integrate an Agora App ID, generate temporary tokens for testing, configure the RTC engine, and track user joins and leaves with event handlers.
Join a channel with video enabled, set the client role to broadcaster or audience, request microphone and camera permissions, and supply a token and channel name to start live broadcast.
Design the broadcast screen UI for the go live flow, scaffolding layout and rendering video with RTC views while managing broadcaster status and channel IDs.
Handle back navigation with WillPopScope to leave a live channel and clean up its data. Delete comments, update viewer counts asynchronously, and return to the home screen.
Explore implementing a camera switch in Flutter, with on-tap controls, conditional rendering, and a boolean switch to toggle the camera, including debugging and user interface layout considerations.
Implement a toggle mute that flips isMuted and updates the user interface to show muted or unmuted states, and mute the local audio stream via the mute button.
Build a real-time chat interface in Flutter with Firebase, using a stream builder to render messages from a livestream collection by channel id.
Install go by visiting go.dev/dl, selecting your OS and arm64 mac, and using the installer or homebrew; verify with go version and troubleshoot via Google or comments.
Create a Go-based server with routes, generate authentication tokens, run locally, then deploy the API to Heroku via git push and connect to GitHub for production.
Fetch a token by making an asynchronous http request to a Golang API, store and apply the token to join channels, and renew it on expiry with Firebase checks.
Design and display a Flutter feed screen that lists live users from the livestream collection, showing images, usernames, viewer counts, time-ago dates, and navigation to a broadcast screen.
Fix the join channel function by removing the hardcoded channel name and extra slash, ensure the path and widget are used, and test the app across Android, iOS, and web.
Set up firebase for web in a flutter app, copy firebase options, and initialize firebase in the main function; then configure agora on the web by updating html scripts.
Develop a responsive Flutter layout by wrapping content in a constrained box with max 600 and adapting to mobile or desktop, featuring video, chart, and chat.
Add a conditional end stream button to the broadcast screen in flutter, wrap with padding, and create a responsive bottom navigation for broadcasters.
Implement the screen sharing feature by initiating an asynchronous flow with Agora, selecting a window to broadcast, and joining the channel as a broadcaster while managing audio and video.
Explore how to implement and manage stop and start screen sharing in a Flutter and Firebase app, including web vs native rendering with RTC local view and texture view.
Learn to set up flutter macOS with firebase and Agora, configure the bundle ID and entitlements, add the GoogleService-Info.plist, and run cross-platform live streaming tests.
Deploy a Flutter web app by building the web output, hosting on Netlife, and configuring a custom domain, with cross-platform apps for Android, iOS, web, and macOS.
Wrap up the Flutter & Firebase tutorial series for building five social media apps, and thank viewers for watching.
Build a WhatsApp-style clone using Flutter and Firebase, featuring authentication, 1-to-1 and group chats, media sharing, video calls, replies, seen status, 24-hour status, and automatic scrolling with River Port 2.0.
Upgrade the Flutter version if needed, clone the main branch or download a zip, open in VS Code, install packages, and run on iOS or Android simulators.
Take a project runthrough of our Flutter and Firebase app, reviewing the MyApp setup, colors, and responsive layouts that switch between mobile and web screens.
Create a firebase project, install firebase tools via npm, log in, and configure Android and iOS with FlutterFire. Initialize with Firebase.initializeApp and FirebaseOptions, then add firebase_core, cloud_firestore, firebase_storage, and restart.
Configure ios for flutter firebase by editing podfile, running pod install, and resolving m1 mac issues with ffi and port install; verify the app and proceed to android firebase setup.
Fix android setup for flutter firebase by updating compile sdk to 31, minimum sdk to 19, kotlin to 1.7.0, gradle to 6.7.1, and enabling multi dex to launch the app.
Build a responsive landing screen in Flutter featuring a welcome text, background image, and a reusable custom button, organized under lib/features/landing_feature; wires to a phone-number input screen.
Explore building a Flutter login UI with Firebase authentication, including OTP and user info screens for WhatsApp details, managed by a repository and controller, with a country picker for numbers.
Enable and configure phone authentication in Firebase for Android builds, linking Google sign-in and OTP verification, and implement the sign-in flow with verification IDs and OTP screens.
Learn how Riverpod enables dependency injection in a Flutter project by wiring UI screens to a controller and a repository, keeping business logic out of the UI.
build an auth controller for phone sign-in with firebase, wiring an independent repository via riverpod providers and using plus country code in the login flow.
Explore Riverpod, a state management library for Flutter, and see how it catches compile time errors instead of runtime errors. Learn about dependency injection, reduced nesting, and counter provider examples.
Resolve an iOS app error by configuring Google services, adding the GoogleService-Info.plist, and setting up a custom URL scheme and URL types in Xcode to enable OTP verification.
Design a Flutter OTP screen UI with an app bar, a six-digit input, and automatic SMS retrieval that verifies the OTP with the server.
Learn how to implement verify OTP for phone authentication with Firebase: pass the verification ID and the user OTP, sign in with credential, and navigate to the user information screen.
Design a user information screen featuring a profile photo picker, a name input, and a confirm button, using a circle avatar and image picker for Firebase file store.
Save user data to Firestore by uploading profile photo to Firebase Storage, retrieving its download URL, and saving a user model to the users collection via a repository and provider.
Persist the authentication state by using a future provider to fetch the current user data into a user model, handling loading, data, and errors to show landing or mobile screens.
Display and select contacts from the user's phone using the Flutter Contacts plugin, verify users in Firebase, and navigate to the mobile chat screen.
Learn to display a contact's name and real-time online/offline status in a Flutter & Firebase chat, using map-based argument passing, Firebase streams, and a stream builder.
Refactor the chat screen by extracting a bottom chat field widget, and implement a text-driven send button that toggles to a recording icon, with Flutter UI refinements.
Learn to implement a send text message flow in Flutter with Firebase, storing last messages in contact sub-collection and messages sub-collection, and modeling chat contact and message data.
Display chat contacts in real time by wrapping a list view in a stream builder, fetching contacts from Firestore, and updating the UI via Riverpod.
Learn to display chat messages by building a chat stream, mapping snapshots to a message model, and differentiating sent and received messages with time formatting using a stream builder.
Learn to implement automatic scrolling in a Flutter chat list with a scroll controller and a stateful widget, scrolling to the latest message after each send.
Learn to manage online and offline status in a Flutter and Firebase app. Use a stateful mobile layout, a widgets binding observer, and app lifecycle to update Firestore.
Open the gallery and send the selected image as a file message. Upload to Firebase storage and save the image URL in the chat messages with sender and receiver data.
Learn to display cached network images in a Flutter chat by restructuring message cards and using the cached_network_image library to improve loading performance.
Learn how to send video messages in a Flutter and Firebase app by selecting videos from the gallery, handling video files, and displaying them with a cached video player.
Master how to integrate emoji input by using the Emoji Picker Flutter plugin, toggle an emoji container and keyboard, and update the text field with selected emojis.
Explore integrating gifs in a Flutter chat app using the Giphy plugin, key setup, and formatting gif URLs to send gif messages with Firebase Firestore.
Master audio recording and sharing in a Flutter app using the flutter_sound package for Android and iOS, with microphone permission handling, path_provider storage, and sending as a file message.
Learn to implement audio playback in a flutter app with an audio player, including a play/pause button and URL source, managed via a stateful builder in a stateless widget.
Build a message reply feature in a Flutter and Firebase chat app with a message reply provider, left swipe to trigger, and a reply preview UI.
Implement the seen feature by marking messages as seen when the receiver is the current user, updating both sender and receiver lists, and updating the UI icons accordingly.
Learn to implement a flutter status feature with tabbed navigation, gallery image picker, and a firebase backend that uploads status images, builds a status model, and controls visibility to contacts.
Fetch and display friends' statuses from device contacts within 24 hours using a status repository and future builder, then present them in a story view.
Create group screens and implement group chat functionality using Flutter and Firebase, including selecting contacts and building the create group flow with repository, controller, and provider.
Display chat groups and contacts by wrapping stream builders in a scrollable column, map group data from file store to models, and show last message and time sent.
Learn to fetch group chats and chat in groups by passing is_group_chat to the mobile chat screen, routing data from group or user collections, and saving messages accordingly.
Set up a new Agora project, configure app id and primary certificate, manage tokens and channels, update Android and iOS configurations, and integrate the UI kit to enable calls.
Implement a video calling feature in a flutter and firebase chat app using stream builders, a call model and repository, and a call pickup screen with accept and end actions.
Customize a disconnect button in a flutter and firebase social media app, with an async on-press to leave the channel and end the call, deleting caller and receiver records.
Builds a group call flow in Flutter using Firebase by fetching group data, collecting member IDs, sending receiver call data for group chats, and cleaning up on end call.
Apply code refactoring to prune folders, delete unused screens and dummy data, consolidate color utilities into utils, remove unnecessary imports, and resolve warnings for a clean Flutter app.
Explore implementing Firebase functions in a Flutter app, including automatic data deletion for statuses, call features with ringtone, chat and group chat, and logout integration, plus optional GitHub resources.
Test the chat app on android devices and emulators by sending messages and gifs, using the scene feature, and performing video calls to verify visibility and end-to-end flow.
This lecture explains authenticating with Flutter and Firebase, covering email/password sign-in, email verification, phone, Google, Facebook and anonymous sign-in, with multi-platform deployment, error handling, and provider state management.
Explore a Flutter starter app with a login screen featuring custom buttons and text fields for Facebook, anonymous, Google, and email/password sign-in, plus Firebase authentication scaffolding and phone sign-in.
Connect to Firebase by creating a Firebase project, installing Firebase tools, running Flutter fire config, and updating Android and iOS app IDs to enable email password sign-in on emulators.
Enable email or password authentication in Firebase and implement sign-up with email and password, including error handling via a snack bar shown with build context.
Implement email verification in Flutter and Firebase signup flow by sending a verification email, handling build context with a snack bar, and restricting access until the user’s email is verified.
Learn to implement phone sign-in with Firebase in Flutter, including otp entry, verification, and cross-platform handling for Android, iOS, and web.
Implement email password authentication with Firebase in a Flutter app, including sign up and login flows. Enable email verification and handle errors with snack bars.
Learn to implement Facebook sign in with Flutter and Firebase, including enabling Firebase authentication and configuring iOS and Android with app id, secret, and access token.
Enable anonymous sign-in in the authentication tab and save. Implement an async signInAnonymously function with a try-catch block and wire the login screen to sign in users anonymously.
Master state management in Flutter using provider and multi provider, set up two providers, and listen to Firebase user changes to route between home and login screens.
Learn to display authenticated user details in a Flutter and Firebase app by retrieving the current user, showing email, provider id, and user id, with email verification for non-anonymous users.
Implement Google sign in in a Flutter app using a dedicated package with Firebase authentication, configure Firebase provider, and set up iOS, Android, and web flows.
Create an asynchronous sign out function with a try-catch block, verify logout by returning to the login screen, then sign in with Google and view the account details.
Implement a delete account button that deletes the current user when sign out button triggers, by invoking the delete function on the user object using email, provider ID, and UID.
Build 5 Real World Social Media Applications in this tutorial!
We will go through Firebase Auth in detail after which work on real world projects like Instagram, TikTok, Zoom, Twitch & WhatsApp! These projects don't just talk about Firebase, projects like Twitch and Zoom even include third party SDK's to give a feel of how, when and why to use Firebase. The aim of this course is to make you familiar with Firebase and have 5 real world projects which you can work on, after this course to turn into a single app.
This course will have constant repetition which will ensure your confidence is high, even after completing this course and you don't have to take yet another course. If you have any questions during the course, I'll be more than happy to help you out with it! Keep Learning :)
Features of the projects we are going to build:
1. Instagram
Responsive Instagram UI
Email & Password Authentication
Share Posts with Caption
Display Posts with Caption
Like & Comment on Posts
Search Users
Follow Users
Display User Posts, Followers & Following
EVERYTHING REAL TIME
Sign Out
2. TikTok
Authentication with Email & Password
Uploading Videos with Caption
Compressing Videos
Generating Thumbnails Out of Video
Displaying Videos with Caption
Liking on Posts
Commenting on Posts
Liking the Comments
Searching Users
Following Users
Displaying Followers, Following, Likes & Posts of User
TikTok Like UI
3. Zoom
Google Sign In
Create New Meeting
Join Meeting
Mute/Unmute Audio
Mute/Unmute Video
Change Display Name while Joining
Raise Hand
Start Screen Sharing
Mute Everyone
Start Live Stream
Screen Share
Chat
Switch Front/Rear Camera
Picture in Picture
Enter Tile View
Disable Camera
End Call
See Your Meeting History
Log out
4. Twitch
Email & Password Authentication
Screensharing
Selecting Thumbnail
Going Live
Joining LiveStream
Switching Camera
Muting/Unmuting
Chatting
Cross Platform
Responsive UI
Token Generation using GO (Create Your API)
Deploy Server
Deploy Website
5. WhatsApp
Phone Number Authentication
1-1 Chatting with Contacts Only
Group Chatting
Text, Image, GIF, Audio(with Recording), Video & Emoji Sharing
Status/Stories Visible to Contacts Only and Disappears after 24 hours
Video Calling
Online/Offline Status
Seen Message
Replying to Messages
Auto Scroll on New Messages
Caching Images & Video