← Back to list

flutter-clean-architecture
by xnemesy
⭐ 0🍴 0📅 Jan 22, 2026
SKILL.md
name: flutter-clean-architecture description: Struttura del progetto Flutter e separazione delle responsabilità.
Flutter Clean Architecture
Usa questa skill per decidere dove mettere i file e come strutturare nuove feature.
Struttura delle Cartelle
Il progetto è diviso in layer. Non mischiare logica di business con UI.
lib/
├── models/ # Definizioni dei dati (Classi pure Dart, JSON serialization)
├── providers/ # State management (Riverpod Controllers & Repositories)
├── services/ # Servizi esterni (API client, Database, Local Auth)
├── screens/ # Pagine intere (Scaffold)
├── widgets/ # Componenti UI riutilizzabili (Bottoni, Card, Grafici)
└── main.dart # Entry point
Regole per Layer
1. Models
- Classi semplici.
- Usa
json_serializableofreezedse necessario, ma mantienile snelle. - Devono essere indipendenti da Flutter (niente import
package:flutter/...).
2. Services
- Contengono la logica "sporca" (chiamate HTTP, accesso al disco).
- Devono essere esposti tramite Provider per essere mockabili nei test.
- Esempio:
AuthService,DatabaseService.
3. Providers (Logic)
- Fanno da ponte tra UI e Services.
- Gestiscono lo stato dell'applicazione.
- Non devono contenere riferimenti a Widget o
BuildContext.
4. UI (Screens & Widgets)
- Devono essere stupidi.
- Si limitano a mostrare i dati forniti dai Provider e a chiamare metodi dei Controller sugli eventi utente.
- Usa
ConsumerWidgetper ascoltare i cambiamenti.
Esempio Flusso Feature "Login"
- Model:
User(inmodels/user.dart) - Service:
AuthService(inservices/auth_service.dart) -> Fa la chiamata API. - Provider:
AuthController(inproviders/auth_controller.dart) -> ChiamaAuthServicee gestisce lo stato (loading/success/error). - Screen:
LoginScreen(inscreens/login_screen.dart) -> Mostra form e osservaAuthController.
Score
Total Score
50/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
Reviews
💬
Reviews coming soon