Section 6: Lab: The Layouts Every Beginner Needs
- Container, Padding and BoxDecoration for spacing, borders, colours and rounded corners
- Row and Column with mainAxisAlignment and crossAxisAlignment
- Expanded, Flexible and SizedBox for dividing space
- Stack, Positioned and Align for layering widgets
- SafeArea and fixing the overflow errors you will meet most often
Section 7: Lab: Screen Sizes, Images, Icons and Fonts
- Support phones and tablets with LayoutBuilder and MediaQuery
- Wrap and FractionallySizedBox for flexible layouts
- Manage images and assets in pubspec.yaml, and show images from the internet
- Use icons and add a Thai font to the app
- Lab: build a profile card screen that looks right on every screen size
Section 8: Lab: Understanding State in Flutter
- What state is, and how StatelessWidget and StatefulWidget differ
- setState and the State lifecycle: initState and dispose
- Pass data between widgets with constructors and callbacks
- Move state out of widgets with ChangeNotifier and ListenableBuilder
- An overview of the provider package and when state management is worth it
Section 9: Workshop: A BMI Calculator App
- Design the screens with the layouts learned so far and extract reusable custom widgets
- Take user input with GestureDetector, InkWell, Slider and SegmentedButton
- Build more than one screen, navigate with Navigator and pass values between screens
- Show the result, colour and advice according to the BMI value
- Workshop: finish the app and test it on a real phone
Section 10: Lab: Structuring a Project That Can Grow
- Split the code into screens, widgets, models, services and theme folders
- Keep constants, colours and styles in one place and reuse them across the app
- Separating UI from data in the spirit of the Flutter architecture guide, kept simple
- Meet go_router for apps with many screens and deep links
- Use flutter analyze and lints to keep code quality high