Update MVVM + UDF documentation: add metadata, extend examples, and consolidate references. Mark Curator roadmap tasks as complete.

This commit is contained in:
2026-04-03 23:05:01 +02:00
parent dbe7c74a9c
commit c6f28462eb
3 changed files with 18 additions and 5 deletions
+12 -1
View File
@@ -1,3 +1,10 @@
---
type: Reference
status: ACTIVE
owner: Frontend Expert
last_update: 2026-04-03
---
### MVVM + UDF (Unidirectional Data Flow) — Referenz & Vorlage
Ziel: Alle ViewModels folgen einem klaren, einheitlichen Muster. Composables rendern nur `State` und senden `Intent`s. Business-Logik liegt im ViewModel, nicht in den UI-Funktionen.
@@ -14,7 +21,7 @@ Ziel: Alle ViewModels folgen einem klaren, einheitlichen Muster. Composables ren
#### Referenz-Implementierung: Veranstalter
Dateien:
- `frontend/features/veranstalter-feature/src/commonMain/.../VeranstalterViewModel.kt`
- `frontend/features/veranstalter-feature/src/commonMain/kotlin/at/mocode/veranstalter/feature/presentation/VeranstalterViewModel.kt`
- `frontend/features/veranstalter-feature/src/jvmMain/.../DefaultVeranstalterRepository.kt`
- `frontend/features/veranstalter-feature/src/jvmMain/.../VeranstalterAuswahlScreen.kt` (verwendet das ViewModel)
@@ -99,6 +106,10 @@ fun VeranstalterAuswahlScreen(onZurueck: () -> Unit, onWeiter: (Long) -> Unit) {
- Persistenz/Netzwerk-Zugriffe laufen im Repository. Das ViewModel injiziert das Repository (später per DI).
- State ist die Single Source of Truth pro Screen.
#### Siehe auch
- Weitere Beispiele: `ReiterViewModel`, `PferdeViewModel`, `PingViewModel` in `frontend/features/*/presentation/`
- Koin-Integration (VM-Erzeugung in Composables): `org.koin.compose.viewmodel.koinViewModel`
#### Vorlage für neue ViewModels
1. `data class UiState(...)`
2. `sealed interface Intent { ... }`