Skip to content

vuhung16au/flutter-mastery-lab

Repository files navigation

Flutter Playground

A comprehensive collection of Flutter projects demonstrating various concepts, widgets, and best practices.

📁 Project Structure

This playground contains the following Flutter projects:

  • HelloFlutter/hello_flutter/ - Basic Flutter introduction
  • 01-Flutter-Widgets/ - Core Flutter widgets and concepts
  • 02-Flutter-UI-Components/ - Advanced UI components and layouts
  • 03-Flutter-Design-Animations/ - Design patterns and animations
  • 04-Flutter-Forms-Gestures/ - Form handling and gesture recognition
  • 05-Flutter-Navigation-Routing/ - Navigation and routing patterns
  • 06-Flutter-Accessing-Device/ - Device features and platform integration
  • 07-Flutter-Advanced-Concepts/ - Advanced Flutter concepts and patterns

🛠️ Build Tool

This project includes a GNU Make build tool to automate Flutter commands across all projects.

Prerequisites

  • Flutter SDK installed and configured
  • GNU Make (usually pre-installed on macOS/Linux)

Quick Start

# See all available commands
make help

# Run all commands for all projects
make all

# Check Flutter installation across all projects
make doctor

Available Make Targets

Main Targets

  • make all - Run all commands for all projects
  • make doctor - Run flutter doctor -v for all projects
  • make pub-get - Get dependencies for all projects
  • make analyze - Analyze all projects
  • make test - Run tests for all projects
  • make build-android - Build Android APK for all projects
  • make build-ios - Build iOS for all projects (debug, no codesign)
  • make clean - Clean all projects

Individual Project Targets

  • make hello-flutter - Run all commands for HelloFlutter project
  • make project-01 - Run all commands for 01-Flutter-Widgets
  • make project-02 - Run all commands for 02-Flutter-UI-Components
  • make project-03 - Run all commands for 03-Flutter-Design-Animations
  • make project-04 - Run all commands for 04-Flutter-Forms-Gestures
  • make project-05 - Run all commands for 05-Flutter-Navigation-Routing
  • make project-06 - Run all commands for 06-Flutter-Accessing-Device
  • make project-07 - Run all commands for 07-Flutter-Advanced-Concepts

Usage Examples

# Check Flutter installation and dependencies
make doctor

# Get dependencies for all projects
make pub-get

# Analyze code quality across all projects
make analyze

# Run tests for all projects
make test

# Build Android APKs for all projects
make build-android

# Build iOS apps for all projects (debug mode)
make build-ios

# Run all commands for a specific project
make project-01

# Clean all build artifacts
make clean

What Each Command Does

  1. flutter doctor -v - Checks Flutter installation and dependencies
  2. flutter pub get - Downloads and installs project dependencies
  3. flutter analyze - Performs static analysis and linting
  4. flutter test - Runs unit and widget tests
  5. flutter build apk --release - Builds optimized Android APK
  6. flutter build ios --debug --no-codesign - Builds iOS app in debug mode without code signing

Features

  • 🎨 Colored output - Easy to read with color-coded messages
  • 📁 Automatic navigation - Changes to each project directory automatically
  • Parallel processing - Efficient execution across multiple projects
  • 🔄 Error handling - Continues to next project if one fails
  • 📋 Help system - Comprehensive help with make help

🚀 Getting Started

  1. Clone this repository
  2. Ensure Flutter is installed and configured
  3. Run make help to see available commands
  4. Start with make doctor to check your setup
  5. Use make all to run all commands for all projects

📚 Documentation

Each project contains its own documentation and examples. Check the individual project folders for detailed information about specific concepts and implementations.

🤝 Contributing

Feel free to contribute by adding new projects, improving existing ones, or enhancing the build tool.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published