# Habit Tracker-App Bietet einen einfachen und effektiven Weg, um Gewohnheiten zu verfolgen und den Fortschritt zu messen. ## Features - Hinzufügen/Löschen/Bearbeiten von Gewohnheiten: Neue Gewohnheiten erstellen, bestehende bearbeiten oder entfernen - Speicherung in MySQL-Datenbank: Alle Daten werden in einer MySQL-Datenbank gespeichert, um die Persistenz zu gewährleisten. - Zählfunktion: Die App zählt die Gesamtzahl der erstellten Gewohnheiten und zeigt diese an - Progressanzeige: Zeigt an, wie viele Gewohnheiten abgeschlossen wurden - Icon-Auswahl: Zu jeder Gewohnheit kann ein Icon ausgewählt werden ## Nutzung Drückt man auf Plus, öffnet sich ein Popup, in dem man einen Titel, Untertitel und ein Icon eingeben kann. Bei Titel und Untertitel ist die Eingabe erforderlich, bei Icon wird ein Herz als Standardwert gesetzt.


Beim Drücken auf "select icon" öffnet sich eine Iconpage mit einer kleinen Auswahl an Icons.


Die Liste an Gewohnheiten ist scrollbar. Diese lassen sich als erledigt markieren und bleiben weiterhin sichtbar. Die Progressanzeige berechnet den Fortschritt bzw. wie viele Gewohnheiten als erledigt markiert wurden. Außerdem wird die Gesamtanzahl an Gewohnheiten angezeigt.


Zum Löschen nach links, zum Bearbeiten nach rechts swipen.


Zum Bearbeiten einer Gewohnheit öffnet sich ein Bearbeitungsfenster, in dem man den Titel, Untertitel und das Icon ändern kann.
## Plattformen Die App soll auf macOS uns IOS laufen, auf diesen Plattformen wurde sie auch getestet. ### Plattformspezifische Abhängigkeiten - **Cupertino Icons**: Diese werden für iOS- und macOS-Stilelemente verwendet. ``` dependencies: cupertino_icons: ^1.0.6 ``` ### Plattformspezifische Bibliotheken - **flutter_launcher_icons**: Diese Bibliothek wird verwendet, um App-Icons für verschiedene Plattformen zu generieren, einschließlich iOS und macOS. ``` dev_dependencies: flutter_launcher_icons: ^0.13.1 flutter_launcher_icons: ios: true image_path: "assets/logo.png" macos: generate: true image_path: "assets/logo.png" ``` Abgesehen von den oben genannten Punkten, verwendet die App keine weiteren plattformspezifischen Abhängigkeiten oder Bibliotheken. ## Build- und Testanweisungen ### Build * Macos ``` flutter build macos --no-tree-shake-icons ``` * IOS ``` flutter build ios --no-tree-shake-icons ``` ### Run * Macos ``` flutter run -d macos ``` * IOS ``` flutter run -d ``` ### Testen ``` flutter test ``` ### Hinweise zum Testen Für das Testen wurden Mock-Testklassen benötigt, diese sind bereits im Repository vorhanden. Sollte es jedoch erforderlich sein, neue Mocks zu generieren, kann dies mit *build_runner* durchgeführt werden. ``` flutter pub run build_runner build ```