
Master Flutter basics by building six practical apps, from Hello Flutter to a Firebase-powered final chat. Explore widgets, API integration, error handling, and global state management.
Install flutter on Windows, including Git for Windows and Android Studio with SDK tools. Run flutter doctor to verify, then set up an emulator in Android Studio.
Learn how to set up Flutter on macOS, choosing between manual install and Homebrew, install Flutter via Homebrew, configure Android Studio, SDK tools, and an emulator, and run flutter doctor.
Download and install Visual Studio Code from code.visualstudio.com for Windows or MacOS, launch it, install the flutter extension (with the dart extension) and error lens, and enable word wrap.
Verify git is installed by running git -v in your terminal to clone GitHub projects, and create a GitHub account at github.com if you don't have one.
Explore how to define functions in Dart, call them from a main function, pass positional and named arguments, use variables and data types, and print results.
Learn data types in Dart, using types like num, int, double, string, bool, and dynamic; adopt camel case, avoid special characters, and use type checking to prevent errors.
Learn return types in Dart by creating a main function and a calculate square function that returns a number. Understand void for no return and type safety.
Master object-oriented programming in Dart by building classes with properties and methods, and using constructors to create initialized objects with optional parameters.
Learn how to use inheritance in Dart by extending a bike class to create a custom bike, reuse properties and methods, and override behavior with constructors and super calls.
Create your first flutter project, set up a VS Code workspace, organize files in the leaf folder, and run the app on an emulator via debugging.
Fix common flutter emulator issues by wiping data or recreating emulators in Android Studio, then run flutter clean and pop git before debugging in VS Code, seeking Google if needed.
Begin your first Flutter app Hello Flutter and explore basic widgets, UI components, containers, columns, text styles, and fonts, then refactor as you progress.
Clone the hello flutter app from GitHub, install dependencies with flutter clean and flutter pub get, and launch the emulator to preview the code and basic concepts.
clear the main.dart, set up a new flutter app using runApp and MaterialApp, and render hello flutter in the home to launch and test in the emulator.
Explore how Flutter widgets power the user interface, from text and images to buttons, and see how scaffold and app bar compose a basic interface.
Learn flutter's hot reload, hot restart, and hard restart during debugging in VS Code. Extend a stateless widget to enable instant UI updates as you modify code.
Learn to use Flutter's container widget to wrap content, set height and width, apply color or box decoration, and control padding, margin, and border radius for polished layouts.
Arrange three text widgets in a column inside a container, using mainAxisAlignment, crossAxisAlignment, and padding to control vertical spacing and horizontal alignment.
Flutter layout fundamentals by building a centered column layout with image and text, learn wrapping widgets, padding, decoration, and alignment techniques for clean UI.
Apply text styling with the style argument and TextStyle to set color, weight, and size. Learn how rows and columns align widgets horizontally and vertically.
Learn to load images in Flutter using asset and network approaches, organize assets in assets/images, configure the YAML file, and adjust image height and width for proper display.
Learn to load and use fonts in flutter with Google Fonts, configure pubspec.yaml, apply fonts to text widgets, and manage multiple fonts, including a global font in MaterialApp.
Wrap up the Hello Flutter app by modularizing the container into its own file, importing components, and applying final UI tweaks like spacing, color, fonts, and assets.
Clone the billionaire Flutter app from GitHub onto your device. Set up the project in VS Code, install dependencies with pub get, and launch the emulator to explore the app.
Start a new flutter project, configure the org and app id for publishing, and implement a dark mode app with a centered title using material theme.
Develop a flutter UI featuring a blue-grey container and a balance section. Implement an elevated button that prints to the debug console on press, and compare text vs outline buttons.
Learn how stateful widgets and states enable dynamic UI updates in Flutter by using setState to rebuild after changing a balance, and explore persisting data with shared preferences.
Save data locally in Flutter with the shared_preferences package from pop.dev, using set double and get double to manage a balance key and restore on restart.
Show how initState in a StatefulWidget runs once to load balance, while build updates the UI on state changes. Move load balance into initState to keep balance after hot restart.
Learn to refactor Flutter code by splitting into files, create a stateless add money button, and enable child-to-parent communication by passing a function from parent to child.
Learn how to pass data from a Flutter parent to a child via constructors and props, and compare stateless and stateful widgets for dynamic UI.
Explore finalizing a Flutter billionaire app by formatting currency with intl's number format, escaping symbols, and updating app icons and names for Android and iOS.
Kick off the Tudou app by organizing tasks and to-dos, mastering conditional rendering, and using draws, dialogues, bottom sheet, dismissible, and floating action buttons to build from the ground up.
Clone a Flutter todo app from GitHub, set it up in VS Code, run and debug on an emulator, and explore the code before starting the project from scratch.
Start a new Flutter project from the terminal, open it with code dot, and configure a light Material 3 themed app with a main screen and scaffold.
Learn to make widgets interactive using GestureDetector and InkWell, adding on tap feedback and ripple effects, and display a customizable modal bottom sheet in Flutter.
Create a Flutter text field tied to a text editing controller to capture a todo. Print it, then clear the field and add hint text in a bottom sheet.
Master advanced child-to-parent communication in Flutter by passing data from child to parent, using callbacks and setState to update text, and managing keyboard padding with MediaQuery.
Discover how to create and manipulate lists in Dart, including strings, indexing, and common operations like add, addAll, insert, remove, and reverse.
learn to render a to-do list in Flutter using list view builder, defining itemCount, itemBuilder, and index-based data display, with list style, leading/trailing icons, and on tap feedback.
Add items via a bottom sheet, insert at the top, and close with navigator.pop. Remove items with 'mark is done' and update state; next lesson covers data persistence.
Preserve your Flutter to-do list by implementing local storage with shared_preferences; save and load the list asynchronously, handling nulls and updates to keep data intact across restarts.
Learn to prevent empty and duplicate todos in a Flutter app by validating input with is not empty, avoiding duplicates, auto-focusing sheet text field, and showing alert dialog for duplicates.
Refactor the Flutter app by extracting the list view into a dedicated todo list builder widget and moving modal bottom sheet logic into a separate function for maintainability.
Learn to implement conditional rendering in Flutter using if-else logic to display widgets, strings, or styles based on runtime conditions, including handling empty lists and to-do item states.
Fine-tune the Flutter to-do app by optimizing user experience with an accessible floating action button, bottom sheet actions, and responsive text field submission to add items to the list.
Explore advanced Flutter app development by building the bucket list app, integrating a dummy Firebase API, practicing async/await and futures, and implementing multi-screen navigation, data filtering, and loading indicators.
Clone the bucket list Flutter app from GitHub, inspect the source code, and attempt to launch it on your emulator while noting Firebase API requests.
Set up a dummy API for a flutter project using Firebase real-time database, then test endpoints with Postman and review the API documentation.
learn to send json data to an api endpoint using Postman, creating a put request to add items to a database, and understand json, maps, and dart concepts.
Explore maps in dart by building and modifying map objects, using key-value pairs, accessing values, adding and removing properties, and connecting maps to json and lists.
Create and send json data to a server by building bucket list items as map objects, formatting as json, and using a real time database with rest api.
Create a Flutter project, build a main screen for a bucket list, configure Dio for http requests, and implement an async get data flow with a button.
Explore the difference between synchronous and asynchronous programming in Dart, and learn how async await and Future enable non-blocking code, including delaying tasks and handling API responses.
Master API requests in Flutter using async await and futures, perform a get request with the do package, and access response data and status code.
Master error handling in Dart by using try catch to manage syntax, type, and runtime errors, preventing app crashes and providing user alerts when API calls fail.
Implement a loading state indicator and refresh indicator in a Flutter list view. Auto fetch data on startup using init state, and enable swipe-down to refresh with a loading state.
Learn to implement multi-screen navigation in Flutter with named routes and MaterialPageRoute, including a floating action button that opens a bucket list screen and back navigation.
Pass data between screens in a Flutter app by tapping a list item to open a new screen, sending the selected title and image, and displaying them in the scaffold.
Manage api errors by showing an error widget with a try again button and toggling isLoading and isError. Refactor by creating mini widgets inside the same dart file for clarity.
Create a pop menu button in the list item to delete or mark complete, show a delete confirmation alert, and implement API-driven list handling with conditional rendering.
Implement index-based delete for a bucket list in a Flutter app, handle null values from real-time database and runtime errors, and refresh data on back navigation.
Learn to implement conditional data refresh in flutter apps using navigator.pop to signal updates, and apply patch requests to mark tasks complete in a real-time database with Postman tests.
Filter bucket list data to hide completed items by creating a filtered list from bucket list data, rendering only items with completed false and providing fallbacks for missing fields.
Learn how to add data to a real-time database using patch instead of post, and manage indices in the API path to update the list.
Learn Flutter form validation by wrapping inputs in a form widget with key, using text form field validators for empty values, minimum length, and auto validate mode on user interaction.
Refactor and wrap up the bucket list app by creating a scalable folder structure with a dedicated screens folder, renaming files to add_screen, main_screen, and view_screen, and updating imports.
Learn to manage global state with provider and switch between states, then wire a dummy read-only API from GitHub to serve fresh fun facts.
In this Flutter masterclass lesson, switch from list view to page view builder to display one fact at a time and swipe through facts from a GitHub json file.
Create a dummy read-only API on GitHub to supply fun facts to a Flutter app; fetch the JSON with a GET request, decode it, and display in a page view.
Use a global state with ChangeNotifierProvider to manage app theme across nested wizards. Access the provider in build with provider.of(context) and rebuild on changes to switch dark and light modes.
Learn to manage and update global state in a Flutter app using a theme provider, updater functions, and consumers to reflect changes across widgets and update the app theme.
Preserve and load the app theme across restarts by storing a boolean in shared preferences, loading it via a provider during init state, and updating the UI accordingly.
Build a global chat app with Firebase authentication and real-time database, creating and joining chat rooms, sending messages, and performing CRUD data operations to manage users and chats.
Set up the Global Chat Flutter project and connect it to a Firebase project by installing the Firebase CLI, configuring FlutterFire, and enabling Android and iOS apps.
Initialize Firebase in your Flutter project by importing firebase_core, creating a main function, and calling Firebase.initializeApp with platform-specific options after ensuring the Flutter engine is initialized.
Change the global chat app icon and display name for Android and iOS. Add assets for fonts and images, implement the Poppins font by updating pubspec, and enable material three.
Learn how a splash screen decides whether to route users to login or dashboard based on login status, using Flutter initState, future.delayed, and push replacement.
Enable Firebase authentication with email and password in your Flutter app, then build a sign-up screen with a validated form, including email and password fields, validation, and text editing controllers.
Learn to create user accounts with Firebase authentication in a flutter app. Install and use firebase_auth package, handle errors with try/catch and snackbars, and navigate to dashboard after signup.
Separate the sign-up logic from the UI by moving it to a signup controller, while the signup screen renders the UI only, using a static function with email and password.
Implement login with email and password by reusing signup form, wiring a login controller, and conditionally forwarding authenticated users from the splash to the dashboard using Firebase auth.
Decorate the app by adding a logo from assets/images, load it with image.asset, size it with a sized box, and make login and signup buttons full width with purple accent.
Enable Cloud Firestore in your Firebase project and connect it to your Flutter app using the Firestore package to store user data beyond authentication.
Create a new user in Firestore by saving name and country, link the record to Firebase Auth with the uid, and store it under the users collection.
Learn to fetch and display user data from Firestore in a Flutter app, implement logout, and plan a global user provider to share profile details across chatrooms and dashboards.
Create a user provider with change notifier and wrap the app with ChangeNotifierProvider to store and access user name, email, and id across all screens via Firestore data.
Learn how to create and list chat rooms in a Flutter app using Cloud Firestore, loading chat rooms into a list view with titles, descriptions, and avatars.
Enhance the dashboard drawer and profile by adding a user details section with a circle avatar, name, and email, and enable navigation to the profile page.
Learn to implement edit profile by opening a dedicated screen, validating input with a form, and updating user data in Cloud Firestore, then refresh global state.
Fixes a flutter provider state issue by refreshing user details on login and signup via the splash screen, and adds loading indicators for authentication delays.
Learn to send chat messages into a chatroom by composing a message object, wiring a send action, and storing it in the database's messages collection with server timestamp.
Use a StreamBuilder to listen for real-time updates from the messages collection and display messages ordered by timestamp with sender name and text.
Master real-time chat UI in Flutter by filtering messages with conditional queries, handling stream errors, and creating necessary Firestore indexes while learning to limit results to the latest messages.
Design and finalize a chatroom page by using a unique sender ID to align messages right for the user and left for others, with styled chat bubbles and wrap-up notes.
Get ready for a no-nonsense journey into Flutter app development. We're not here to waste your time or inundate you with unnecessary details. We've walked the walk, published apps, and now we're on a mission to teach you only what truly matters.
In this guide, we'll strip away the fluff and focus on the practical, hands-on skills you need. No lengthy theoretical lectures or mind-numbing jargon—just the good stuff. From core concepts and widgets to state management and connecting with APIs, we've got your back.
Oh, and did we mention Firebase? Because who needs a convoluted explanation when you can dive straight into harnessing its power for your apps?
Get ready to cut through the noise and become a Flutter maestro.
No-nonsense, just knowledge that sticks!
Here's a sneak peek at the knowledge you'll acquire in this course:
Fundamental concepts of Dart & Flutter
In-depth understanding of Flutter Widgets
Effective state management techniques
Mastering animations within Flutter
Seamless integration with back-end through APIs
Harnessing the power of Firebase for advanced functionalities
Advanced topics in Flutter UI/UX design
Providers for State Management
Github
Firebase Authentication, Firestore, FlutterFire and more
Real-world projects and hands-on applications of Flutter principles
So, buckle up! Get ready to cut through the noise and emerge as a Flutter maestro. Happy coding!