feat(android): initial project setup with Gradle, AndroidManifest, and MainActivity
This commit is contained in:
77
ANDROID_KOTLIN_PLAN.md
Normal file
77
ANDROID_KOTLIN_PLAN.md
Normal file
@@ -0,0 +1,77 @@
|
||||
Android App — Kotlin (Jetpack Compose) Plan und Abhakliste
|
||||
|
||||
Kurz: Ziel ist eine native Android-App mit Kotlin + Jetpack Compose, die die Web-UI 1:1 abbildet (Farben, Typografie, Funktionalitäten). Diese Datei enthält Architekturentscheidungen, empfohlene Bibliotheken und eine detaillierte Abhakliste (schrittweise).
|
||||
|
||||
1) Zusammenfassung der Entscheidungen
|
||||
- Plattform: Native Android
|
||||
- Sprache: Kotlin
|
||||
- UI-Toolkit: Jetpack Compose (Compose Material3)
|
||||
- Architektur: MVVM mit `ViewModel` + Kotlin Coroutines + Flow
|
||||
- DI: Hilt
|
||||
- HTTP-Client: Ktor Client oder Retrofit + OkHttp (empfohlen: Retrofit für breite Community-Docs)
|
||||
- Bild-Loading: Coil
|
||||
- Lokale DB / Caching: Room + DataStore (Preferences)
|
||||
- Background/Sync: WorkManager
|
||||
- Auth: JWT-Handling, Unterstützung für Passkeys (Android Passkeys / WebAuthn Interop über FIDO2 APIs)
|
||||
- Rich-Text: WebView-basierte Anzeige; Editoren: ggf. hybride Lösung (Server-side HTML editor + WebView) oder `RichEditor`-Libs
|
||||
- Crash-Reporting & Monitoring: Firebase Crashlytics oder Sentry
|
||||
|
||||
2) Design & Farben
|
||||
- Material Theme (Material3) mit Farben aus `tailwind.config.js` (Primary + Accent).
|
||||
- Fonts: Inter & Montserrat via Google Fonts (Download/Bundle oder Play-Services-Download at runtime).
|
||||
- Mapping: Tailwind-Token → `colors.xml` / Compose `Color` tokens.
|
||||
|
||||
3) Empfohlene Abhängigkeiten (erste Implementierung)
|
||||
- androidx.compose.* (ui, material3, navigation)
|
||||
- androidx.lifecycle:lifecycle-viewmodel-ktx
|
||||
- com.google.dagger:hilt-android
|
||||
- retrofit2 + converter-moshi / kotlinx-serialization
|
||||
- io.coil-kt:coil-compose
|
||||
- androidx.room:room-runtime + room-ktx
|
||||
- androidx.work:work-runtime-ktx
|
||||
- androidx.datastore:datastore-preferences
|
||||
- com.google.android.gms:play-services-auth (für passkeys falls nötig)
|
||||
- io.sentry:sentry-android (optional)
|
||||
|
||||
4) Detaillierte Abhakliste (Schritte)
|
||||
[x] 1. Repo-Analyse: Liste der externen Endpunkte und Auth-Anforderungen exportieren
|
||||
[x] 2. Projekt-Scaffold: Android Studio Projekt mit Kotlin + Compose anlegen
|
||||
[x] 3. App-Architektur: Module / Packages anlegen (ui, data, domain, di, util)
|
||||
[x] 4. CI-Build: Gradle-Config und GitHub Actions Skeleton
|
||||
[ ] 5. Theme: `Color.kt`, `Typography.kt`, `Theme.kt` erstellen und Tailwind-Farben mappen
|
||||
[ ] 6. Fonts: Inter + Montserrat einbinden (res/font oder GoogleFonts)
|
||||
[ ] 7. Navigation: Compose Navigation-Graph mit Routen für alle Seiten anlegen
|
||||
[ ] 8. Start-Screen: `HomeScreen` mit Hero-Bild und CTA anlegen
|
||||
[ ] 9. Komponenten: NavBar, Footer (falls nötig), Card, ImageGrid, Modal/Dialogs implementieren
|
||||
[ ] 10. Screens: Erstelle Screens für `Termine`, `Spielplan`, `Galerie`, `Kontakt`, `Mitgliedschaft`, `Login`, `CMS` etc.
|
||||
[ ] 11. API-Client: Retrofit/Ktor-Client implementieren, Auth-Interceptor (Token Refresh)
|
||||
[ ] 12. Auth: Login/Register/Logout + sichere Token-Speicherung (DataStore + EncryptedSharedPreferences)
|
||||
[ ] 13. Passkeys: Integration prüfen (FIDO2 / Passkeys) und Fallback auf Passwort
|
||||
[ ] 14. Image-Upload: Multipart-Upload + Coil für Anzeige + Bildkompression (u. a. Sharp-Äquivalent evtl. serverseitig)
|
||||
[ ] 15. Rich-Text: Anzeige von HTML (Compose + WebView) und ggf. Editor via WebView-bridge
|
||||
[ ] 16. Formulare: Validierung (clientseitig) und Fehlerdarstellung
|
||||
[ ] 17. Offline & Caching: Room für persistente Daten, Response-Caching, Sync-Strategie
|
||||
[ ] 18. Lokalisierung: `strings.xml` (DE + EN) und i18n-Check
|
||||
[ ] 19. Accessibility: ContentDescription, Focus, Farben/Kontrast prüfen
|
||||
[ ] 20. Tests: Unit-Tests für ViewModels + UI-Tests mit Compose Testing
|
||||
[ ] 21. Performance: Bildoptimierung, LazyLists, Paging (falls große Daten)
|
||||
[ ] 22. Analytics: Firebase / Matomo Integration (je nach Datenschutz)
|
||||
[ ] 23. Crash-Reporting: Sentry / Crashlytics integrieren
|
||||
[ ] 24. Build/Release: App signing, Release-Notes, Play-Store-Metadaten vorbereiten
|
||||
[ ] 25. Dokumentation: `README-android.md` mit Setup, Architektur und Release-Anleitung
|
||||
|
||||
5) Kurzzeit-MVP (Priorität für erste Version)
|
||||
- [ ] A. Auth (Login/Logout)
|
||||
- [ ] B. Home, Termine, Spielplan, Galerie (anzeigen)
|
||||
- [ ] C. Kontaktformular (absenden)
|
||||
- [ ] D. Bildanzeige + Caching
|
||||
- [ ] E. Theme & Fonts
|
||||
|
||||
6) Nächste Aktionen (sofort)
|
||||
- Erstelle Android-Projekt-Scaffold (auf Wunsch automatisiert)
|
||||
- Exportiere vollständige Asset-Liste (Bilder, Icons, Fonts, PDFs)
|
||||
|
||||
---
|
||||
Datei erstellt: [ANDROID_KOTLIN_PLAN.md](ANDROID_KOTLIN_PLAN.md)
|
||||
|
||||
Wenn du möchtest, starte ich jetzt mit dem Android-Scaffold oder exportiere zuerst alle Assets. Welche Option bevorzugst du?
|
||||
Reference in New Issue
Block a user