smithery.ai

flutter-clean-architecture

Struttura del progetto Flutter e separazione delle responsabilità.

First seen Apr 22, 2026

Installation

$ npx skills add https://smithery.ai

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 1,981 B
  • docs SUMMARY.md 101 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

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_serializable o freezed se 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 ConsumerWidget per ascoltare i cambiamenti.

Esempio Flusso Feature "Login"

  1. Model: User (in models/user.dart)
  2. Service: AuthService (in services/auth_service.dart) -> Fa la chiamata API.
  3. Provider: AuthController (in providers/auth_controller.dart) -> Chiama AuthService e gestisce lo stato (loading/success/error).
  4. Screen: LoginScreen (in screens/login_screen.dart) -> Mostra form e osserva AuthController.