Was macht flutter-architecting-apps?
Architektioniert eine Flutter-Anwendung mit dem empfohlenen Schichtenansatz (UI, Logik, Daten). Verwenden Sie dies, wenn Sie ein neues Projekt strukturieren oder für Skalierbarkeit umgestalten.
Überblick
Diese Fähigkeit hilft Ihnen, eine Flutter-App nach einer sauberen, geschichteten Architektur zu organisieren. Die drei Hauptschichten sind:
- UI-Schicht: Widgets und Ansichten, die die Benutzeroberfläche darstellen.
- Logikschicht: Geschäftslogik, State-Management und Orchestrierung.
- Datenschicht: Datenzugriff, Repositories und Datenquellen (z.B. APIs, lokale Datenbanken).
Verwendung
Rufen Sie diese Fähigkeit auf, wenn Sie:
- Ein neues Flutter-Projekt beginnen und eine solide Architektur wünschen.
- Eine bestehende App umgestalten, um sie testbarer und wartbarer zu machen.
- Ein Team von Entwicklern auf ein einheitliches Architekturmuster ausrichten möchten.
Empfohlene Tools und Pakete
- State-Management: Provider, Riverpod, BLoC (flutter_bloc), GetX
- Datenzugriff: Dio (HTTP), sqflite oder drift (SQLite), shared_preferences
- Abhängigkeitsinjektion: GetIt, Injectable
Beispielhafte Ordnerstruktur
lib/
├── app/ # App-Konfiguration, Router, Themes
├── ui/ # UI-Schicht (Widgets, Screens)
│ ├── screens/
│ ├── widgets/
│ └── pages/
├── logic/ # Logikschicht (BLoCs, Provider, ViewModels)
│ ├── blocs/
│ ├── providers/
│ └── viewmodels/
├── data/ # Datenschicht (Repositories, Datenquellen, Modelle)
│ ├── repositories/
│ ├── datasources/
│ └── models/
└── main.dart
Architekturprinzipien
- Schichtentrennung: Jede Schicht kommuniziert nur mit der direkt darunterliegenden Schicht.
- Abhängigkeitsumkehr: Die Logikschicht definiert Schnittstellen, die von der Datenschicht implementiert werden.
- Testbarkeit: Geschäftslogik kann isoliert getestet werden, ohne UI- oder Datenbankabhängigkeiten.
- Skalierbarkeit: Neue Features können durch Hinzufügen neuer Module hinzugefügt werden, ohne bestehende Strukturen zu beeinträchtigen.
Weitere Informationen
Lesen Sie die offizielle Flutter-Architekturdokumentation für vertiefende Informationen.