Clean Architecture Flutter Project
Projektübersicht
Dieses Flutter -Projekt folgt dem sauberen Architekturmuster, das die Trennung von Bedenken und Wartbarkeit fördert. Das Projekt ist in mehrere Schichten strukturiert:
Präsentationsebene : Enthält Widgets, Seiten und Präsentationslogik (BLOC). Verarbeitet die Benutzeroberfläche und die Benutzerinteraktionen.
Domänenschicht : Enthält Anwendungsfälle und Domänenentitäten sowie abstrakte Repository.
Datenschicht : Verwaltet Datenquellen, Repositorys und Datenmodelle. Verantwortlich für das Abrufen und Speicher von Daten. Unterteilt in repositories , model , local_data_sources und remote_data_sources .
Schlüsselmerkmale
Login -Funktion
Unsere Anwendung enthält ein robustes Anmeldesystem. Hier sind die wichtigsten Aspekte dieser Funktion:
Eingabevalidierung : Wir stellen sicher, dass Benutzereingaben wie E -Mail und Kennwort validiert werden, um die Datenintegrität zu erhalten.
Authentifizierung : Nach Eingabe gültiger Anmeldeinformationen werden Benutzer authentifiziert und Zugriff auf ihre Konten gewährt.
Anmeldefunktion
Das Erstellen eines Kontos ist mit unserer Anmeldefunktion unkompliziert. Zu den Schlüsselelementen gehören:
Eingabevalidierung : Ähnlich wie bei der Anmeldefunktion validieren wir Benutzereingänge, um die Datengenauigkeit mit der Validierung der Bilddatei sicherzustellen.
ACCOUT CREATE : Beim Eintritt gültige Anmeldeinformationen sind Benutzer gültig, um ACCOut zu erstellen.
Ordnerstruktur
- lib/features/feature/
- Präsentation/ : Enthält Widgets und Präsentationslogik.
- Domäne/ : Enthält Anwendungsfälle und Domäneneinheiten.
- Daten/
- Repositorys/ : Implementiert Datenrepositories.
- Modell/ : Definiert Datenmodelle.
- local_data_sources/ : verwaltet lokale Datenquellen.
- Remote_Data_Sources/ : Handle Remote -Datenquellen.
Pakete
- Flutter : Der Flutter SDK.
- Cupertino_icons : Bietet die im Projekt verwendeten Cupertino -Symbole.
- Shared_Preferences : Ein Plugin zum Zugriff auf und zum Speichern von Schlüsselwertpaaren auf dem Gerät.
- get_it : Ein Service -Locator für die Abhängigkeitsinjektion.
- DARTZ : Ein funktionales Programmierpaket, das gemeinsame algebraische Datentypen und Funktionen bietet.
- Flutter_Bloc : Eine staatliche Verwaltungsbibliothek basierend auf dem Block -Muster (Business Logic Component).
- Equatable : Ein Dienstprogrammpaket zum Vergleich von Objekten für die Gleichheit.
- DIO : Ein leistungsstarker HTTP -Client für API -Anfragen.
- Formz : Ein Paket zum Umgang mit Formularvalidierung und staatlichem Management.
- Go_router : Ein deklarativer Router für Flattern Anwendungen.
- MIME : Ein Paket für die Arbeit mit MIME -Typen.
- Datei_Picker : Ein Plugin zum Auswählen von Dateien aus dem Gerät.
- Mocktail : Eine spöttische Bibliothek für Dart- und Flattern -Tests.
- Internet_Connection_Checker : Ein Paket zur Überprüfung der Internetverbindung.
Zusätzlich zu den Abhängigkeiten gibt es auch einige Dev -Abhängigkeiten, die zum Testen und zur Codegenerierung verwendet werden:
- Flutter_test : Das Flutter -Test -Framework.
- Mockito : Eine spöttische Bibliothek für Dart- und Flutter -Tests.
- Build_Runner : Ein Tool zum Generieren von Code während des Erstellungsprozesses.
- BLOC_TEST : Ein Testdienstprogramm zum Testen von Blocks.
- network_image_mock : Ein Paket für verspottete Netzwerkbilder während der Tests.