Mobile Apps


The Complete 2021 Flutter Development Bootcamp with Dart

Officially created in collaboration with the Google Flutter team.

4.72 (27220 reviews)



29 hours


Dec 2020

Last Update
Regular Price

What you will learn

Build beautiful, fast and native-quality apps with Flutter

Become a fully-fledged Flutter developer

Build iOS and Android apps with just one codebase

Build iOS and Android apps using just one programming language (Dart)

Build a portfolio of beautiful Flutter apps to impress any recruiter

Understand all the fundamental concepts of Flutter development

Become proficient in one of the fastest growing technologies


Welcome to the Complete Flutter App Development Bootcamp with Dart - created in collaboration with the Google Flutter team.

Now includes a brand new module on Flutter State Management!

Covering all the fundamental concepts for Flutter development, this is the most comprehensive Flutter course available online.

We built this course over months, perfecting the curriculum together with the Flutter team to teach you Flutter from scratch and make you into  a skilled Flutter developer with a strong portfolio of beautiful Flutter apps.

Our complete Flutter development bootcamp teaches you how to code using Dart and build beautiful, fast, native-quality iOS and Android apps. Even if you have ZERO programming experience.

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 28+ hours of HD video tutorials and builds your programming knowledge while making real world apps. e.g. Whatsapp, QuizUp and Yahoo Weather.

By the end of this course, you will be fluently programming in Dart and be ready to build your own Flutter apps and become a fully fledged Flutter developer.

You'll also have a portfolio of over 15 apps that you can show off to any potential employer.

Sign up today, and look forwards to:

  • Over 28 hours of HD 1080p video content, everything you'll ever need to succeed as a Flutter developer.

  • Building over 15 fully-fledged apps including ones that use Firebase Cloud Firestore, StreamBuilder, ListView, networking, external APIs and much much more.

  • All the knowledge you need to start building any app you want

  • $8000+ Flutter development bootcamp course materials and curriculum

From Beginner to Flutter Developer with Just One Course

We 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 we're always on hand to answer student questions.

So by the end of the course, you'll completely understand:

  • Fundamental Flutter concepts e.g. Stateful vs. Stateless Widgets, Widget tree, state management, animations, themes and much more.

  • Fundamental Dart concepts e.g. lists, maps, enums, loops, futures, streams, mixins, classes, and much more.

  • Concepts of Object Oriented Programming (OOP): The type system, variables, functions and methods, inheritance, classes and protocols.

  • Control Structures: Using If/­Else clauses, Switch statements and logic to control the flow of execution.

  • Data Structures: How to work with collections, such as Lists and Maps.

  • Software Design: How to organise 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.

  • State Management: How to use setState, prop drilling, lifting state up, callbacks and the Provider package to manage app state.

Don’t waste your time

Don't waste another minute of your precious life on poor quality videos on YouTube. Or instructors who you can't understand. Or teachers who have no real world in-person teaching experience. Your time is precious. Take this course and find out why everybody is raving about it and why over 35,000 students rated my courses 5 stars!

Don't waste your money

Inside this course, you're getting exactly the same course materials and curriculum as our 12 week in-person programming bootcamp. Instead of spending $8000+ dollars and taking time off work, save loads of money by getting this course and do it at your own pace!

Don't just take my word for it, see what my past students had to say about my courses:

"Angela is literally my favorite teacher. Ever. In the entire universe. She is hilarious and teaches in a lighthearted and fun way that is also very clear to understand. I instantly purchased this course as soon as I saw it was released because I know Angela delivers the highest quality educational content possible. 100% recommend this course (as well as every other course she's created). Thank you Angela for helping me as I make a career pivot into becoming a hybrid UX designer/mobile developer!" - Jacob Pernell

"Angela is my favorite Udemy professor for coding courses. Her methods for building onto the material so that you're never progressing too fast or too slow make for a really engaging learning experience. She's thorough in her explanations, and uses fun projects to discuss the material. I had started a couple other Flutter courses before finding this one, and I've progressed more in 24hrs than I did in a week with the other courses. Would love an advanced Flutter course from Angela to tackle once I'm done with this one!" - Jerome Llouche

"You will not find a better teacher than Angela. She does a wonderful job of encouraging you to learn swift the right way. I want to encourage everyone thinking about taking this class to get it, as it is the BEST programming class I've seen on anywhere and I've tried more than a few of them. If you are looking for an excellent swift programming course, stop there here because you have found it. You will learn Swift from the very beginning of programming all the way through making your own apps that you can upload to the App store." - Ian Hopjins

"SO GOOD!!! Retention rate is incredible because Angela does a great job in explaining and teaching every aspect of what we are doing. Most of the other instructors on Udemy put code on the screen and pretend nothing happened. This course is amazing! 5/5" - Muhammad Ibrahim

"Angela is a spectacular teacher!" - Marco Zanirato

"This course was terrific. Only after taking a few more courses from others that I realized how good this course was. This course taught me more than I was expecting, it provided great instructions and a lot of hands-on tasks to drill-in the concept." - Marc

"Best use of your money! I was a complete beginner but Angela made me a pro in weeks." - Burak Tunçbilek

"IT IS #1!!!!!!!!! Absolutely Amazing. The best iOS course i have ever taken. Angela explains everything the way it needs to be explained, so everything is easily understood. The concept of this course is built to make you learn, not just watch and repeat. Angela is highly educated and it is very much noticeable during the entire course. Again, it is fantastic. Thank you. Please create more courses!!!!!" - Eduard Khachian

Are you trying to choose between all the different Flutter courses on Udemy? Take a look at what students on my course had to say about this:

I have revamped my expectation for what a 5 star course should be for Udemy. Angela, you're awesome! I already rated the course as 5 stars early on (at about 20% completion), but after completing roughly 70% of the course, I can say this is my favourite Udemy course as of today. Brilliant course Angela! - Alberto L

"I took a lot of courses on Udemy and elsewhere and non of them were as clear and perfectly paced as this one! Angelas approach is really awesome, deep and clear." - Žan Fras

"I have taken several iOS courses, so far this course had the best explanation on swift and xcode documentation. The lecturer is kinda humorous sometimes which make this course even more enjoyable." - Bryan Pukanda

"I have taken lots of courses on udemy and elsewhere for self learning and i can tell you with all the honesty this is one course which i did not want it to end. It is like one of those movies that you wish keeps going. Whatever concepts are covered were covered very beautifully and made learning quite simple. I got so many answers to Why? in this course like how closures work and why they work that way... why delegates work that way. Thank you so much for this course." - Arun Lakhera

"I compare this to another top iOS class on Udemy, but I think that this one beats it. The reason? Angela doesn't show you a plethora of material and then say that we will discuss this later, or say "just do this. You will see why later." She goes into the reason for doing something before doing it."  - Clyde Addison

REMEMBER… 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.

So what are you waiting for? Click the buy now button and join the world's best Flutter development course.


The Complete 2021 Flutter Development Bootcamp with Dart
The Complete 2021 Flutter Development Bootcamp with Dart
The Complete 2021 Flutter Development Bootcamp with Dart
The Complete 2021 Flutter Development Bootcamp with Dart


Introduction to Cross-Platform Development with Flutter and Dart

Introduction to the Course

Download the Course Syllabus

What is Flutter?

Why Flutter?

The Anatomy of a Flutter App

How to Watch the Course in High Definition

How to Get the Most Out of the Course

Join the Student Community

Setup and Installation

Prerequisites for Flutter Development

Overview of the Process

Windows Setup Step 1 - Install the Flutter SDK

Windows Setup Step 2 - Install Android Studio

Windows Setup Step 3 - Install the Android Emulator

Windows Installation Troubleshooting

A Quick Note About macOS Catalina

Mac Setup Step 1 - Install the Flutter SDK

Mac Setup Step 2 - Install Android Studio

Mac Setup Step 3 - Install the Android Emulator

Mac Setup Step 4 - Install Xcode and Command Line Tools

Mac Setup Step 5 - Test the iOS Simulator

Mac Installation Troubleshooting

[Optional] Configure Android Studio for Flutter Development

[Optional] Guided Tour of Android Studio for Flutter Development

Feedback Time!

I Am Rich - How to Create Flutter Apps From Scratch

Creating a New Flutter Project from Scratch

A quick note about Hot Reload

Scaffolding a Flutter App

Working with Assets in Flutter & the Pubspec file

How to Add App Icons to the iOS and Android Apps

Feedback Time!

Running Your App on a Physical Device

Deploying Your Flutter Apps to a Physical Device

Deploying Flutter Apps to an Android Phone

Deploying Flutter Apps to iPhones/iPads

Tip from Angela - Habit Building with the Calendar Trick

Feedback Time!

I Am Poor - App Challenge

What are App Challenges?

The I Am Poor Challenge

Show Off Your Work!

Tip from Angela - Dealing with Distractions

Do You Want This?

Feedback Time!

MiCard - How to Build Beautiful UIs with Flutter Widgets

MiCard - A Single Screen Personal Business Card App

Hot Reload and Hot Restart - Flutter Power Tools

How to Use Container Widgets

How to use Column & Row Widgets for Layout

Flutter Layouts Challenge

Tapping into Widget Properties

Incorporating Custom Fonts in Your Flutter App

Adding Material Icons with the Icon Widget

Flutter Card & ListTile Widgets

Download the Completed Project

Tip from Angela - Nothing Easy is Worth Doing!

Feedback Time!

Dicee - Building Apps with State

Dicee - A Stateful Dice App

Using the Expanded Widget to Create Flexible Layouts

How to Use Intention Actions

Adding Gesture Detection with Flutter Button Widges

[Dart] Functions - Part 1

Making the Dice Image Change Reactively

[Dart] Variables

[Dart] Data Types

Stateful vs. Stateless Widgets - What's the Difference?

Randomising the Dice

Challenge 1 Solution

Challenge 2 Solution

Challenge 3 Solution

Download the Completed Project

Tip from Angela - How to Deal with Procrastination

Feedback Time!

Boss Level Challenge 1 - Magic 8 Ball

Magic 8 Ball - A Decision Making App

Step 1 - Set Up The Project

Step 2 - Create a Stateless Widget

Step 3 - Create a Stateful Widget

Step 4 - Make it Interactive

Step 5 - Randomise it

Step 6 - Update the State

Customise It!

Tip from Angela - Building a Programming Habit

Feedback Time!

Xylophone - Using Flutter and Dart Packages to Speed Up Development

Xylophone - A Simple Musical Instrument App

What are Flutter & Dart Packages?

How to Play Sound Across Platforms

How to Play Multiple Sounds

[Dart] Functions - Part 2

Updating the UI of Our App

[Dart] Functions - Part 3

[Dart] Functions Challenge

Refactoring Our App

[Dart] Arrow Functions

Customise It!

Download the Completed Project

Tip from Angela - The 20 Minute Method

Feedback Time!

Quizzler -Modularising & Organising Flutter Code

Quizzler - A True/False Quiz App

Building a Score Keeper

[Dart] Lists

Displaying the Questions

Checking User Answers

[Dart] Conditionals - IF/ELSE

More Dart Programming Challenges

Creating a Question Class

[Dart] Classes and Objects

Abstraction in Action

Encapsulation in Action

Inheritance in Action

Polymorphism in Action

Adding Back the Score Keeper

Code Challenge

[Dart] Class Constructors

Download the Completed Project

Tip from Angela - Learning Before you Eat

Feedback Time!

Boss Level Challenge 2 - Destini

Destini - A Choose Your Own Adventure Game

Set Up the Project

Familiarise Yourself with the Starting Project

Step 1 - Adding a Image as a Background

Solutions on GitHub

Step 2/3/4 - Create a New Story Class

Step 5/6/7 - Create the Story Brain

Display the Story in the App

Step 11/12/13/14 - Display the Choices in the App

Update the Story Based on User Choice

Step 21 - Use the Story Plan to Progress through the Story

Step 22/23/24 - Restart the Game When the User Reaches the End

Step 25 - Renaming and Refactoring Using Android Studio

Step 26/27/28 - Hiding Buttons

Download the Completed App!

Tip from Angela - Retrieval is How You Learn

Feedback Time!

BMI Calculator - Building Flutter UI for Intermediates

BMI Calculator - A Beautiful Health App

How to Use Flutter Themes

How to Refactor Flutter Widgets

[Dart] Final vs. Const

Creating Custom Flutter Widgets

The GestureDetector Widget

[Dart] Enums

[Dart] Ternary Operator

[Dart] Functions as First Order Objects

The Flutter Slider Widget

Customising Widgets with Themes

Composition vs. Inheritance - Building Flutter Widgets From Scratch

Multi-Screen Apps Using Routes and Navigation

[Dart] Maps

Designing the Result Page

Adding the BMI Calculator Functionality

Download the Completed Project

Tip from Angela - Dealing with Lack of Progress

Feedback Time!

Clima - Powering Your Flutter App with Live Web Data

Clima - A Modern Weather App

Getting Location Data From Across Platforms

[Dart] Futures, Async & Await

Stateful Widget Lifecycle Methods

[Dart] Exception Handling & Null Aware Operators

Async/Await Challenge

Application Programming Interfaces (APIs) Explained

Networking in Flutter Apps with the HTTP Package

JSON Parsing and Dynamic Types

Getting Actual Weather Data from the OpenWeatherMap API

Showing a Spinner While the User Waits

Passing Data to a State Object

Updating the Weather with the WeatherModel

Refactoring the Location Methods

Creating and Styling a TextField Widget for Text Entry

Passing Data Backwards Through the Navigation Stack

Download the Completed Project

Tip from Angela - Mixing Knowledge

Feedback Time!

Boss Level Challenge 3 - Bitcoin Ticker

Bitcoin Ticker - A Simple Cryptocurrency Price Tracker

The Material DropdownButton Widget

[Dart] Loops

Building Widgets with Loops Solution

Introducing Cupertino Widgets

Building Platform Specific UI (iOS & Android)

Introduction to Boss Level Challenge 3

Level 1 - Bronze Medal

Level 2 - Silver Medal

Level 3 - Gold Medal

Check out the completed app!

Tip from Angela - Dealing with Frustration

Feedback Time!

Flash Chat - Flutter x Firebase Cloud Firestore

Flash Chat - A Lightning Fast Messaging App

Named Routes Challenge

[Dart] Static Modifier

Refactor Routes with the Static Const

Flutter Hero Animations

Custom Flutter Animations with the Animation Controller

[Dart] Mixins

Prepackaged Flutter Animations

Code Refactoring Challenge

Creating a New Firebase Project

Potential Problems When Incorporating Firebase

Android Firebase Project Setup

iOS Firebase Project Setup

Firebase Flutter Packages Setup (iOS & Android)

Registering Users with Firebase using FirebaseAuth

Authenticating Users with FirebaseAuth

Showing a Spinner while the User Waits

Saving Data into Cloud Firestore

Listening for Data from Firebase using Streams

[Dart] Streams

Turning Streams into Widgets Using the StreamBuilder

The Flutter ListView

A Different UI for Different Senders

Cloud Firestore Authorisation and Security Rules

Download the Completed Project

Tip from Angela - Sleep is My Secret Weapon

Feedback Time!

Flutter State Management

Todoey - Your very own To-Do List App

Designing the To-Do List App

The ListView Challenge

The BottomSheet Widget

Positioning the BottomSheet above the Keyboard

What is State and How do we Manage it?

How do Callbacks work in Dart?

The ListView Builder

Lifting State Up Challenge

Flutter App Architecture Patterns

Introducing the Provider Package

Using a Provider and a ChangeNotifier to Manage State

Adding New To-Do List Tasks

Checking off To-Do List Tasks

Deleting Tasks using the Provider Design Pattern

Download the Completed Project

Tip from Angela - How to Solidify Your Knowledge

Feedback Time!

Next Steps

Join the #FlutterBrew Contest!

Keep Learning!

Publish Your Apps!

Tip from Angela - Review your goals!

Feedback Time!


Emmanuel9 October 2020

I went into this course with zero app development skills, although I had 2 years of experience coding in other languages. It seemed daunting at first learning all the important concepts, but as time passed by I was able to get a hang of it thanks to Angela's unique way of explaining difficult concept. The course is rich in content and I'll advice anyone reading this and is still skeptical on if they should take the course or not to enroll.

Abdelrahman8 October 2020

It is an excellent course, I understand Flutter framework very well, but Flutter State Management and the on Github repo should be updated, And I expected has more videos about widgets

Sufiyan8 October 2020

Every thing is perfect, the way of explanation is just mind blowing. Only thing i would request is if you could add in app purchase and payment gateway module to the course.

Ranjeet8 October 2020

Amazing lectures. Since I have started this course, I can't stop myself to move forward and finish this course. Thanks a lot Angela!

Kalpesh7 October 2020

Its just amazing ..Wow the way of teaching is excellent....She explain everything in detail....I like so much....Highly Recommended to Everyone.....

Sen25 February 2020

It is a very good course so far (50% covered). Good for persons with 0 experience as it teaches both dart and flutter from scratch. Also the pace is good, as the overall speed allows the students to slowly comprehend the information. Another great aspect are the simple examples and sketches which are spot-on and easy to understand. Overall great. Congrats to Angela and the Flutter team

Carla25 February 2020

I loved the course, taught me how Flutter works in a fast and effective way. Angela explains the concepts perfectly and for more advance programmers the course is done in a way that you can skip things that you already know.

bloodshi125 February 2020

영어가 짧아서 어렵긴한데 내용이 참으로 체계적이고 발음도 좋으셔서 그나마 잘 알아듣고 있습니다. 코딩 처음하는데도 어느정도 따라갈수 있네요. 자바를 알면 이해가 더 쉬울텐데 자바도 같이 공부해야겠습니다. 뒤로가다 어려워서 멈추고 처음부터 다시 듣고 있습니다.

Rick25 February 2020

Overall, a very good course with a good curriculum and great presentation. Many of the examples do a great job working through progressing the skill level from very basic skills to intermediate skills. It might be a bit slow for experienced developers as the course explains the basics of programing, not just Dart fundamentals. It was worth following along though as she explains many Flutter specifics and best-practices. I certainly would purchase a follow-up advanced course!

Remi25 February 2020

Angela's approach to teaching is excellent. It's good to know that Flutter isn't that tough to learn. I am loving every bit of it.

Xavi25 February 2020

Missing some linux installation steps, but that wasn't announced on the course so it's what I expected

Codin24 February 2020

One of the best learning experiences I've had! Very engaging instructor with lots of great advice. The pace is great, the projects are fun. I know programming already so I 2X the speed as needed.

John23 February 2020

I think this course was very good. I am a Senior programmer specializing in Java API's with some UI development in React. So a lot of the concepts were familiar to me from a programming perspective. Due to this I ended skipping a good amount of content on programming concepts. Overall, this course was good but if you are advanced be ready to watch it at 2X speed as it can be quite slow.

Vivian22 February 2020

This course is exactly what I was looking for - learning through projects! Angela has a very nice voice btw! ;)

Muddasar22 February 2020

This course is Amazing Fantastic instructor have Amazing qualities of teaching superb i was nothing now i can make simple static app just awesome.. highly recommended teacher keep marching....


Udemy ID


Course created date


Course Indexed date
Course Submitted by

Android PlayStore
Apple Appstore