bf8facfa66
Added documentation to outline the Offline-First strategy for the KMP frontend, emphasizing the use of SQLDelight with cross-platform storage. Also included guidance for setting up Web targets, covering OPFS integration and Web Worker usage. Updated ADRs with decisions for SQLDelight and Koin adoption.
2.2 KiB
2.2 KiB
Frontend-Architektur "Meldestelle Portal"
Dieses Verzeichnis dokumentiert die Architektur und die technischen Details des KMP-Frontends "Meldestelle Portal".
Übersicht
Das Frontend ist eine Kotlin Multiplatform (KMP)-Anwendung, die für die folgenden Ziele entwickelt wird:
- Desktop (JVM): Eine eigenständige Desktop-Anwendung.
- Web (JS/Wasm): Eine moderne Web-Anwendung, die im Browser läuft.
Die Architektur ist auf Offline-Fähigkeit und eine reaktive UI ausgelegt.
Kerntechnologien
- UI: Compose Multiplatform für eine deklarative, plattformübergreifende UI.
- Persistenz (Offline-First): SQLDelight für die lokale Speicherung von Daten.
- State Management: Kotlin Coroutines und Flow in Kombination mit ViewModels.
- Dependency Injection: Koin für die lose Kopplung von Komponenten.
- Netzwerk: Ktor Client für die Kommunikation mit dem Backend.
Architektur-Prinzipien
- Clean Architecture / DDD: Die Codebasis ist in Schichten unterteilt (UI, Application, Domain, Infrastructure), um eine klare Trennung der Verantwortlichkeiten zu gewährleisten.
- Async-First Data Layer: Alle Datenbank- und Netzwerk-Interaktionen sind asynchron (
suspend-Funktionen), um die UI nicht zu blockieren. - Feature-basierte Modularisierung: Die Anwendung ist in unabhängige "Feature"-Module unterteilt, die jeweils eine bestimmte Funktionalität kapseln.
Wichtige Dokumente
- ADR-0010: SQLDelight für Cross-Platform-Persistenz: Beschreibt die Entscheidung für SQLDelight.
- ADR-0011: Koin für Dependency Injection: Beschreibt die Entscheidung für Koin.
- Offline-First-Architektur: Detaillierte Beschreibung der Offline-First-Strategie.
- Web-Setup (Webpack & Worker): Details zur Konfiguration des Web-Targets.