This document provides an introduction to the Flutter Mobile Project Template, a comprehensive starting point for developing mobile applications with Flutter. The template is structured as a monorepo using Melos for package management and implements a modular, scalable architecture with clear separation of concerns.
For detailed instructions on setting up the development environment and getting started with the template, see Getting Started.
The Flutter Mobile Project Template is organized into a monorepo structure that separates applications from reusable packages:
Sources: pubspec.yaml5-26 docs/ARCHITECTURE.md6-24
The template enforces a strict dependency hierarchy to maintain clean architecture principles:
Sources: docs/ARCHITECTURE.md26-41 pubspec.yaml9-26
The Flutter Mobile Project Template provides:
Sources: pubspec.yaml28-190 melos.yaml pubspec.lock
The project uses Melos to manage the workspace and dependencies across packages. This enables coordinated operations across all packages:
| Command | Description |
|---|---|
melos bootstrap | Install all dependencies and link packages |
melos run gen | Generate code, including build_runner and l10n |
melos run test | Run tests across all packages |
melos run fix | Apply fixes and linting across all packages |
melos run upgrade | Upgrade dependencies across all packages |
Sources: pubspec.yaml75-226 docs/GET_STARTED.md28-46
When using this template to create a new project, it runs through an initialization process:
Sources: .github/workflows/initialization.yaml
The app uses a layered architecture pattern with clean separation of concerns:
Sources: docs/NEW_FEATURE.md docs/ARCHITECTURE.md
The template is configured for consistent development environments using:
The template supports multiple environment configurations (development, staging, production) with different configurations for app names, bundle IDs, and API endpoints.
Sources: docs/GET_STARTED.md3-98 apps/app/README.md1-31
The template is designed to be extended with new features using the provided tools:
Create new feature packages using Mason bricks:
mason make features_package
Configure the routing system to include the new feature
Add new UI components to the catalog app for preview and testing
Sources: docs/NEW_FEATURE.md1-239 apps/catalog/README.md1-31