Refactored the `ping-feature` module to adopt centralized `HttpClient` through Koin DI, replacing legacy implementations. Added secure API calls with improved error handling and updated Webpack build scripts to resolve worker path issues. Enhanced `PingScreen` with extended functionality, UI updates, and aligned test cases for the new architecture. Consolidated feature workflows and finalized documentation with a comprehensive feature implementation guide. |
||
|---|---|---|
| .. | ||
| feature-implementation-guide.md | ||
| offline-first-architecture.md | ||
| README.md | ||
| web-setup.md | ||
| type | status | owner | last_update |
|---|---|---|---|
| Reference | ACTIVE | Frontend Expert | 2026-01-15 |
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.
Modul-Struktur
Das frontend-Verzeichnis ist wie folgt strukturiert, um eine klare Trennung der Verantwortlichkeiten zu gewährleisten:
shells/: Die ausführbaren Anwendungen (Assembler-Module), die die App für eine bestimmte Plattform (Desktop, Web) zusammenbauen.features/: Vertikale Slices der Anwendung. Jedes Feature-Modul kapselt eine bestimmte Funktionalität (z.B.auth-feature,ping-feature). Wichtig: Ein Feature-Modul darf niemals von einem anderen Feature-Modul abhängen.core/: Gemeinsame Basis-Module, die von allen Features genutzt werden. Dazu gehören:design-system/: Compose-Komponenten, Themes, Farben.domain/: Fachliche Kernlogik und Datenmodelle des Frontends.local-db/: SQLDelight-Datenbank-Setup und Queries.navigation/: Navigations-Logik und Routen-Definitionen.network/: Ktor-Client und API-Definitionen.
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.
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.