- Kotlin 100%
| app | ||
| gradle | ||
| .gitignore | ||
| build.gradle.kts | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| Readme.md | ||
| settings.gradle.kts | ||
Erfüllung der Projektanforderungen
Internetfähige Anwendung
Die App ruft aktuelle UV-Daten über einen externen Webservice ab. Die Kommunikation erfolgt über HTTP-Anfragen, wobei die empfangenen JSON-Daten verarbeitet und in der Benutzeroberfläche dargestellt werden.
Lokale Datenspeicherung
Benutzerdaten werden mithilfe von Room Database lokal auf dem Gerät gespeichert. Dadurch bleiben die Daten auch nach dem Schließen der Anwendung erhalten.
Mindestens drei Screens
Die Anwendung besteht aus mehreren Screens:
- Login Screen
- Home Screen
- User Screen
Einsatz von Coroutines und ViewModel
Für asynchrone Operationen, insbesondere API-Aufrufe und Datenverarbeitung, werden Kotlin Coroutines verwendet. Die Verwaltung des UI-Zustands erfolgt über ViewModels nach dem MVVM-Architekturmuster.
Einsatz eines Sensors
Die Anwendung nutzt die Standortdienste des Smartphones (GPS), um den aktuellen Standort zu bestimmen und standortabhängige UV-Daten bereitzustellen.
Verwendete Technologien
- Kotlin
- Jetpack Compose
- ViewModel
- Kotlin Coroutines
- Room Database
- WorkManager
- Google Location Services (GPS)
- OkHttp
- Gson
- Material Design 3
Architektur
Die Anwendung basiert auf dem MVVM-Architekturmuster (Model-View-ViewModel).
- Die UI wurde mit Jetpack Compose umgesetzt.
- ViewModels verwalten den Anwendungszustand.
- Repositories kapseln den Datenzugriff.
- Room Database dient der lokalen Speicherung.
- Externe UV-Daten werden über einen Webservice bezogen.
Externe Datenquelle
Die Anwendung bezieht aktuelle UV-Daten über einen öffentlichen Webservice. Die Antwort wird im JSON-Format empfangen und mithilfe von Gson verarbeitet.
Die Daten werden verwendet, um:
- den aktuellen UV-Index anzuzeigen
- UV-Risiken zu bewerten
- standortabhängige Empfehlungen bereitzustellen