meldestelle/docs/06_Frontend/README.md
Stefan Mogeritsch 3465cab246 Standardize documentation with headers and archive old files
Applied a unified header format to all documentation files for better status identification, referencing, and ownership tracking. Archived outdated roadmaps, reports, and journal entries. Updated playbooks with new responsibilities, lifecycle rules, and consistent handover formats to align with the new archiving strategy.
2026-01-16 12:17:47 +01:00

2.6 KiB

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