Flutter Development Bootcamp with Dart

Officially created in collaboration with the Google Flutter team.
 

What you'll learn

  • Build beautiful, fast and native-quality apps with Flutter
  • Build iOS and Android apps with just one codebase
  • Build a portfolio of beautiful Flutter apps to impress any recruiter
  • Build a portfolio of beautiful Flutter apps to impress any recruiter
  • Become a fully-fledged Flutter developer
  • Build iOS and Android apps using just one programming language (Dart)
  • Understand all the fundamental concepts of Flutter development

Course Content

  • Introduction to the Course
  • Download the Course Syllabus
  • What is Flutter?
  • Why Flutter?D
  • 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

  • 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

  • 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
  • How to Ace this Course

  • Deploying Your Flutter Apps to a Physical Device
  • Deploying Flutter Apps to an Android Phone
  • Deploying Flutter Apps to iPhones/iPads
  • Tip from Fash - Habit Building with the Calendar Trick
  • Feedback Time!

  • What are App Challenges?
  • The I Am Poor Challenge
  • Show Off Your Work!
  • Tip from Fash - Dealing with Distractions
  • Do You Want This?
  • Feedback Time!

  • 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
  • Flutter Card & ListTile Widgets
  • Download the Completed Project
  • Tip from Fash - Nothing Easy is Worth Doing!
  • Feedback Time!

  • Dicee - A Stateful Dice App
  • Using the Expanded Widget to Create Flexible Layouts
  • How to Use Intention Actions
  • How to use Column & Row Widgets for Layout
  • 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
  • Randomising the Dice
  • Challenge 1 Solution
  • Challenge 2 Solution
  • Challenge 3 Solution
  • Download the Completed Project
  • Tip from Fash - How to Deal with Procrastination
  • Feedback Time!

  • 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 Fash - Building a Programming Habit
  • Feedback Time!

  • 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 Fash - The 20 Minute Method
  • Feed Back

  • Quizzler - A True/False Quiz App
  • Building a Score Keeper
  • 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 Fash - Learning Before you Eat
  • Feedback Time!

  • 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
  • Download the Completed App!
  • Tip from Fash - Retrieval is How You Learn
  • Feedback Time!

  • 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
  • Step 5/6/7 - Create the Story Brain
  • [Dart] Enums
  • [Dart] Ternary Operator
  • Update the Story Based on User Choice
  • [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
  • Composition vs. Inheritance - Building Flutter Widgets From Scratch
  • [Dart] Maps
  • Designing the Result Page
  • Adding the BMI Calculator Functionality
  • Download the Completed Project
  • Tip from Fash - Dealing with Lack of Progress
  • Feedback Time!

  • Clima - A Modern Weather App
  • Getting Location Data From Across Platforms
  • [Dart] Futures, Async & Await
  • [Dart] Final vs. Const
  • 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 Fash - Mixing Knowledge
  • Download the Completed Project
  • Feedback Time!

  • 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 Fash - Dealing with Frustration
  • Passing Data to a State Object
  • Feedback Time!

  • Flash Chat - A Lightning Fast Messaging App
  • Named Routes Challenge
  • [Dart] Static Modifier
  • Building Widgets with Loops Solution
  • Refactor Routes with the Static Const
  • Building Platform Specific UI (iOS & Android)
  • IFlutter Hero Animations
  • Custom Flutter Animations with the Animation Controller
  • Level 2 - Silver Medal
  • [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
  • Check out the completed app!
  • The Flutter ListView
  • A Different UI for Different Senders
  • Cloud Firestore Authorisation and Security Rules
  • Download the Completed Project
  • Tip from Fash - Sleep is My Secret Weapon
  • Feedback Time!

  • 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 l
  • 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 Fash - How to Solidify Your Knowledge
  • Feedback Time!

  • Join the #FlutterBrew Contest!
  • Keep Learning!
  • Publish Your Apps!
  • Tip from Fash- Review your goals!
  • Feedback Time!

Requirement

  • A Computer that has admin privileges
  • Have 10GB of free space on your hard drive.
  • Although you can build iOS apps on a Windows computer with Flutter, if you want to test it, you will need a Mac.
  • All software we'll be using is free to download and install.