{"id":31788050,"url":"https://github.com/gsmlg-app/flutter-app-template","last_synced_at":"2026-02-24T08:33:46.607Z","repository":{"id":303014457,"uuid":"1012898308","full_name":"gsmlg-app/flutter-app-template","owner":"gsmlg-app","description":"Flutter Application Template for AI coder","archived":false,"fork":false,"pushed_at":"2026-01-26T15:55:51.000Z","size":1252,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-27T03:57:13.525Z","etag":null,"topics":["claude-code","flutter","flutter-examples","gemini-cli"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gsmlg-app.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-07-03T04:08:12.000Z","updated_at":"2026-01-26T15:55:56.000Z","dependencies_parsed_at":"2025-07-05T07:25:31.834Z","dependency_job_id":"580661b9-59d7-4777-94c4-343f5f3b81a7","html_url":"https://github.com/gsmlg-app/flutter-app-template","commit_stats":null,"previous_names":["gsmlg-dev/flutter-app-template","gsmlg-app/flutter-app-template"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/gsmlg-app/flutter-app-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsmlg-app%2Fflutter-app-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsmlg-app%2Fflutter-app-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsmlg-app%2Fflutter-app-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsmlg-app%2Fflutter-app-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gsmlg-app","download_url":"https://codeload.github.com/gsmlg-app/flutter-app-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsmlg-app%2Fflutter-app-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29776637,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-24T04:54:30.205Z","status":"ssl_error","status_checked_at":"2026-02-24T04:53:58.628Z","response_time":75,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["claude-code","flutter","flutter-examples","gemini-cli"],"created_at":"2025-10-10T14:08:22.202Z","updated_at":"2026-02-24T08:33:46.590Z","avatar_url":"https://github.com/gsmlg-app.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Flutter App Template\n\nA comprehensive Flutter application template with monorepo architecture, providing a robust foundation for building scalable Flutter applications with clean architecture principles.\n\n## Features\n\n- 🏗️ **Monorepo Architecture** - Managed by Melos for modular development\n- 🎨 **Theme Management** - Multiple color schemes (fire, green, violet, wheat) with dynamic switching\n- 🌍 **Internationalization** - Full i18n support with ARB files\n- 🔄 **State Management** - BLoC pattern implementation\n- 📱 **Responsive Design** - Adaptive widgets for multiple platforms\n- 🔧 **Code Generation** - Mason templates for scaffolding\n- 🧪 **Testing** - Comprehensive test setup\n- 📦 **Dependency Injection** - Clean architecture with separation of concerns\n\n## Architecture Overview\n\nThis project follows clean architecture principles with a monorepo structure managed by Melos, providing separation of concerns across multiple specialized packages.\n\n### Monorepo Organization\n\n- **Main App**: `lib/` - Entry point and main application code\n- **API Layer**: `app_api/` - Generated API client code (OpenAPI/Swagger based)\n- **State Management**: `app_bloc/` - BLoC pattern implementations for business logic\n- **Shared Libraries**: `app_lib/` - Core utilities, themes, localization\n- **UI Components**: `app_widget/` - Reusable widgets and UI elements\n- **Code Generation**: `bricks/` - Mason templates for scaffolding\n- **Third-party**: `third_party/` - Modified/custom third-party packages\n\n### Key Packages\n\n- **app_theme**: Theme management with multiple color schemes\n- **app_locale**: Internationalization support with ARB files\n- **app_provider**: Dependency injection and app-level providers\n- **theme_bloc**: State management for theme switching\n- **app_adaptive_widgets**: Responsive/adaptive UI components\n- **app_artwork**: Asset management (icons, lottie animations)\n- **app_feedback**: User feedback mechanisms (snackbars, dialogs, toasts)\n\n## Getting Started\n\n### Prerequisites\n\n- Flutter SDK (latest stable version)\n- Dart SDK\n- Git\n\n### Installation\n\n1.  **Clone the repository:**\n\n    ```bash\n    git clone https://github.com/your-username/flutter-app-template.git\n    cd flutter-app-template\n    ```\n\n2.  **Install global dependencies:**\n\n    ```bash\n    dart pub global activate melos\n    dart pub global activate mason_cli\n    ```\n\n3.  **Bootstrap the project:**\n\n    This will install all the dependencies for the root project and all the packages in the workspace.\n\n    ```bash\n    melos bootstrap\n    ```\n\n4.  **Initialize Mason:**\n\n    ```bash\n    mason get\n    ```\n\n## Development Workflow\n\n### Setup \u0026 Code Generation\n\n```bash\n# Install global dependencies\ndart pub global activate melos\ndart pub global activate mason_cli\n\n# Bootstrap the project\nmelos bootstrap\n\n# Initialize mason\nmason get\n```\n\n### Development Commands\n\n```bash\n# Run analysis and formatting\nmelos run analyze\nmelos run format\n\n# Run tests across all packages\nmelos run test\nflutter test\n\n# Generate code (build_runner, l10n)\nmelos run prepare\nmelos run build-runner\n```\n\n### Individual Package Commands\n\n```bash\n# Run tests for specific package\ncd app_lib/theme \u0026\u0026 flutter test\n\n# Analyze specific package\ncd app_widget/adaptive \u0026\u0026 flutter analyze\n\n# Build specific package\ncd app_lib/theme \u0026\u0026 dart run build_runner build --delete-conflicting-outputs\n```\n\n## Key Files \u0026 Entry Points\n\n- **Main Entry**: `lib/main.dart` - App initialization with providers\n- **App Shell**: `lib/app.dart` - Root widget with theme management\n- **Routing**: `lib/router.dart` - GoRouter configuration with declarative routing\n- **Screens**: `lib/screens/` - Feature screens organized by domain\n\n## Configuration Files\n\n- **Melos**: `pubspec.yaml` (workspace configuration)\n- **Mason**: `mason.yaml` (code generation templates)\n- **Analysis**: `analysis_options.yaml` (linting rules)\n- **Localization**: `app_lib/locale/l10n.yaml` (i18n configuration)\n\n## Available Melos Scripts\n\nThis project uses Melos to manage the monorepo. Here are some of the available scripts:\n\n-   `melos run analyze`: Run `flutter analyze` for all packages\n-   `melos run fix`: Run `dart fix` for all packages\n-   `melos run format`: Run `dart format` for all packages\n-   `melos run test`: Run Flutter tests for all packages\n-   `melos run test:dart`: Run Dart tests for non-Flutter packages\n-   `melos run test:flutter`: Run Flutter tests for Flutter packages\n-   `melos run upgrade`: Upgrade dependencies in all packages\n-   `melos run outdated`: Check for outdated dependencies in all packages\n-   `melos run validate-dependencies`: Validate dependencies usage\n-   `melos run prepare`: Generate code (bootstrap + gen-l10n + build-runner)\n-   `melos run build-runner`: Run build_runner for all packages\n-   `melos run gen-l10n`: Generate localization files\n-   `melos run brick-test`: Run Mason brick tests (see [BRICK_TESTING.md](BRICK_TESTING.md))\n\n## Code Generation with Mason\n\nThis project uses Mason for code generation to maintain consistency and speed up development. For a complete guide to all available bricks and their usage, see [BRICKS.md](./BRICKS.md).\n\n### Testing Mason Bricks\n\nFor comprehensive documentation on testing Mason bricks, including test structure, running tests, and writing new tests, see [BRICK_TESTING.md](./BRICK_TESTING.md).\n\n### Initialize Mason\n\n```bash\ndart pub global activate mason_cli\nmason get\n```\n\n### Generate API Client\n\nCreate API client code from OpenAPI specification:\n\n```bash\nmason make api_client -o app_api/app_api --package_name=app_api\n# Then add OpenAPI spec to `app_api/app_api/openapi.yaml`\n```\n\n### Generate BLoC\n\nCreate a simple BLoC package:\n\n```bash\nmason make simple_bloc -o app_bloc/feature_name --name=feature_name\n```\n\n### Generate Form BLoC\n\nCreate a complete form BLoC with validation and submission logic:\n\n```bash\nmason make form_bloc --name Login --field_names \"email,password\"\n```\n\n## 📚 Additional Documentation\n\n- **[🧱 Mason Bricks Guide](./BRICKS.md)** - Complete guide to all available Mason bricks for code generation\n- **[📝 Form BLoC Guide](./FORM_BLOC.md)** - Comprehensive documentation for form validation and submission\n- **[📋 CLAUDE.md](./CLAUDE.md)** - Development guidance and project architecture for AI assistants\n\n### Running the App\n\n```bash\n# Development\nflutter run\n\n# Specific platform\nflutter run -d chrome\nflutter run -d android\nflutter run -d ios\n```\n\n### Running Tests\n\n```bash\n# Run all tests\nflutter test\n\n# Run tests for all packages\nmelos exec flutter test\n\n# Run tests for specific package\ncd app_lib/theme \u0026\u0026 flutter test\n```\n\n## Testing Structure\n\nTests are co-located with their respective packages:\n- **Unit tests**: `test/` directory in each package\n- **Widget tests**: `test/` directory in main app\n- **Integration tests**: Use `flutter test` at root level\n\n## Package Dependencies\n\nThe workspace uses path-based dependencies for internal packages (marked as `any` in pubspec.yaml). All packages are managed through Melos workspace configuration, ensuring consistent versioning and dependency resolution across the monorepo.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a pull request. For major changes, please open an issue first to discuss what you would like to change.\n\n### Development Guidelines\n\n1. Follow the existing code style and architecture patterns\n2. Write tests for new features\n3. Update documentation as needed\n4. Run `melos run analyze` and `melos run format` before submitting PRs\n5. Ensure all tests pass with `melos run test`\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Support\n\nIf you encounter any issues or have questions, please file an issue on the GitHub repository.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgsmlg-app%2Fflutter-app-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgsmlg-app%2Fflutter-app-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgsmlg-app%2Fflutter-app-template/lists"}