2024-05-09 09:46:23 +02:00
# Habit Tracker-App
2024-05-15 12:03:50 +02:00
Bietet einen einfachen und effektiven Weg, um Gewohnheiten zu verfolgen
und den Fortschritt zu messen.
2024-05-09 09:46:23 +02:00
2024-06-17 22:30:56 +02:00
< img src = "img_readme/view_no_habits.png" width = "400" >
< img src = "img_readme/simulator_screenshot.png" width = "200" >
## Features
2024-05-15 12:03:50 +02:00
- Hinzufügen/Löschen/Bearbeiten von Gewohnheiten: Neue Gewohnheiten erstellen, bestehende bearbeiten oder entfernen
2024-06-18 09:57:35 +02:00
2024-05-15 12:03:50 +02:00
- Speicherung in MySQL-Datenbank: Alle Daten werden in einer MySQL-Datenbank gespeichert, um die Persistenz zu gewährleisten.
2024-06-18 09:57:35 +02:00
2024-05-16 21:27:52 +02:00
- Zählfunktion: Die App zählt die Gesamtzahl der erstellten Gewohnheiten und zeigt diese an
2024-06-18 09:57:35 +02:00
2024-05-19 23:43:12 +02:00
- Progressanzeige: Zeigt an, wie viele Gewohnheiten abgeschlossen wurden
2024-06-18 09:57:35 +02:00
2024-06-17 22:30:56 +02:00
- Icon-Auswahl: Zu jeder Gewohnheit kann ein Icon ausgewählt werden
2024-06-18 09:57:35 +02:00
## 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.
2024-06-17 22:30:56 +02:00
< div style = "text-align: center" >
< img src = "img_readme/addhabit_popup.png" width = "400" >
< / div >
2024-06-18 09:57:35 +02:00
< br > < br >
2024-06-17 22:30:56 +02:00
Beim Drücken auf "select icon" öffnet sich eine Iconpage mit einer kleinen Auswahl an Icons.
2024-06-18 10:00:57 +02:00
2024-06-17 22:30:56 +02:00
< div style = "text-align: center" >
< img src = "img_readme/iconpage.png" width = "400" >
< / div >
2024-06-18 09:57:35 +02:00
< br > < br >
2024-06-17 22:30:56 +02:00
2024-06-18 09:57:35 +02:00
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.
2024-06-17 22:30:56 +02:00
< div style = "text-align: center" >
< img src = "img_readme/view_habits_checked.png" width = "400" >
< / div >
2024-06-18 09:57:35 +02:00
< br > < br >
2024-06-17 22:30:56 +02:00
2024-06-18 09:57:35 +02:00
Zum Löschen nach links, zum Bearbeiten nach rechts swipen.
2024-06-17 22:30:56 +02:00
2024-06-18 09:57:35 +02:00
< div style = "text-align: center" >
< img src = "img_readme/delete_swipeLeft.png" width = "400" style = "margin-right: 20px;" >
< img src = "img_readme/edit_swipeRight.png" width = "400" style = "margin-left: 20px;" >
< / div >
< br > < br >
Zum Bearbeiten einer Gewohnheit öffnet sich ein Bearbeitungsfenster, in dem man den Titel, Untertitel und das Icon ändern kann.
< div style = "text-align: center" >
< img src = "img_readme/edit_popup.png" width = "400" >
< / div >
2024-06-17 22:30:56 +02:00
## Plattformen
2024-06-18 13:26:49 +02:00
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
2024-06-19 10:12:39 +02:00
- **flutter_launcher_icons**: Diese Bibliothek wird verwendet, um App-Icons für verschiedene Plattformen zu generieren, einschließlich iOS und macOS.
2024-06-18 13:26:49 +02:00
```
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
2024-06-19 10:12:39 +02:00
plattformspezifischen Abhängigkeiten oder Bibliotheken.
2024-06-17 22:30:56 +02:00
## 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 < device >
```
### Testen
```
flutter test
```
2024-06-19 10:12:39 +02:00
### 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
```