The Complete Flutter Development Bootcamp with Dart

Officially created in collaboration with the Google Flutter team.

  • Dr. Angela Yu
  • 4.64
  • (45921 reviews)
  • 28.5 hrs
  • 217 lectures
  • Udemy
The Complete Flutter Development Bootcamp with Dart

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

Your trainer

Dr. Angela Yu

I'm Angela, I'm a developer with a passion for teaching. I'm the lead instructor at the London App Brewery, London's leading Programming Bootcamp. I've helped hundreds of thousands of students learn to code and change their lives by becoming a developer. I've been invited by companies such as Twitter, Facebook and Google to teach their employees.

My first foray into programming was when I was just 12 years old, wanting to build my own Space Invader game. Since then, I've made hundred of websites, apps and games. But most importantly, I realised that my greatest passion is teaching.

217 lessons

Easy to follow lectures and videos covering subject details.

28.5 hours

This course includes hours of video material. Watch on-demand, anytime, anywhere.

Certificate of Completion

You will earn a Certificate of Completion at the end of this course.

Course curriculum

  • Introduction to the Course02:05
  • Download the Course Syllabus00:11
  • What is Flutter?07:52
  • Why Flutter?12:11
  • The Anatomy of a Flutter App05:27
  • How to Watch the Course in High Definition01:09
  • How to Get the Most Out of the Course09:33
  • Join the Student Community00:27
  • Prerequisites for Flutter Development06:22
  • Overview of the Process01:01
  • Windows Setup Step 1 - Install the Flutter SDK07:19
  • Windows Setup Step 2 - Install Android Studio02:39
  • Windows Setup Step 3 - Install the Android Emulator05:44
  • Windows Installation Troubleshooting01:39
  • A Quick Note About macOS Catalina01:00
  • Mac Setup Step 1 - Install the Flutter SDK13:46
  • Mac Setup Step 2 - Install Android Studio04:10
  • Mac Setup Step 3 - Install the Android Emulator03:54
  • Mac Setup Step 4 - Install Xcode and Command Line Tools02:25
  • Mac Setup Step 5 - Test the iOS Simulator03:16
  • Mac Installation Troubleshooting01:20
  • [Optional] Configure Android Studio for Flutter Development09:51
  • [Optional] Guided Tour of Android Studio for Flutter Development13:15
  • Creating a New Flutter Project from Scratch15:32
  • A quick note about Hot Reload00:15
  • Scaffolding a Flutter App22:12
  • Working with Assets in Flutter & the Pubspec file09:24
  • How to Add App Icons to the iOS and Android Apps09:49
  • How to Ace this Course01:24
  • Deploying Your Flutter Apps to a Physical Device00:15
  • Deploying Flutter Apps to an Android Phone06:19
  • Deploying Flutter Apps to iPhones/iPads16:23
  • Tip from Angela - Habit Building with the Calendar Trick02:52
  • What are App Challenges?04:24
  • The I Am Poor Challenge00:19
  • Show Off Your Work!00:17
  • Tip from Angela - Dealing with Distractions02:28
  • Do You Want This?00:39
  • MiCard - A Single Screen Personal Business Card App05:31
  • Hot Reload and Hot Restart - Flutter Power Tools13:49
  • How to Use Container Widgets11:16
  • How to use Column & Row Widgets for Layout14:00
  • Flutter Layouts Challenge00:20
  • Tapping into Widget Properties09:14
  • Incorporating Custom Fonts in Your Flutter App10:59
  • Adding Material Icons with the Icon Widget12:35
  • Flutter Card & ListTile Widgets13:19
  • Download the Completed Project00:19
  • Tip from Angela - Nothing Easy is Worth Doing!03:35
  • Dicee - A Stateful Dice App04:28
  • Using the Expanded Widget to Create Flexible Layouts12:00
  • How to Use Intention Actions08:30
  • Adding Gesture Detection with Flutter Button Widges12:41
  • [Dart] Functions - Part 105:38
  • Making the Dice Image Change Reactively04:00
  • [Dart] Variables07:24
  • [Dart] Data Types12:23
  • Stateful vs. Stateless Widgets - What's the Difference?14:58
  • Randomising the Dice08:26
  • Challenge 1 Solution03:09
  • Challenge 2 Solution01:57
  • Challenge 3 Solution02:34
  • Download the Completed Project00:19
  • Tip from Angela - How to Deal with Procrastination04:08
  • Magic 8 Ball - A Decision Making App00:56
  • Step 1 - Set Up The Project00:10
  • Step 2 - Create a Stateless Widget00:18
  • Step 3 - Create a Stateful Widget00:14
  • Step 4 - Make it Interactive00:12
  • Step 5 - Randomise it00:26
  • Step 6 - Update the State00:22
  • Customise It!00:18
  • Tip from Angela - Building a Programming Habit02:46
  • Xylophone - A Simple Musical Instrument App03:36
  • What are Flutter & Dart Packages?13:22
  • How to Play Sound Across Platforms09:46
  • How to Play Multiple Sounds09:00
  • [Dart] Functions - Part 210:32
  • Updating the UI of Our App09:15
  • [Dart] Functions - Part 310:54
  • [Dart] Functions Challenge06:52
  • Refactoring Our App06:18
  • [Dart] Arrow Functions06:27
  • Customise It!00:30
  • Download the Completed Project00:19
  • Tip from Angela - The 20 Minute Method02:39
  • Quizzler - A True/False Quiz App03:14
  • Building a Score Keeper12:08
  • [Dart] Lists08:25
  • Displaying the Questions17:04
  • Checking User Answers06:28
  • [Dart] Conditionals - IF/ELSE15:36
  • More Dart Programming Challenges00:23
  • Creating a Question Class12:39
  • [Dart] Classes and Objects15:24
  • Abstraction in Action16:25
  • Encapsulation in Action14:50
  • Inheritance in Action07:38
  • Polymorphism in Action08:31
  • Adding Back the Score Keeper06:50
  • Code Challenge03:14
  • [Dart] Class Constructors14:01
  • Download the Completed Project00:19
  • Tip from Angela - Learning Before you Eat02:06
  • Destini - A Choose Your Own Adventure Game02:17
  • Set Up the Project00:10
  • Familiarise Yourself with the Starting Project00:33
  • Step 1 - Adding a Image as a Background00:37
  • Solutions on GitHub00:41
  • Step 2/3/4 - Create a New Story Class00:41
  • Step 5/6/7 - Create the Story Brain00:19
  • Display the Story in the App00:26
  • Step 11/12/13/14 - Display the Choices in the App00:21
  • Update the Story Based on User Choice00:33
  • Step 21 - Use the Story Plan to Progress through the Story00:48
  • Step 22/23/24 - Restart the Game When the User Reaches the End00:57
  • Step 25 - Renaming and Refactoring Using Android Studio00:32
  • Step 26/27/28 - Hiding Buttons01:00
  • Download the Completed App!00:27
  • Tip from Angela - Retrieval is How You Learn02:52
  • BMI Calculator - A Beautiful Health App02:02
  • How to Use Flutter Themes24:05
  • How to Refactor Flutter Widgets20:05
  • [Dart] Final vs. Const18:24
  • Creating Custom Flutter Widgets18:25
  • The GestureDetector Widget12:03
  • [Dart] Enums11:19
  • [Dart] Ternary Operator13:07
  • [Dart] Functions as First Order Objects15:04
  • The Flutter Slider Widget25:24
  • Customising Widgets with Themes11:49
  • Composition vs. Inheritance - Building Flutter Widgets From Scratch27:43
  • Multi-Screen Apps Using Routes and Navigation21:39
  • [Dart] Maps07:53
  • Designing the Result Page20:57
  • Adding the BMI Calculator Functionality13:22
  • Download the Completed Project00:19
  • Tip from Angela - Dealing with Lack of Progress03:08
  • Clima - A Modern Weather App00:56
  • Getting Location Data From Across Platforms16:08
  • [Dart] Futures, Async & Await23:58
  • Stateful Widget Lifecycle Methods13:29
  • [Dart] Exception Handling & Null Aware Operators20:32
  • Async/Await Challenge05:26
  • Application Programming Interfaces (APIs) Explained09:00
  • Networking in Flutter Apps with the HTTP Package13:50
  • JSON Parsing and Dynamic Types16:20
  • Getting Actual Weather Data from the OpenWeatherMap API10:19
  • Showing a Spinner While the User Waits06:10
  • Passing Data to a State Object11:18
  • Updating the Weather with the WeatherModel08:41
  • Refactoring the Location Methods15:13
  • Creating and Styling a TextField Widget for Text Entry10:06
  • Passing Data Backwards Through the Navigation Stack13:31
  • Download the Completed Project00:19
  • Tip from Angela - Mixing Knowledge02:20
  • Bitcoin Ticker - A Simple Cryptocurrency Price Tracker02:39
  • The Material DropdownButton Widget08:22
  • [Dart] Loops24:16
  • Building Widgets with Loops Solution07:00
  • Introducing Cupertino Widgets10:30
  • Building Platform Specific UI (iOS & Android)09:42
  • Introduction to Boss Level Challenge 305:15
  • Level 1 - Bronze Medal00:45
  • Level 2 - Silver Medal00:46
  • Level 3 - Gold Medal00:43
  • Check out the completed app!00:35
  • Tip from Angela - Dealing with Frustration02:31
  • Flash Chat - A Lightning Fast Messaging App01:29
  • Named Routes Challenge08:18
  • [Dart] Static Modifier13:03
  • Refactor Routes with the Static Const06:29
  • Flutter Hero Animations08:46
  • Custom Flutter Animations with the Animation Controller28:55
  • [Dart] Mixins10:49
  • Prepackaged Flutter Animations04:32
  • Code Refactoring Challenge16:36
  • Creating a New Firebase Project02:46
  • Potential Problems When Incorporating Firebase00:11
  • Android Firebase Project Setup06:27
  • iOS Firebase Project Setup05:35
  • Firebase Flutter Packages Setup (iOS & Android)07:32
  • Registering Users with Firebase using FirebaseAuth15:57
  • Authenticating Users with FirebaseAuth05:44
  • Showing a Spinner while the User Waits05:25
  • Saving Data into Cloud Firestore08:12
  • Listening for Data from Firebase using Streams13:13
  • [Dart] Streams07:24
  • Turning Streams into Widgets Using the StreamBuilder16:56
  • The Flutter ListView16:38
  • A Different UI for Different Senders16:54
  • Cloud Firestore Authorisation and Security Rules03:36
  • Download the Completed Project00:19
  • Tip from Angela - Sleep is My Secret Weapon03:48
  • Todoey - Your very own To-Do List App01:31
  • Designing the To-Do List App24:40
  • The ListView Challenge09:54
  • The BottomSheet Widget19:41
  • Positioning the BottomSheet above the Keyboard00:24
  • What is State and How do we Manage it?21:02
  • How do Callbacks work in Dart?06:34
  • The ListView Builder20:13
  • Lifting State Up Challenge15:34
  • Flutter App Architecture Patterns10:59
  • Introducing the Provider Package26:50
  • Using a Provider and a ChangeNotifier to Manage State20:35
  • Adding New To-Do List Tasks14:32
  • Checking off To-Do List Tasks06:44
  • Deleting Tasks using the Provider Design Pattern05:45
  • Download the Completed Project00:19
  • Tip from Angela - How to Solidify Your Knowledge02:55
  • Join the #FlutterBrew Contest!00:28
  • Keep Learning!01:16
  • Publish Your Apps!00:33
  • Tip from Angela - Review your goals!02:20
  • Recording of our Live AMA (aka AAA - Ask Angela Anything)59:52
  • Bonus Lecture: Check out my other courses00:04
Online Courses

Learning Flutter doesn't have to be hard. Here is our curated list of recommended online courses that will guide you step-by-step in the learning process.

Learn more
Books

Are you an avid book reader? Do you prefer paperback, or maybe Kindle version? Take a look at our curated list of Flutter related books and take yourskills to the next level.

Learn more
YouTube videos

The number of high-quality and free Flutter video tutorials is growing fast. Check this curated list of recommended videos - there is no excuse to stop learning.

Learn more