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

Officially created in collaboration with the Google Flutter team.

Created by Dr. Angela Yu
Language English

The Complete 2021 Flutter Development Bootcamp with Dart

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

Officially created in collaboration with the Google Flutter team.

Created by Dr. Angela Yu
Language English
1. Introduction to Cross-Platform Development with Flutter and Dart
  • 1. Introduction to the Course 00:02:05
  • 2. Download the Course Syllabus .html
  • 2.1 Flutter Dev Syllabus .pdf
  • 3. What is Flutter 00:07:52
  • 4. Why Flutter 00:12:11
  • 5. The Anatomy of a Flutter App 00:05:27
  • 6. How to Watch the Course in High Definition .html
  • 7. How to Get the Most Out of the Course 00:09:33
  • 8. Join the Student Community .html
  • 8.1 Course Fixes Report an Issue .html
2. Setup and Installation
  • 1. Prerequisites for Flutter Development 00:06:22
  • 2. Overview of the Process .html
  • 3. Windows Setup Step 1 - Install the Flutter SDK 00:07:19
  • 4. Windows Setup Step 2 - Install Android Studio 00:02:39
  • 5. Windows Setup Step 3 - Install the Android Emulator 00:05:44
  • 6. Windows Installation Troubleshooting .html
  • 7. A Quick Note About macOS Catalina .html
  • 8. Mac Setup Step 1 - Install the Flutter SDK 00:13:46
  • 9. Mac Setup Step 2 - Install Android Studio 00:04:10
  • 10. Mac Setup Step 3 - Install the Android Emulator 00:03:54
  • 11. Mac Setup Step 4 - Install Xcode and Command Line Tools 00:02:25
  • 12. Mac Setup Step 5 - Test the iOS Simulator 00:03:16
  • 13. Mac Installation Troubleshooting .html
  • 14. Optional Configure Android Studio for Flutter Development 00:09:51
  • 15. Optional Guided Tour of Android Studio for Flutter Development 00:13:15
  • 15.1 Course Fixes Report an Issue .html
3. I Am Rich - How to Create Flutter Apps From Scratch
  • 1. Creating a New Flutter Project from Scratch 00:15:32
  • 1.1 Course Resources and Links .html
  • 2. A quick note about Hot Reload .html
  • 3. Scaffolding a Flutter App 00:22:12
  • 4. Working with Assets in Flutter the Pubspec file 00:09:24
  • 4.1 Diamond Image Asset .html
  • 5. How to Add App Icons to the iOS and Android Apps 00:09:10
  • 5.1 App Icons .html
  • 5.2 Course Fixes Report an Issue .html
  • 6. How to Ace this Course 00:01:24
  • 6.1 Goal Setting Questions .pdf
4. Running Your App on a Physical Device
  • 1. Deploying Your Flutter Apps to a Physical Device .html
  • 2. Deploying Flutter Apps to an Android Phone 00:06:19
  • 2.1 Troubleshooting Android Device Testing for Flutter .html
  • 3. Deploying Flutter Apps to iPhonesiPads 00:16:23
  • 3.1 Course Fixes Report an Issue .html
  • 3.1 Troubleshooting iOS Device Testing for Flutter .html
  • 3.2 Course Fixes Report an Issue .html
  • 3.2 Troubleshooting iOS Device Testing for Flutter .html
  • 4. Tip from Angela - Habit Building with the Calendar Trick 00:02:52
5. I Am Poor - App Challenge
  • 1. What are App Challenges 00:04:24
  • 2. The I Am Poor Challenge .html
  • 3. Show Off Your Work .html
  • 3.1 Course Fixes Report an Issue .html
  • 4. Tip from Angela - Dealing with Distractions 00:02:28
  • 5. Do You Want This .html
6. MiCard - How to Build Beautiful UIs with Flutter Widgets
  • 1. MiCard - A Single Screen Personal Business Card App 00:05:31
  • 1.1 Course Resources .html
  • 2. Hot Reload and Hot Restart - Flutter Power Tools 00:13:49
  • 3. How to Use Container Widgets 00:11:16
  • 4. How to use Column Row Widgets for Layout 00:14:00
  • 5. Flutter Layouts Challenge .html
  • 6. Tapping into Widget Properties 00:09:14
  • 7. Incorporating Custom Fonts in Your Flutter App 00:10:59
  • 7.1 pubscpec.yaml File .html
  • 8. Adding Material Icons with the Icon Widget 00:12:35
  • 9. Flutter Card ListTile Widgets 00:13:19
  • 10. Download the Completed Project .html
  • 10.1 Course Fixes Report an Issue .html
  • 11. Tip from Angela - Nothing Easy is Worth Doing 00:03:35
7. Dicee - Building Apps with State
  • 1. Dicee - A Stateful Dice App 00:04:28
  • 1.1 Course Resources .html
  • 2. Using the Expanded Widget to Create Flexible Layouts 00:12:00
  • 3. How to Use Intention Actions 00:08:30
  • 4. Adding Gesture Detection with Flutter Button Widges 00:12:41
  • 5. Dart Functions - Part 1 00:05:38
  • 6. Making the Dice Image Change Reactively 00:04:00
  • 7. Dart Variables 00:07:24
  • 8. Dart Data Types 00:12:23
  • 9. Stateful vs. Stateless Widgets - Whats the Difference 00:14:58
  • 10. Randomising the Dice 00:08:26
  • 11. Challenge 1 Solution 00:03:09
  • 12. Challenge 2 Solution 00:01:57
  • 13. Challenge 3 Solution 00:02:34
  • 14. Download the Completed Project .html
  • 14.1 Course Fixes Report an Issue .html
  • 15. Tip from Angela - How to Deal with Procrastination 00:04:08
8. Boss Level Challenge 1 - Magic 8 Ball
  • 1. Magic 8 Ball - A Decision Making App 00:00:56
  • 1.1 Course Resources .html
  • 2. Step 1 - Set Up The Project .html
  • 3. Step 2 - Create a Stateless Widget .html
  • 3.1 Solution .html
  • 4. Step 3 - Create a Stateful Widget .html
  • 4.1 Solution .html
  • 5. Step 4 - Make it Interactive .html
  • 5.1 Solution .html
  • 6. Step 5 - Randomise it .html
  • 6.1 Solution .html
  • 7. Step 6 - Update the State .html
  • 7.1 Solution .html
  • 8. Customise It .html
  • 8.1 Course Fixes Report an Issue .html
  • 9. Tip from Angela - Building a Programming Habit 00:02:46
9. Xylophone - Using Flutter and Dart Packages to Speed Up Development
  • 1. Xylophone - A Simple Musical Instrument App 00:03:36
  • 1.1 Course Resources .html
  • 2. What are Flutter Dart Packages 00:13:22
  • 3. How to Play Sound Across Platforms 00:09:46
  • 4. How to Play Multiple Sounds 00:09:00
  • 5. Dart Functions - Part 2 00:10:32
  • 6. Updating the UI of Our App 00:09:15
  • 7. Dart Functions - Part 3 00:10:54
  • 8. Dart Functions Challenge 00:06:52
  • 9. Refactoring Our App 00:06:18
  • 10. Dart Arrow Functions 00:06:27
  • 11. Customise It .html
  • 12. Download the Completed Project .html
  • 12.1 Course Fixes Report an Issue .html
  • 13. Tip from Angela - The 20 Minute Method 00:02:39
10. Quizzler -Modularising Organising Flutter Code
  • 1. Quizzler - A TrueFalse Quiz App 00:03:14
  • 1.1 Course Resources .html
  • 2. Building a Score Keeper 00:12:08
  • 3. Dart Lists 00:08:25
  • 4. Displaying the Questions 00:17:04
  • 5. Checking User Answers 00:06:28
  • 6. Dart Conditionals - IFELSE 00:15:36
  • 7. More Dart Programming Challenges .html
  • 8. Creating a Question Class 00:12:39
  • 9. Dart Classes and Objects 00:15:24
  • 10. Abstraction in Action 00:16:25
  • 11. Encapsulation in Action 00:14:50
  • 12. Inheritance in Action 00:07:38
  • 13. Polymorphism in Action 00:08:31
  • 14. Adding Back the Score Keeper 00:06:50
  • 15. Code Challenge 00:03:14
  • 15.1 Starting Project .html
  • 15.2 Completed Solution .html
  • 15.2 rFlutter Alert Package .html
  • 15.3 Completed Solution .html
  • 15.3 rFlutter Alert Package .html
  • 16. Dart Class Constructors 00:14:01
  • 17. Download the Completed Project .html
  • 17.1 Course Fixes Report an Issue .html
  • 18. Tip from Angela - Learning Before you Eat 00:02:06
11. Boss Level Challenge 2 - Destini
  • 1. Destini - A Choose Your Own Adventure Game 00:02:17
  • 2. Set Up the Project .html
  • 3. Familiarise Yourself with the Starting Project .html
  • 4. Step 1 - Adding a Image as a Background .html
  • 4.1 Step 1 Solution .html
  • 5. Solutions on GitHub .html
  • 6. Step 234 - Create a New Story Class .html
  • 6.1 Step 2 Solution .html
  • 6.1 Step 3 Solution .html
  • 6.2 Step 3 Solution .html
  • 6.2 Step 4 Solution .html
  • 6.3 Step 2 Solution .html
  • 6.3 Step 4 Solution .html
  • 7. Step 567 - Create the Story Brain .html
  • 7.1 Step 5 Solution .html
  • 7.1 Step 6 Solution .html
  • 7.2 Step 5 Solution .html
  • 7.2 Step 7 Solution .html
  • 7.3 Step 6 Solution .html
  • 7.3 Step 7 Solution .html
  • 8. Display the Story in the App .html
  • 8.1 Step 9 Solution .html
  • 8.1 Step 10 Solution .html
  • 8.2 Step 9 Solution .html
  • 8.2 Step 10 Solution .html
  • 8.3 Step 8 Solution .html
  • 9. Step 11121314 - Display the Choices in the App .html
  • 9.1 Step 12 Solution .html
  • 9.1 Step 13 Solution .html
  • 9.2 Step 14 Solution .html
  • 9.3 Step 11 Solution .html
  • 9.4 Step 12 Solution .html
  • 9.4 Step 13 Solution .html
  • 10. Update the Story Based on User Choice .html
  • 10.1 Step 16 Solution .html
  • 10.1 Step 18 Solution .html
  • 10.2 Step 18 Solution .html
  • 10.2 Step 19 Solution .html
  • 10.3 Step 16 Solution .html
  • 10.3 Step 17 Solution .html
  • 10.4 Step 17 Solution .html
  • 10.4 Step 19 Solution .html
  • 11. Step 21 - Use the Story Plan to Progress through the Story .html
  • 11.1 Step 21 Solution .html
  • 12. Step 222324 - Restart the Game When the User Reaches the End .html
  • 12.1 Step 22 Solution .html
  • 12.1 Step 24 Solution .html
  • 12.2 Step 23 Solution .html
  • 12.3 Step 22 Solution .html
  • 12.3 Step 24 Solution .html
  • 13. Step 25 - Renaming and Refactoring Using Android Studio .html
  • 13.1 Step 25 Solution .html
  • 14. Step 262728 - Hiding Buttons .html
  • 14.1 Step 26 Solution .html
  • 14.1 Step 27 Solution .html
  • 14.2 Step 26 Solution .html
  • 14.2 Step 27 Solution .html
  • 14.3 Step 28 Solution .html
  • 15. Download the Completed App .html
  • 15.1 Course Fixes Report an Issue .html
  • 16. Tip from Angela - Retrieval is How You Learn 00:02:52
12. BMI Calculator - Building Flutter UI for Intermediates
  • 1. BMI Calculator - A Beautiful Health App 00:02:02
  • 2. How to Use Flutter Themes 00:24:05
  • 3. How to Refactor Flutter Widgets 00:20:05
  • 4. Dart Final vs. Const 00:18:24
  • 5. Creating Custom Flutter Widgets 00:18:25
  • 6. The GestureDetector Widget 00:12:03
  • 7. Dart Enums 00:11:19
  • 8. Dart Ternary Operator 00:13:07
  • 9. Dart Functions as First Order Objects 00:15:04
  • 10. The Flutter Slider Widget 00:25:24
  • 11. Customising Widgets with Themes 00:11:49
  • 12. Composition vs. Inheritance - Building Flutter Widgets From Scratch 00:27:43
  • 13. Multi-Screen Apps Using Routes and Navigation 00:21:39
  • 14. Dart Maps 00:07:53
  • 15. Designing the Result Page 00:20:57
  • 16. Adding the BMI Calculator Functionality 00:13:22
  • 17. Download the Completed Project .html
  • 17.1 Course Fixes Report an Issue .html
  • 18. Tip from Angela - Dealing with Lack of Progress 00:03:08
13. Clima - Powering Your Flutter App with Live Web Data
  • 1. Clima - A Modern Weather App 00:00:56
  • 2. Getting Location Data From Across Platforms 00:16:08
  • 3. Dart Futures Async Await 00:23:58
  • 4. Stateful Widget Lifecycle Methods 00:13:29
  • 5. Dart Exception Handling Null Aware Operators 00:20:32
  • 6. AsyncAwait Challenge 00:05:26
  • 7. Application Programming Interfaces (APIs) Explained 00:09:00
  • 8. Networking in Flutter Apps with the HTTP Package 00:13:50
  • 9. JSON Parsing and Dynamic Types 00:16:20
  • 10. Getting Actual Weather Data from the OpenWeatherMap API 00:10:19
  • 11. Showing a Spinner While the User Waits 00:06:10
  • 12. Passing Data to a State Object 00:11:18
  • 13. Updating the Weather with the WeatherModel 00:08:41
  • 14. Refactoring the Location Methods 00:15:13
  • 15. Creating and Styling a TextField Widget for Text Entry 00:10:06
  • 16. Passing Data Backwards Through the Navigation Stack 00:13:31
  • 17. Download the Completed Project .html
  • 17.1 Course Fixes Report an Issue .html
  • 18. Tip from Angela - Mixing Knowledge 00:02:20
14. Boss Level Challenge 3 - Bitcoin Ticker
  • 1. Bitcoin Ticker - A Simple Cryptocurrency Price Tracker 00:02:39
  • 2. The Material DropdownButton Widget 00:08:22
  • 3. Dart Loops 00:24:16
  • 4. Building Widgets with Loops Solution 00:07:00
  • 5. Introducing Cupertino Widgets 00:10:30
  • 6. Building Platform Specific UI (iOS Android) 00:09:42
  • 7. Introduction to Boss Level Challenge 3 00:05:15
  • 8. Level 1 - Bronze Medal .html
  • 9. Level 2 - Silver Medal .html
  • 10. Level 3 - Gold Medal .html
  • 11. Check out the completed app .html
  • 11.1 Course Fixes Report an Issue .html
  • 12. Tip from Angela - Dealing with Frustration 00:02:31
15. Flash Chat - Flutter x Firebase Cloud Firestore
  • 1. Flash Chat - A Lightning Fast Messaging App 00:01:29
  • 2. Named Routes Challenge 00:08:18
  • 3. Dart Static Modifier 00:13:03
  • 4. Refactor Routes with the Static Const 00:06:29
  • 5. Flutter Hero Animations 00:08:46
  • 6. Custom Flutter Animations with the Animation Controller 00:28:55
  • 7. Dart Mixins 00:10:49
  • 8. Prepackaged Flutter Animations 00:04:32
  • 9. Code Refactoring Challenge 00:16:36
  • 10. Creating a New Firebase Project 00:02:46
  • 11. Potential Problems When Incorporating Firebase .html
  • 12. Android Firebase Project Setup 00:06:27
  • 13. iOS Firebase Project Setup 00:05:35
  • 14. Firebase Flutter Packages Setup (iOS Android) 00:07:32
  • 15. Registering Users with Firebase using FirebaseAuth 00:15:57
  • 16. Authenticating Users with FirebaseAuth 00:05:44
  • 17. Showing a Spinner while the User Waits 00:05:25
  • 18. Saving Data into Cloud Firestore 00:08:12
  • 19. Listening for Data from Firebase using Streams 00:13:13
  • 20. Dart Streams 00:07:24
  • 21. Turning Streams into Widgets Using the StreamBuilder 00:16:56
  • 22. The Flutter ListView 00:16:38
  • 23. A Different UI for Different Senders 00:16:54
  • 24. Cloud Firestore Authorisation and Security Rules 00:03:36
  • 25. Download the Completed Project .html
  • 25.1 Course Fixes Report an Issue .html
  • 26. Tip from Angela - Sleep is My Secret Weapon 00:03:48
16. Flutter State Management
  • 1. Todoey - Your very own To-Do List App 00:01:31
  • 1.1 Course Resources and Links .html
  • 2. Designing the To-Do List App 00:24:40
  • 3. The ListView Challenge 00:09:54
  • 4. The BottomSheet Widget 00:19:41
  • 5. Positioning the BottomSheet above the Keyboard .html
  • 6. What is State and How do we Manage it 00:21:02
  • 7. How do Callbacks work in Dart 00:06:34
  • 8. The ListView Builder 00:20:13
  • 9. Lifting State Up Challenge 00:15:34
  • 10. Flutter App Architecture Patterns 00:10:59
  • 11. Introducing the Provider Package 00:26:50
  • 12. Using a Provider and a ChangeNotifier to Manage State 00:20:35
  • 13. Adding New To-Do List Tasks 00:14:32
  • 14. Checking off To-Do List Tasks 00:06:44
  • 15. Deleting Tasks using the Provider Design Pattern 00:05:45
  • 16. Download the Completed Project .html
  • 16.1 Course Fixes Report an Issue .html
  • 17. Tip from Angela - How to Solidify Your Knowledge 00:02:55
17. Next Steps
  • 1. Join the FlutterBrew Contest .html
  • 2. Keep Learning .html
  • 3. Publish Your Apps .html
  • 4. Tip from Angela - Review your goals 00:02:20
18. Bonus Section
  • 1. Recording of our Live AMA (aka AAA - Ask Angela Anything) 00:59:52