chore(repo): Android-App als android/ ins Hauptrepo uebernehmen

Calendarr-Android wird mit vollstaendiger Historie als Unterverzeichnis
android/ eingebunden, damit Server, Web und die mobilen Apps in einem
Repo liegen.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-09-14 09:19:55 +02:00
co-authored by Claude Opus 5
108 changed files with 11709 additions and 0 deletions
+49
View File
@@ -0,0 +1,49 @@
# Calendarr Android
## Projektübersicht
Android-App für den Calendarr-Server. Funktionsgleich mit der iOS-App (Swift, liegt unter ../Calendarr iOS/).
Der Server-Code liegt unter ../Calendarr server/.
## ⚠️ WICHTIG: Read-Only Ordner
Die folgenden Ordner dienen NUR zur Referenz. NIEMALS Dateien darin verändern, löschen oder erstellen:
- `../Calendarr iOS/` → READ ONLY – nur zur Analyse der Features und API-Nutzung
- `../Calendarr server/` → READ ONLY – nur zur Analyse der API-Endpunkte und Datenmodelle
Alle Änderungen und neue Dateien kommen ausschliesslich in `../Calendarr Android/`.
## Server
- Basis-URL (Prod): https://calendar.scarriffle.com
- Auth: Erst Server-URL eingeben, dann Benutzername + Passwort
- Credentials werden auf Android im EncryptedSharedPreferences gespeichert (Äquivalent zu Apple Keychain)
## Tech Stack
- Sprache: Kotlin
- UI: Jetpack Compose + Material 3
- Architektur: MVVM
- Netzwerk: Retrofit + OkHttp
- Lokale Speicherung: EncryptedSharedPreferences (Credentials), Room (Cache)
- Async: Coroutines + Flow
- DI: Hilt
## Projektstruktur
- `../Calendarr iOS/` → READ ONLY – Swift-App als Referenz
- `../Calendarr server/` → READ ONLY – Server als Referenz
- `../Calendarr Android/` → dieses Projekt, hier wird gebaut
## Git
- Remote: https://git.scarriffle.com/Scarriffle/Calendarr-Android.git
- Nach jeder abgeschlossenen Funktionseinheit committen und pushen
- Commit-Messages auf Englisch, format: `feat: ...` / `fix: ...` / `chore: ...`
- Niemals halbfertigen oder nicht-kompilierenden Code pushen
## Build
- Debug APK: `./gradlew assembleDebug`
- Release APK: `./gradlew assembleRelease`
- Tests: `./gradlew test`
## Konventionen
- Kein XML für Layouts – ausschliesslich Jetpack Compose
- ViewModels dürfen keine Android-Framework-Klassen direkt referenzieren
- StateFlow für UI-State, keine LiveData
- Alle Strings in res/values/strings.xml
- Vor jedem Push: `./gradlew build` muss fehlerfrei durchlaufen