Full Course Bundle

The Complete Flutter Course Bundle

Learn about State Management, App Architecture, Navigation, Testing, and much more by building a full-stack Flutter eCommerce app on iOS, Android, and web.

Full Curriculum

What's inside

I'm creating an extensive Flutter curriculum made of 3 courses, covering many advanced topics that you'll need to create full-stack apps with Flutter & Firebase:

Flutter Foundations

  • App Architecture
  • State Management with Riverpod
  • Navigation with GoRouter
  • Automated Testing
  • Error Handling
  • Code Generation with Freezed

Flutter & Firebase Masterclass

  • Firebase Authentication
  • Data Modeling with Firestore
  • Firebase Local Emulator
  • Cloud Functions with TypeScript
  • Stripe Integration
  • Search with Algolia

Flutter in Production

  • Flavors and Environments
  • Error Reporting with Sentry
  • CI/CD with GitHub Actions and Fastlane
  • Deploy to the App Stores

Andrea’s Flutter content is amazing - it’s one of the few resources I consistently reference for advanced real-world solutions.

He clearly puts a huge amount of care and thought into every tutorial. Highly recommended!

Jeff Delaney (Fireship)

Jeff Delaney (Fireship)

Learn More

Course Overview

Getting started with Flutter is easy enough.

Once you know about the most important widgets, you can start building apps and add features.

But unless you have a robust architecture in place, you’ll soon run into problems and start questioning your decisions:

I know how you feel. I’ve been there myself.

Now, imagine...

Sounds good, right?

To help you get there, I’ll guide you through the process of building a real-world eCommerce app in Flutter. And I’ll explain my reasoning and decision-making all along.

You could waste hours or days trying to make sense of it all with some random tutorials.

Or you can learn with the techniques and best practices I learned through years of experience, all distilled into a well-structured curriculum that goes above and beyond what you can find on YouTube or Udemy.

Very well structured course. Easy to understand and Andrea answers questions in his lectures actively.

There's a lot of complex subjects and concepts that Andrea has helped me feel comfortable enough to grasp with his teaching style.

Top notch and highly recommend this course if you're looking to learn Flutter, Dart and Firebase.

Jaime Boyaca

Jaime Boyaca

Flutter & Firebase Course: Build a Complete App for iOS & Android

It could be my previous experience with writing code but DART explained by Andrea was smooth.

I never really understood OOP and I struggled in that area until I watched this course. I made sure I tried and completed every exercise even though it took me days.

Excellent course. Excellent Instructor, well knowledgeable and resourceful. Would totally recommend.

Wilfried Majaliwa

Wilfried Majaliwa

The Complete Dart Developer Guide

Andrea is the best! I love his passion and enthusiasm and dedication to teaching.

He cares deeply about programming and sharing his knowledge and experience with his students.

Frank Giordano

Andrea's teaching style is awesome.

I have been building Flutter apps for close to 3 years, and I still find a lot of useful and new material with his courses and articles.

Santos Enoque

Andrea has some of the highest quality online courses I have seen. He does not gloss over the issues of optimization or best practices that so many other courses do.

You can adapt what you learn from his courses, right into real-world applications!

Justin Borgers

Up-to-date content, didactic instructor, good support community on Slack, additional resources, tutorials and optional videos with the latest advances in Flutter.

Concise and direct to the point, with a huge number of diagrams. A colossal amount of work to simplify our learning.

Fabian Sosa Escalada

Upcoming

A Complete Flutter Curriculum

I'm creating an extensive curriculum made of multiple courses, covering many advanced topics that you'll need as a professional Flutter developer.

Since all the Flutter foundations around app architecture, state management, and testing are so important, I'll cover them first as a standalone course.

Then, I will release a follow-up course about Firebase, covering everything you need to build full-stack apps with Flutter & Firebase, complete with backend integration using Cloud Functions and 3rd party integrations like Stripe and Algolia.

And finally, I'll publish an in-depth course about using Flutter in production. This will show you how to setup CI/CD workflows with GitHub Actions and Fastlane, as well as how to deploy your apps to Google Play and the App Store.


In creating these courses, I'll bring over a decade of experience in mobile app development, spend countless hours researching, learning, and experimenting with different techniques, and condense everything into a comprehensive curriculum.

Flutter Foundations

State management, app architecture, navigation, testing, error handling & much more

Firebase Backend

Authentication, Firestore, Storage, Cloud Functions, Stripe payments, Search with Algolia

Flutter in Production

CI/CD with GitHub Actions, Fastlane, Error Reporting, Deployment to Google Play and App Store

Course #1

Flutter Foundations

Over 12h of Video
Over 12h of Video
Bonus Articles
Bonus Articles
Full Source Code
Full Source Code
Premium Support
Premium Support

Here's an outline of the planned course content.
This will be refined and expanded until all the course content is complete.

Module 1

Intro and Project Overview

A general overview of the course project:

  • Project setup & recommended VSCode extensions
  • App overview, project structure & code walkthrough
  • Running the app on iOS, Android, Web, and Desktop
  • Exploring the codebase with the Widget Inspector
  • Widget design principles: composition & code reuse
  • Responsive UI concepts
  • Localization

Module 2

Navigation with GoRouter

Declarative routing in Flutter: what, why, and how.

  • Limitations of Navigator 1.0
  • Migrating the project from Navigator 1.0 to GoRouter
  • Routes, sub-routes & navigation
  • The difference between "go" vs "push"
  • Routing by path vs routing by name
  • Passing parameters to routes
  • Navigation state and redirects

Module 3

App Architecture

How to choose and enforce the right architecture for your app:

  • Popular App Architectures: MVC, MVVM, Clean Architecture, Bloc
  • Architecture as a function of app complexity
  • Widgets, controllers, services, and repositories
  • Project Structure: Feature-first vs Layer-first
  • The repository pattern and the data layer
  • Working with Future and Stream-based APIs

Module 4

State Management with Riverpod (Part I)

Getting started with Riverpod:

  • Why Riverpod?
  • Installation and setup
  • Riverpod as a Dependency Injection system
  • Working with Providers, ConsumerWidget, and Consumer
  • Working with FutureProvider, StreamProvider, and AsyncValue
  • The family and autoDispose modifiers
  • Creating a reusable AsyncValueWidget helper

Module 5

State Management with Riverpod (Part II)

Going deeper with Riverpod by implementing a user authentication flow:

  • Working with StateNotifier and StateNotifierProvider
  • Using AsyncValue as a state class
  • ref.read() vs ref.watch()
  • Using ref.listen() to respond to errors
  • Working with dependencies and combining providers
  • Working with realtime data

Module 6

Automated Testing (Part I)

How to write unit tests, mock dependencies, and work with test coverage:

  • Unit tests
  • Mocking dependencies with Mocktail
  • Testing code with Futures, Streams, exceptions, predicates
  • Test lifecycle methods
  • Testing with Acceptance Criteria (Given When Then)
  • Generating Flutter test coverage data in VSCode
  • Running tests with GitHub Actions

Module 7

Automated Testing (Part II)

How to write various kinds of tests for many different scenarios:

  • Widget tests
  • Integration tests
  • Golden image tests
  • Robot testing

Module 8

Feature: Shopping Cart (with local data persistence)

Building the shopping cart feature for the eCommerce app:

  • Analysis and technical planning for a complex feature
  • How to store shopping cart data locally with Sembast
  • JSON serialization
  • App architecture: service classes and the application layer
  • Advanced Riverpod use cases
  • How to sync data between local and remote repositories
  • Automated tests for the cart business logic

Module 9

Feature: Checkout Flows

Building the checkout flows for the eCommerce app:

  • Building the user checkout journey
  • Business logic for placing orders
  • Data modeling for products, items, orders, and their relationships
  • Adding unit, widget, integration tests for the checkout flows

Module 10

Error Handling and Code Generation with Freezed

Strategies for handling errors in Flutter:

  • Working with try and catch
  • Functional error handling with Result types
  • Defining error types with Freezed
  • Error propagation across layers

Module 11

Feature: Product Reviews

Adding a product reviews feature to the eCommerce app:

  • Leaving reviews for purchased products
  • Calculating the average review score
  • Sorting and showing all reviews in the product page
  • Adding tests for all the new functionality

Module 12

Feature: Product Search

Adding a product search feature to the eCommerce app:

  • How to search: client vs server-side
  • Writing a search service class
  • Debouncing search queries
  • Search implementation tradeoffs: Futures vs Streams

We'll cover the topics above in great depth, with a good mix of theory and practice. I will explain important concepts with clear diagrams, and include exercises to help you apply what you learn.

Along the way, we'll build an eCommerce app with features such as a product listings, search functionality, shopping cart, checkout, etc.

You'll also have access to a Slack channel where you can ask questions and get help directly from me.

Course #1

Get the Flutter Foundations Course

Launch Offer

Buy now and get 25% off the regular price!

Choose the package that works for you

The Complete Package

$149$109
USD(VAT may apply)
  • All 12 modules, totaling 12+ hours of video (11 hours today + rest coming soon)
  • Lifetime Access
  • All Bonus Articles
  • Full Source Code
  • Premium Support on Slack
  • English Subtitles
  • Completion Certificate
  • 30 Day Money Back Guarantee

The Essentials

$99$75
USD(VAT may apply)
  • First 6 modules, totaling 7 hours of video
  • Lifetime Access
  • Some Bonus Articles
  • Full Source Code
  • Premium Support on Slack
  • English Subtitles
  • 30 Day Money Back Guarantee

Team packages are also available. For more info, send me an email at courses@codewithandrea.com.

This is a great foundation course for aspiring Flutter devs.

Rather than learning from the top down (starting with rendering widgets etc), this course provides fundamental concepts which form the basis of developing robust, well-architected apps.

This is especially important for those who are not coming from a software engineering background.

Andrea is a naturally good teacher, who covers the material at a nice pace, and takes the time to explain context and what is going on as he proceeds through the course.

I'm looking forward to the follow up courses too!

Andrew Schox

Andrew Schox

Flutter Foundations Course

Yet another outstanding Flutter course, where Andrea guides us through the design and setup of an elegant and robust eCommerce solution, using Riverpod and GoRouter.

What makes this course outstanding are the clear explanations and rationales given for each design choice.

The app architecture Andrea introduces is well structured - one could even say very elegantly crafted. And it is all covered in clear and easy-to-digest steps.

Using what you learn here, you can take your Flutter skills to the next level and createclean, scalable, and robust production-ready Flutter apps.

The course series is still in production as I write this review. Having completed what is available so far, it is, in my opinion, on the path to becoming the “Flutter masterclass” reference course.

Mike Rydstrom

Mike Rydstrom

Flutter Foundations Course

So far, the course has delivered its promise to teach from a practical and professional perspective for intermediate and advanced users.

Love the tips and the side notes on the lessons.

Enrique Ortiz

Flutter Foundations Course

I'm starting to realize that I was doing things the wrong way from the beginning.

I'm excited to see that I'm finally learning the best practices for working on a Flutter app, and I'm sure I will become very confident about building the complex app that I need.

Maurizio Tonelli

Flutter Foundations Course

I have spent the weekend on just this lesson. It was a great time investment to watch the lessons, follow the links, and do the suggested homework.

Although I've been working with Flutter for almost a year and have taken several other courses, I feel like my skills have advanced further and faster this weekend than at any other point in the past year. Thank you!

Steve Balow

Flutter Foundations Course

The content is simply exemplary. If you are interested in creating cross-device apps, then Flutter is a great choice and Andrea's lessons will get you up to speed.

If you care about good architecture, Andrea will help you out with a sensible approach that will make your code readable and maintainable.

Steve G

Flutter Foundations Course

30 day money back guarantee

I spent over 500 hours making this a high-quality course and I'm confident you'll get a lot of value out of it.

But if you're not happy with it, for any reason, you can reach out within 30 days of purchase to get a full refund.


Upcoming - Course #2

Flutter & Firebase Masterclass

Note: this is not included in the Flutter Foundations Course

After building the eCommerce client app in Flutter, we'll focus on the backend.
Here's what you'll learn:

Firebase Project Setup

How to add Firebase to the Flutter app:

  • Installation steps with FlutterFire CLI
  • Initialization on iOS, Android, and Web
  • Multiple Flavors and Environments

Firebase Authentication

Adding user authentication flows to the app:

  • Sign in with email and password
  • Custom claims and user roles

Data Modeling with Firestore

Everything you need to know to work with Firestore:

  • Working with realtime data in the Flutter app
  • Documents and Collections
  • Collection Groups and Indexes
  • Security Rules
  • Implementing Search (client-side vs Algolia)
  • Queries and Pagination
  • How to minimize your Firebase bill

Firebase Storage

  • How to store and access product images with Firebase Storage
  • CORS setup for the Flutter web app

Using the Firebase Local Emulator

How to use the Firebase Local Emulator for faster development:

  • Running the Local Emulator
  • Connecting the Flutter app to the Local Emulator
  • Import and export data

Cloud Functions with TypeScript

How to develop, test, and deploy Cloud Functions with TypeScript:

  • Auth and Firestore Triggers
  • Https and callable functions
  • Call Cloud Functions from Flutter and handle success/errors
  • Work with Firestore Transactions
  • Generate Bulk Data
  • Deploying Cloud Functions

Stripe Integration

How to collect payments in the Flutter app:

  • Overview of the various payment methods
  • Stripe Dashboard and API keys
  • Working with Payment Intents
  • Backend integration with Stripe Webhooks

Firebase Config & API Keys

How to store keys securely using Firebase Config:

  • Setting keys with the Firebase CLI
  • Accessing keys inside Cloud Functions
  • Working with keys in the Local Emulator

Deployment with Firebase Hosting

How to deploy the Flutter web app with Firebase Hosting:

  • Build and deploy the web app

By the end of this course you'll have built a full-stack eCommerce app, complete with a working backend and Stripe integration.


Upcoming - Course #3

Flutter in Production

Note: this is not included in the Flutter Foundations Course

Learn how to completely automate the testing and deployment of your app.

Flavors and Environments

Setting up multiple flavors and environments:

  • Why we need multiple flavors
  • Setting up a multi-flavor Flutter app Very Good Start
  • Adding Dev, Staging, and Production environments with FlutterFire CLI

Error Reporting with Sentry

How to collect and report errors in the Flutter app:

  • Setting up a Sentry account
  • How and where to report errors in the Flutter app

CI/CD with GitHub Actions and Fastlane

Setting up CI workflows with GitHub Actions:

  • Basic Flutter workflows: build and test
  • How to manage API keys securely with GitHub Actions
  • Code signing with Fastlane

Deploy to the App Stores

Google Play & App Store deployment:

  • Setting up developer accounts
  • Code signing on iOS
  • Automating code signing with Fastlane
  • Development, AdHoc and Distribution builds
  • Automating App Store submission with Fastlane

By the end of this course you'll be comfortable with the entire app development lifecycle, from planning to implementation to deployment.

Secure your pre-sale discount now

The second and third course will launch in Q4 2022 and Q1 2023 respectively.

Sign up today to get updates and big discounts when they are released!

By signing up, you'll also get access to a Flutter web demo of the completed course project and bonus content.

Intended Audience

Who are these courses for?

These are intermediate to advanced-level courses, going above and beyond what you can find on YouTube or Udemy.

To make the most of them, you'll need to be already familiar with the Dart language (my Dart course can help with that) and how to build apps with Flutter.

The sections about state management and navigation will use the Riverpod and go_router packages, starting from the basics (it's ok if you haven't used them before).

Likewise, it's ok if you don't know how to use Firebase yet. I'll cover the basics quickly and then move on to the more advanced topics.

Ultimately, you'll become confident with the entire app development lifecycle, have a full eCommerce app to show for it, and save lot of time and effort in the future.

Success Stories

Kind words from my students

Andrea clearly put a lot work into the material, and after completing solely this course, now I really feel like I now know the fundamentals of Dart and am ready to finally dive into Flutter with confidence!

Thank you again for this great course, I went through some of the lessons multiple times, but it was definitely worth it, and will surely revisit some of the topics if needed.

I love that all topics are separated into short videos, and that every second of every video is valuable (not wasting our time for a moment).

Marton

The Complete Dart Developer Guide

I can honestly say that Andrea's knowledge and guidance is top notch! He explains the principles well which helps you understand the concepts and structures within the Dart language.

This course is a great asset to anyone looking to improve their coding skills. Having Andrea by your side, you should feel privileged to have a mentor / coach of his caliber, who shares his knowledge in such an "easy to understand" manner. Thanks!

Andri De Jager

The Complete Dart Developer Guide

Animations have always been my weak point, but Andrea's course covers most if not all the biggest Animation topics, and does so with lots of examples.

Another fantastic course from a great teacher.

Tadas Petra

Tadas Petra

Flutter Animations Masterclass - Full Course

Andrea always goes in-depth by creating high-quality courses, and this one does not disappoint.

Learning about animations in Flutter is vital to building beautiful and engaging applications.

I highly recommend this course if you want to master animations in Flutter!

Robert Brunhage

Robert Brunhage

Flutter Animations Masterclass - Full Course

FAQ

Frequently Asked Questions

How many courses are in this bundle?

I will include three courses in total, which can be purchased individually.

Do I need to purchase each course individually?

Yes. You can already purchase the Flutter Foundations course today.

The other two courses will be published later this year and are not included in the first purchase. In other words, you'll have to buy them separately to get access.

Will these courses be sold on Udemy?

No. Not now, not ever.

The only place to buy these courses is here.

How long are the courses?

Each course will include between 5 and 15 hours of content.

When will the courses be released?

You can already purchase the Flutter Foundations course today.

The other two courses will be published later this year.

How much will the courses cost?

The Flutter Foundations course costs $89 during the pre-sale period (26th of April until the 10th of May) and the price will increase over time.

The pricing for the two remaining courses will be announced later on.

Will you offer a pre-sale discount?

Yes. By signing up today you can secure your discount and be the first to know when the courses become available.

Does it run on Flutter 3.0?

Absolutely! The entire course content and source code will work with Flutter 3.0 and above.

Will you cover any state management packages other than Riverpod?

I'll include a brief overview of alternative techniques so that I can highlight the differences with Riverpod.

But we'll develop the course project using Riverpod only.

Will you cover any navigation packages other than GoRouter?

No. There is a lot to cover already, so we'll focus on going from the Navigator 1.0 API to GoRouter, and explain why it's more convenient than Navigator 2.0.

Will you cover any backends other than Firebase?

This is not currently planned, though I may create additional courses for other backends in the future.

We will design the Flutter codebase with good separation of concerns, making it easier to adopt a different backend if desired.

What about payment providers other than Stripe?

Stripe and RevenueCat are the only payment processors with good support for Flutter on iOS, Android, and web.

Since we'll build an eCommerce app to sell physical products, Stripe is the ideal choice.

I may cover other payments providers as part of separate courses in the future.

Will I get a completion certificate?

Sure do! Once you complete the course this will be issued to you automatically.

I'm a student / I can't afford the course / I live outside the US/EU / do you support Purchasing Power Parity (PPP)?

Unfortunately PPP is not supported by my course platform. The most economical way to get the course is to sign up today and use the pre-sale discount when the coruse goes live.

What if I don't like the course?

The course comes with a 30 day money back guarantee. If you're not happy with the course, for any reason, you can reach out and I'll issue a full refund.

Do you offer team packages?

Sure thing! I offer team packages at discounted rates.

Email me at courses@codewithandrea.com for all the details.

I have another question!

Sure - email me at courses@codewithandrea.com and I'll reply within 48 hours.

instructor

Hello, I’m Andrea

Andrea

My name is Andrea, I'm a Flutter GDE and I've been writing code professionally for over 12 years. I've been a mobile app developer since 2012, working for startups and big companies.

With my Flutter tutorials and courses, I've helped thousands of students become better developers.

By taking this course, you'll considerably advance your Flutter skills and become confident with the entire app development lifecycle.