Files
Calendarr-Android/claude.md
Guido Schmit a1c36a8a03 fix: green brand theme, iOS launcher icon, password reveal, real login error
- Theme primary now the iOS brand green (#20A050), fixed app-wide (was tied
  to the server's blue primary_color)
- Launcher icon generated from the iOS AppIcon across all densities;
  dropped the placeholder adaptive icon
- PasswordField: eye toggle + brief last-character reveal; used on login,
  profile and CalDAV password inputs
- Login now surfaces the server's actual error detail (verified the JSON
  contract against the live server; a 401 is a genuine credential mismatch)
- CLAUDE.md: correct prod base URL to calendar.scarriffle.com

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 12:48:53 +02:00

50 lines
1.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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