Config Project (Flutter)
Overview
Configurar projeto Flutter com arquitetura limpa por feature, consumindo um backend REST (qualquer stack deste repositório).
Estrutura alvo
my_app/
├── lib/
│ ├── core/
│ │ ├── config/ # environment, api_config.dart
│ │ ├── network/ # dio_client.dart, interceptors
│ │ └── errors/ # failure.dart, exceptions.dart
│ ├── features/
│ │ └── customers/
│ │ ├── data/
│ │ │ ├── models/ # CustomerModel (json serializable)
│ │ │ └── repositories/ # CustomerRepositoryImpl
│ │ ├── domain/
│ │ │ ├── entities/ # Customer entity
│ │ │ └── repositories/ # ICustomerRepository (interface)
│ │ └── presentation/
│ │ ├── bloc/ # CustomerNotifier (Riverpod)
│ │ ├── pages/ # CustomerListPage, CustomerFormPage
│ │ └── widgets/ # reutilizáveis da feature
│ └── main.dart
├── pubspec.yaml
└── .env
Dependências principais (pubspec.yaml)
dependencies:
flutter_riverpod: ^2.5.0
dio: ^5.4.0
go_router: ^14.0.0
flutter_dotenv: ^5.1.0
freezed_annotation: ^2.4.0
json_annotation: ^4.9.0
dev_dependencies:
build_runner: ^2.4.0
freezed: ^2.5.0
json_serializable: ^6.8.0
Workflow
- Criar projeto:
flutter create my_app --org com.exemplo. - Adicionar dependências no
pubspec.yaml. - Criar estrutura de pastas conforme acima.
- Configurar
api_config.dartcom base URL do backend. - Configurar
DioClientcom interceptors (auth token, error handling). - Configurar
go_routercom rotas por feature. - Configurar
.envcom API_URL. - Executar
flutter pub get.
References
- Consultar references/flutter-project-pattern.md para código base.
- Consultar ../skills-standards.md para convenções globais.
Global Standards
- Consultar ../skills-standards.md para padrões globais de nomenclatura e convenções gerais entre skills.