
Explore how Flutter fits into the mobile development landscape, uncover its unique selling points and Material Design patterns, and learn setup across Windows and Mac while previewing the course.
Master flutter development from setup and dart fundamentals to practical projects and state management. Build to-do, coin cap, instagram, and bmi apps with firebase, provider, and testing.
This lecture outlines native, web, and hybrid mobile development approaches and shows how Flutter fits, guiding you to build iOS and Android apps with potential for web and desktop deployment.
Explore Flutter, Google's open source framework for building beautiful, fast apps across mobile, web, and desktop from a single code base, featuring widgets and rapid prototyping with a developer-friendly workflow.
Flutter renders apps directly across iOS, Android, and the web from a single code base, using Dart widgets and the Skia engine for fast, native-like performance.
Explore Flutter architecture basics, including widgets as the building blocks, widget tree structure, layout with columns, and handling gestures with gesture detector, plus stateful vs stateless widgets and hot reload.
Explore Material Design as a Google-backed, open-source design system in Flutter, with pre-built widgets that help you prototype, build cross-platform apps quickly, and follow UI guidelines.
Explore the flutter widget life cycle, comparing stateless and stateful widgets from constructor to init state and build. See how setState triggers rebuilds to update the UI.
Explore Flutter documentation to get started, set up your development environment, and learn about packages, then ask questions via the course questions area, Stack Overflow, and Discord for troubleshooting.
Test your Flutter skills with end-of-section quizzes and challenges, and access walkthrough videos if you get stuck, with instant quiz results.
Explore the official Flutter and Dart documentation to access the getting started guide, install Flutter, browse the widgets catalog, and master async data with future and stream builders.
Access the source code on the GitHub repository, navigate project folders, download the full code as a zip, and review the MIT license and Discord community links.
Install the Flutter SDK on macOS, locate and unzip the SDK, edit your shell rc to export PATH to flutter/bin, source the rc, and verify the Flutter version.
Set up a complete flutter development environment on macOS by installing Xcode and Android Studio, running flutter doctor, upgrading Flutter, configuring licenses, and creating emulators.
Install the flutter sdk on Windows by downloading the flutter zip, extracting it to a user folder, updating the path, and verifying with flutter --version in CMD or Windows Terminal.
Set up flutter on Windows by installing Android Studio, diagnosing with flutter doctor, and resolving licenses. Create an Android virtual device via AVD Manager and configure VS Code for flutter.
Set up Visual Studio Code for Flutter development by installing the official Flutter and Dart extensions, plus Flutter widget snippets, to enable edit, run, and debug workflows with hot reload.
Explore the Dart programming language—an open-source, object-oriented language developed by Google used to build Flutter applications, featuring null safety in Flutter 2.0 and a Java-like syntax, preparing you for variables.
Master variables in Dart and Flutter by declaring with var or typed types, using print, and applying null safety, final and const, and late to handle deferred initialization.
Explore Dart data types such as numbers (integers and doubles), strings with interpolation, booleans, lists, and maps, and learn basic variable usage and string concatenation.
Explore the Dart string data type, learn concatenation and interpolation with the plus operator and dollar-sign syntax, and apply methods such as length, isEmpty, trim, substring, and split.
Learn dart numbers: ints and doubles, with num as base. Perform core arithmetic, convert strings with pass, and use toInt, toDouble, abs, and round.
Learn how to define and invoke functions in Dart, specify return types like void or int, and use positional and named arguments to create reusable, readable code.
Explore decision making in dart with if statements, else if, boolean logic, and switch cases to control code flow.
Explore how to implement loops in Dart, including for loops, while loops, and do-while loops. Use break and continue to control flow, and iterate over lists with initialization and conditions.
Explore Dart classes and objects, defining properties, getters and setters, and constructors; use this and super for inheritance with vehicle and car hierarchies, and print engine details.
Learn how maps store key-value pairs and act as dynamic collections, declare them with literals or constructors, and access values by keys to print results.
Explore lists in Dart, learn how to define and access list elements using zero-based indexing, and add items to lists, and check the list length and whether it is empty.
Learn about futures and asynchronous programming in dart and flutter. See how time-consuming tasks run on a separate thread, keeping the user interface responsive, and return results as futures.
Master asynchronous programming in Dart using async and await to manage futures and delays. See how awaiting results controls execution flow with practical examples of delays and console output.
Explore null safety in Dart and how Flutter 2.x enables null safety, covering non-null by default, optional types with a question mark, late, and the assertion operator for safer code.
Build your first Flutter app focused on user interface design and core widgets. Discover how scaffolds, safe areas, containers, padding, column, row, and stack shape a declarative user interface.
Create a Flutter project from the command line, set up the folder and editor, run on a simulator, and leverage hot reload to see code changes instantly.
Explore the flutter project structure, including dot folders, android, ios, web, lib, and build folders, and learn how pubspec.yaml configures dependencies, assets, and sdk constraints.
Learn how to spin up a Flutter app using runApp and MaterialApp, build a simple scaffold, and apply a global theme to set a consistent background.
import assets into a flutter project and display an image using a decorated container on a scaffold, include asset paths in pubspec.yaml, and adjust image fit.
Demonstrates how to add a text widget to the home screen, style it in white with a large bold font, and refactor the UI into private widget functions.
Learn how the Flutter safe area widget adds padding to keep the ui within the scaffold unobstructed by device notches and status bars.
Learn how to access the device's height and width in Flutter using MediaQuery and BuildContext, assign them to class properties, and use them to size containers within safe areas.
Explore Flutter UI by padding the title to center it, then add a dropdown button with two items and an onChanged handler.
Learn to use the column widget in Flutter to stack widgets vertically, control main axis and cross axis alignment, and adjust sizing and spacing for a clean UI.
Style the Flutter dropdown button by converting items to a string list, removing the underline, setting a default value, and applying color, container decoration, border radius, padding, and responsive width.
Learners implement a reusable dropdown widget in Flutter by encapsulating the dropdown button into a custom class that takes values and width, enabling styled dropdowns while following the DRY principle.
Learn to use the row widget to place two dropdowns side by side, adjust main axis and cross axis alignment, and refactor with the book right widget function.
Add a material button widget to the home page, customize its style with container decoration, colors, padding, and border radius, and wire a press handler.
Learn to layer a moon astronaut image over a two-layer Flutter UI using a stack and alignment widget, sizing and positioning the image for a polished, responsive interface.
Explore flutter fundamentals: stateless widgets, access device height and width, layouts with rows, columns, stacks, and containers; use the material library to build interactive widgets and display image assets.
Build a reactive to-do app in Flutter with persistent data using Hive, adding, completing, and deleting tasks while learning stateful widgets, futures, and lists.
Create a Flutter project, import Hive and Flutter packages from pub.dev, update pubspec.yaml, run flutter pub get, and launch the app in the iOS simulator to test.
Learn how to create a stateful widget in Flutter by implementing a home page with a private state class, wiring createState, and building an initial scaffold for the app.
Create the app bar in a scaffold, with a red bar and title, set toolbar height to 15% of device height, and set the title font size to 25.
Create a scrollable list in a Flutter app using ListView and ListTile inside a scaffold, customizing each tile with title, subtitle, trailing icons, and styling.
Add a floating action button to the scaffold to create tasks in the list view, wiring onPressed to the add task function and print to the debug console.
Learn how futures enable asynchronous tasks in Flutter, preventing UI blocking while fetching data from APIs or databases, and how to initialize Hive with await to ensure proper startup.
Create a task model class in Flutter with content, timestamp, and done fields, a named constructor, and toMap/fromMap factory methods for easy Hive storage.
Learn to display a pop-up alert in Flutter using showDialog and AlertDialog, add text field, capture input with onChanged and onSubmitted, and update state with setState to store a task.
Learn to implement Hive in Flutter by opening a tasks box and using a FutureBuilder to render a list view after the box opens, with a circular progress indicator.
Read tasks from a Hive box, convert them with task.fromMap, and render them in a ListView.builder. Show content, timestamp, and done state with decoration and a checkbox.
Add new tasks to the local box via the Flutter UI, validating input, creating a task with content, timestamp, and a false done state, then update the UI.
Implement on tap and on long press to update and delete tasks in the Flutter app, persisting state to the database with box operations and a future builder.
Build a to-do app in flutter, using stateful widgets, list views, future builders, and Hive for local storage, with dialogs, text fields, and navigation for task management.
Explore the basics of animations in Flutter and learn techniques to implement three example effects: a background that expands, a rotating star, and an expanding circular button.
Create a Flutter app skeleton by initializing a new project, cleaning boilerplate, and building a stateful home page with an empty scaffold ready for animations.
Explore flutter animation with pre-built widgets like animated container, triggered by gesture detector taps, using curves such as bounce in out to expand a circular button.
Explore animating a Flutter app background with a tween from 0.0 to 1.0 using a tween animation builder and a transform scale. Adjust duration and curves to achieve performant animations.
Implement a rotating star animation in Flutter using an animation controller, animated builder, and transform rotation. Initialize with vsync in initState and loop the animation with repeat for continuous motion.
Explore Flutter animations by building a simple animal app, covering tween animations, animation curves, duration, the Transform widget, and the animated container.
Develop a Flutter app called coin cap that fetches cryptocurrency data from a real API, displaying image, price, 24h change, and description, with coin switching and exchange-rate viewing.
Create a flutter project named coin cap, organize code in pages folder with a home page, set scaffold background color, and add dio and get_it, then run on iOS simulator.
Explore how rest APIs power Flutter apps by sending get and post requests to the CoinGecko API through an http client, and interpret server responses and status codes.
Explore the CoinGecko API overview, learn to use ping and /coins/{id} endpoints, read response headers and body, and access market data and current prices for building a Flutter UI.
Load a bundled json config from assets in Flutter, decode it into an app config model, and expose its api base url via a GetIt singleton.
Create a http service class as a wrapper around the dio client, using the GetIt package to register app config as a singleton and perform get requests to api endpoints.
Create a generic Dio get function in the HTTP service to fetch endpoints by path, building the URL, catching errors, and returning a future response.
Implement a coin selection dropdown on the Flutter home screen, load dynamic ui data aside from the dropdown, configure styling, icon size, and center the layout.
Learn to fetch bitcoin price in USD with a FutureBuilder, using an HTTP service, decoding JSON, and displaying the current price from CoinGecko API.
Build a current price widget in Flutter to display a coin's USD price, format to two decimals, and style the text inside a FutureBuilder column.
Implement a 24-hour bitcoin percentage change display by rendering a text widget that formats the value with a percent sign, retrieved from market data, in white 15pt text.
Add a coin image widget that fetches a remote image from a URL, displays it inside a decorated container with responsive height, width, and padding.
Build a Flutter description card for a cryptocurrency by creating a description card widget that reads the data map's description and styles it with padding and text.
Navigate between pages in Flutter using Navigator within a MaterialApp. Double-tap a coin image to push a details page that lists the cryptocurrency's exchange rates.
Explore implementing a dropdown button to select cryptocurrencies and dynamically update information, then display all exchange rates on the details page, solidifying Flutter fundamentals.
Implement a dropdown of cryptocurrencies in Flutter and wire the selected coin (ethereum, tether, cardano, ripple, bitcoin) to a FutureBuilder to load data. Use setState to update the selection.
Display cryptocurrency exchange rates on the details page by using market data's current price, passing a rates map to the details page, and rendering a dynamic currency list.
Build a Flutter coin cap app to fetch real-time crypto data from CoinGecko, select coins with a dropdown, and view 24h percentage, USD price, detail page with exchange rates.
Explore state management in flutter using the provider package and build a two-screen trivia app that lets you select difficulty, fetches questions from an api, and shows end-game results.
Create a new flutter project, add get_it, the Easter TV client, and the provider package, and learn how provider streamlines state management in flutter apps.
Import custom fonts into Flutter by downloading Architect's Daughter from Google Fonts, adding it to assets/fonts, configuring pubspec.yaml fonts, and applying fontFamily in themeData to style the whole app.
Explore the Open Trivia Database API to fetch quiz questions using query parameters, handle JSON results with category, difficulty, type, and true/false formats for your Flutter app.
Explore how the provider state management framework in Flutter exposes values, listens to changes, and updates the user interface, using a color-changing example across scaffold, container, and widgets.
Build the Flutter game page, replacing the home page, and create a scaffolded UI with a trivia question text and true/false buttons inside a safe area for responsive layout.
Develop true and false material buttons in Flutter by rendering button widgets, styling with green and red colors, assigning onPressed, and arranging them in a spaced column.
Wrap the game page with a change notifier provider to enable state management, instantiate a game page provider with context, and watch it to rebuild the user interface.
Fetch trivia questions from the API by building a query parameter map, sending the request, decoding JSON, and storing the results for the game page.
Connect a Flutter UI to a provider, show a loading indicator while API loads, and derive the current question text from the question count. Notify listeners to rebuild.
Implements a true/false answer flow in the game page provider, comparing the given answer to the correct one and updating the current question count. Notifies listeners to refresh the UI.
Show an alert dialog after answering, with a green background for correct answers and red for incorrect, including a check_circle icon, using a delayed future of one second before Navigator.pop.
Implement end game functionality in the Flutter UI by showing a blue alert dialog titled end game with the score, then wait three seconds and reset the question count.
Introduce the trivia app challenge: build a start page with a difficulty slider and a start button that feeds the selection to the API, then show the score at end.
Track and display the quiz score by adding a correct count variable, incrementing it for correct answers, and showing the final score as max questions and the current correct count.
Build the home page in Flutter by creating a simple stateful widget with a safe area and centered column, displaying the app title 'trivia' and planning a difficulty slider.
Implement a Flutter slider widget to select a discrete difficulty level from easy to hard. Bind to state, use divisions, and update the label accordingly.
Learn to implement a start game button in Flutter and navigate to the game page using Navigator.push with a builder to return the game page, enabling a trivia gameplay flow.
Pass the selected difficulty from the home page to the game page to load the correct trivia questions from the API, with the difficulty converted to lowercase.
Explore building a trivia app in Flutter by managing state with provider, using ChangeNotifier, passing data between pages, handling data changes, performing web requests, and implementing sliders with custom fonts.
Build an Instagram clone powered by Firebase with user registration, login, and image posting. Explore real-time feeds, profiles, and grid-view layouts with forms, bottom navigation, and app structure.
Learn how to build a Flutter app without Firebase, focusing on form handling, alternative navigation beyond named routes, input validation for a dummy login, and a feed with a profile.
create a new flutter project named fin talk, open it in visual studio code, and run it on an emulator to begin building a firebase-powered instagram clone.
Implement named routes in Flutter to navigate between login and register pages via a routes map and initialRoute in a Material app.
Create a login page user interface in flutter with a title, two text fields, and a login button. Include a 'don't have an account' link to the register page.
Build a login form in Flutter by grouping email and password text form fields into a form widget, using a global key to manage state and validate inputs.
Learn to validate and save form inputs in Flutter by wiring a login button to a form key, validating email and password, and saving with onSaved.
Add a tappable 'don't have an account' link on the login page using a gesture detector and Navigator.pushNamed to the register route, enabling back navigation.
Learn to build a register page user interface in Flutter by wiring navigation from the login page, and laying out with scaffold, container, and column, plus a styled register button.
Learn to build a register page with text form field widgets for name, email, and password using a form widget, a global form key, and input validation in Flutter.
Explore building a profile image widget in flutter that lets users select images from device storage using the file picker plugin, then display the image with a file image provider.
Implement validation and save logic for the form and image by creating a function that validates inputs and image selection, calls the save functions, and prints a console confirmation.
Create a register user flow that validates form inputs with a form key, requires an image, saves the data, and prints validation outcomes to the console.
Build the home page scaffold with an app bar and two action icons to add a photo and sign out, using gesture detectors and padding to adjust spacing.
Create a reusable bottom navigation bar in Flutter, define items with icons and labels, and update the current page to switch between feed and profile screens.
Create the profile and feed pages as stateful widgets and display them with the bottom navigation bar in the home scaffold.
Build a login form in Flutter with input fields and validation, save form data, and navigate between pages using named routes, while accessing device storage to select pictures.
Integrate the Instagram application with Firebase to enable user login and picture sharing. Learn how to create a Firebase project and gain a general introduction to Firebase.
Firebase is Google's backend as a service, a collection of integrated services for authentication, cloud storage, analytics, Crashlytics, push notifications, and extensions for Flutter.
Create a Firebase project by signing in with a Google account and using the Firebase console. Add the project and explore modules like authentication, database, and storage for your app.
Learn to add firebase core, authentication, analytics, cloud firestore, and firebase storage to a Flutter app using pub dev and the Get It package, with iOS and Android deployment.
Integrate Firebase with a Flutter app on iOS by registering the iOS bundle ID, downloading the GoogleService-Info.plist, and configuring deployment targets in Xcode before building.
learn to integrate firebase with an android flutter app by registering the app in firebase console, adding google services, updating gradle files, and enabling firebase analytics for eventual analytics data.
Enable Firebase authentication in your Flutter app using email and password for user sign-in. Structure a Cloud Firestore users collection to store linked profile data like name, email, and image.
Initialize the Firebase SDK in a Flutter app, ensure widgets binding is initialized, and register a Firebase service class with GetIt to expose Firebase Auth, Firebase storage, and Firebase Firestorm.
Log in users with Firebase authentication via email and password, returning a boolean on success. After login, fetch and store user data, then navigate to home on success.
Register a new user with Firebase authentication, upload the image to storage, and create a user document in Firestore with name, email, and the image download URL.
Learn to upload images with flutter by selecting a file, uploading to firebase storage, and creating a document in the posts collection with user id, timestamp, and image URL.
Build a feeds page that displays images from the Firebase posts collection using a stream builder to show latest posts ordered by timestamp in a scrolling list view.
Display the currently logged-in user's profile image in a Flutter profile page by fetching the image URL from a Firebase service and rendering a circular network image.
Learn to implement a profile grid view in Flutter that displays the current user's posts using a Firebase stream, a GridView.builder, and a Firestore query by user ID.
Implement Firebase logout by adding an asynchronous log out function to the Firebase service, then call signOut and navigate back to the login page after signing out.
Integrate the Instagram app with Firebase Authentication, Firebase Storage, and Cloud Firestore, using streams, futures, and stream builders for real-time data, and build a multi-user profile page with grid views.
Welcome to The Complete Flutter 2.0 Development Course. The most up-to-date Flutter course available online. Covering all the fundamental concepts for Flutter development, using the latest Flutter 2.0 version.
I’ve built this course over months, perfecting the curriculum to ensure that you come out of this course as a fully-fledged Flutter developer. I’ll take you from scratch and make you into a skilled Flutter developer with a strong portfolio of beautiful Flutter apps.
This course will teach Flutter & Dart from scratch, NO prior knowledge of either of the two is required! And you certainly don't need any Android or iOS development experience since the whole idea behind Flutter is to only learn one language.
You'll learn Flutter not only in theory but we'll build a series of complete and realistic apps throughout this course. These apps will feature both all the core basics as well as more advanced features like using Firebase, Device Storage, Animations, State Management, Data Persistence and much more!
WHAT DOES THIS COURSE FEATURE?
I'll take you step-by-step through engaging and fun video tutorials and teach you everything you need to know to succeed as a Flutter developer.
The course includes 20+ hours of HD video tutorials and builds your programming knowledge while making real world apps. e.g. Instagram, Quizlet and CoinMarketCap.
By the end of this course, you will be fluent in Dart programming and be ready to build your own Flutter apps and become a fully fledged Flutter developer.
You'll also have a portfolio of over 7 apps that you can show off to any potential employer.
By the end of this course, you’ll have mastered the skills of developing cross-platform native apps using Flutter.
WHAT TOPICS WILL BE COVERED?
I know that you're here because you value your time. If you wanted to watch someone program for hours and hours without explaining what they're doing, you'd be on YouTube.
By getting this course, you can be rest assured that the course is carefully thought out and edited. There are beautiful animations that explain all the difficult concepts and I’m always on hand to answer student questions.
Fundamental Flutter Concepts: e.g. Stateful vs. Stateless Widgets, Widget Trees, State Management, Animations, Themes and much more.
Fundamental Dart Concepts: e.g. Lists, Maps, Enums, loops, Futures, Streams, Classes, If/Else, Switch Statements, Control Flow, much more.
Detailed Setup Instructions: For both MacOS and Windows
Concepts Regarding Null-Safety: Late, Assertion Operator, Optional Variables, and much more.
Object Oriented Programming (OOP): The Type System Variables, Functions and Methods, Inheritance, Classes and Protocols.
Software Design: How to organize and format code for readability and how to implement the Model View Controller (MVC) design pattern.
Networking: How to make asynchronous API calls, store and retrieve data from the cloud, and use the JSON format for server communication.
Data Storage: How to use Firebase Cloud Firestore to act as a backend for your Flutter apps.
Authentication: How to use log in and register users for your Flutter apps.
Animations: How to implement animations in Flutter apps using a variety of ways.
State Management: How to use setState, prop drilling, lifting state up, callbacks and the Provider package to manage app state.
Debugging & Testing: Implement Unit, Widget and Integration Testing In Flutter Apps.
WHAT ELSE DOES THIS COURSE OFFER?
– Deep, Fine-Grained Learning – This course is jam-packed with information. I made the course that I most wanted to take and as a result, I didn't skimp on the details. You're going to cover more topics and material in greater depth than ever before.
– 100% Real-World Practice – My goal is to get you writing code as much as possible. And not just any code–we'll be working exclusively on practical tasks that are instrumental in building your own amazing real-world apps.
– No-Nonsense, Spot-On Explanations - Every lesson is to the point. I break down what we're making, how we'll be doing it, and what the final product will look like, all on top of helpful and illustrative descriptions to aid your understanding along the way.
– 30-Day Money Back Guarantee - I'm so confident that you'll love this course that we're offering a FULL money back guarantee for 30 days! So it's a complete no-brainer, sign up today with ZERO risk and EVERYTHING to gain.
I really enjoyed making this course and I think you’ll enjoy taking it just as much.
Looking forward to seeing you taking this course!