|
Some checks are pending
Desktop CI — Headless Tests & Build / Compose Desktop — Tests (headless) & Build (push) Waiting to run
|
||
|---|---|---|
| .. | ||
| Diagrams | ||
| E_Nennen | ||
| FIGMA | ||
| G_ErgebnisMaske | ||
| Guidelines | ||
| Logs | ||
| Reports | ||
| Screenshots | ||
| StartErgListen | ||
| Wireframes | ||
| ARCHITECTURE_RULES.md | ||
| feature-implementation-guide.md | ||
| Inventar_Frontend_Katalog.md | ||
| MVVM_UDF_Pattern.md | ||
| Navigation_Routing_Diagramm.md | ||
| Navigation_V2_Screen-Baum_und_Back-Stack.md | ||
| Navigation_V3_Screen-Baum_und_Back-Stack.md | ||
| offline-first-architecture.md | ||
| README.md | ||
| screen-flow_1-04-26.md | ||
| state-management-strategy.md | ||
| Teststrategie_Desktop.md | ||
| web-setup.md | ||
| type | status | owner | last_update |
|---|---|---|---|
| Reference | ACTIVE | Frontend Expert | 2026-04-03 |
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
- MVVM + UDF Referenz (ViewModel-Architektur): Verbindliches Muster für ViewModels inkl. Referenz-Implementierung
VeranstalterViewModel.- Referenz-Code:
frontend/features/veranstalter-feature/src/commonMain/kotlin/at/mocode/veranstalter/feature/presentation/VeranstalterViewModel.kt
- Referenz-Code:
- (Alt) State-Management Strategie (UDF): Wird durch obige Referenz konsolidiert/ersetzt.
- 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.