A Flutter monorepo for building scalable applications with clean architecture and modern development practices.
Pillar is a collection of Flutter packages organized as a monorepo, designed to provide reusable components, utilities, and architectural patterns for Flutter applications. This project follows clean architecture principles and modern Flutter development best practices.
This monorepo is built using Melos for workspace management and follows the architectural patterns established by projects like FlutterFire.
- Flutter & Dart: Core framework and language
- GetIt: Dependency injection
- Bloc: State management
- Freezed: Immutable data classes and unions
- Dio & Retrofit: HTTP client and API integration
- AutoRoute: Navigation and routing
- Firebase: Backend services integration
- Flutter SDK (>=3.16.0)
- Dart SDK (>=3.2.0)
- Melos for monorepo management
- Clone the repository:
git clone https://github.com/your-username/pillar.git
cd pillar- Install Melos globally:
dart pub global activate melos- Bootstrap the workspace:
melos bootstrapmelos analyze- Run static analysis on all packagesmelos test- Run tests for all packagesmelos format- Format code across all packagesmelos build_runner- Generate code using build_runnermelos pub:get- Run pub get on all packagesmelos pub:upgrade- Upgrade dependencies for all packages
pillar/
├── packages/ # All Flutter packages
├── docs/ # Documentation
├── scripts/ # Build and utility scripts
├── melos.yaml # Melos configuration
├── pubspec.yaml # Root pubspec
└── analysis_options.yaml # Dart analysis configuration
This monorepo contains the following packages:
- pillar_core - Core package with clean architecture foundation and dependency injection
- pillar_remote_config - Remote configuration management
This monorepo uses Melos for package management and versioning. See docs/VERSIONING.md for detailed instructions.
# Check current versions
melos run version:check
# Local release (development)
melos run release:local
# Production release
melos run release:publish
# Check dependencies
melos run deps:graph
# Handle breaking changes
melos run breaking:check
melos run breaking:updatePlease read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
For versioning and release management, see docs/VERSIONING.md.
This project follows strict coding standards:
- Use English for all code and documentation
- Follow clean architecture principles
- Prefer composition over inheritance
- Use descriptive variable names with auxiliary verbs
- Write concise, technical Dart code
- Follow the linting rules defined in
analysis_options.yaml
This project is licensed under the BSD-3-Clause License - see the LICENSE file for details.
For support, please open an issue in the GitHub repository or contact the maintainers.