Learn everything you need to get started with Dart and Flutter.
Overview
Syllabus
Introduction
- Building for multiple platforms
- What you should know
- Using the GitHub exercise files
- Entry point to a Dart application
- Overview of data types: Numbers and strings
- Overview of data types: Bool, lists, and maps
- Difference between var and dynamic
- Functions in Dart
- Overview of classes and objects: Part 1
- Overview of classes and objects: Part 2
- Making use of various Flutter resources
- Installing Flutter and setting up Android Studio on Mac
- Installing Flutter and setting up Android Studio on Windows
- Which Flutter version to use?
- Running the Hello World app on mobile, desktop, and web
- Anatomy of a Flutter project
- Understanding the Counter App code
- Challenge: Draw the widget tree
- Solution: Draw the widget tree
- Bonus: Getting to know Android Studio
- Flutter building blocks to know about
- Building basic widgets for the login screen
- Building basic widgets for the chat screen
- Placements and alignments
- Structure: Flexible and expanded
- Creating your own custom widget
- Building dynamic lists
- How to breakdown designs into code?
- Breaking down designs: More examples
- What is state?
- Writing your first stateful widget
- Widget variables vs. state variables
- When to use stateless or stateful?
- Lifecycle of a stateful widget
- Stateful hot reload
- Learning about buttons
- Taps and gesture detection
- Getting inputs from the user
- Validating user inputs
- Creating multiline text fields
- Navigating from one screen to another
- Passing data with navigation
- Navigating via named routes
- Replacing routes using Navigator
- Organizing the styles and colors for the login page
- Organizing the styles and colors for the chat page
- Understanding the anatomy of a pubspec.yaml file
- Exploring pub.dev
- Plugins vs. packages
- Adding plugins to your app from pub.dev
- Adding packages from external sources
- Modeling entities in Dart
- Generics in Dart
- JSON: Serialization vs. deserialization
- Reading data from a JSON file
- Improving UI with box constraints
- Calling a parent class method from child class
- Handling async operations in Dart
- Introduction to APIs and exploring Postman.
- Deserialize JSON with the JsonSerializable package
- Integrating a REST API
- FutureBuilder for futures
- Repository pattern
- Grid view in a ModalBottomSheet
- Showing the selected image in ChatInput
- Exception handling
- Creating rounded UI elements
- Why you need state management
- Exploring provider way
- Caching data
- Static initializers
- Change notifiers in Flutter
- Creating a dynamic home page
- Making the UI responsive for the web
- Next steps
Taught by
Chris Griffith