chore(frontend): refactor navigation and DI setup, remove unused shared module
- Replaced `initKoin` with `startKoin` for DI initialization consistency across platforms. - Introduced `StateNavigationPort` with `StateFlow` to streamline navigation state management. - Migrated `AppScreen` to sealed class with route mapping for better navigation handling. - Deleted unused `frontend/shared` module and removed related dependencies from build files. - Cleaned up legacy navigation and Redux-related code, aligning with MVVM architecture.
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
---
|
||||
title: Frontend Cleanup & Architecture Status Report
|
||||
date: 2026-01-31
|
||||
author: Frontend Expert & Curator
|
||||
status: Final
|
||||
tags: [frontend, architecture, cleanup, kmp, compose]
|
||||
---
|
||||
|
||||
# 🧹 Frontend Cleanup & Architecture Status Report
|
||||
|
||||
## 1. Executive Summary
|
||||
Dieses Dokument fasst die umfangreichen Aufräum- und Refactoring-Arbeiten am Frontend ("Meldestelle Portal") zusammen. Ziel war es, technischen Ballast ("Dead Code") zu entfernen, die Architektur zu vereinheitlichen (MVVM + Clean Architecture) und die Kompilierbarkeit über alle Plattformen (JVM/Desktop & JS/Web) sicherzustellen.
|
||||
|
||||
**Ergebnis:** Der Build ist erfolgreich (`BUILD SUCCESSFUL`). Das Frontend ist nun schlank, wartbar und bereit für die Feature-Entwicklung.
|
||||
|
||||
## 2. Durchgeführte Maßnahmen
|
||||
|
||||
### 2.1. Entfernung von "Dead Code"
|
||||
* **`frontend/shared` gelöscht:** Dieses Modul enthielt einen kompletten, ungenutzten Redux-Stack (`AppStore`, `AppAction`, etc.), der im Widerspruch zur genutzten MVVM-Architektur stand.
|
||||
* **Legacy-Komponenten entfernt:** Veraltete UI-Komponenten (z.B. `NotificationCard.kt`) und doppelte Navigations-Konzepte wurden bereinigt.
|
||||
|
||||
### 2.2. Architektur-Konsolidierung
|
||||
* **MVVM als Standard:** Die Anwendung folgt nun strikt dem MVVM-Muster mit Kotlin Coroutines (`StateFlow`) und Koin für Dependency Injection.
|
||||
* **Clean Architecture:** Das `ping-feature` dient als Referenz-Implementierung mit klarer Trennung von `Presentation`, `Domain` und `Data` Layer.
|
||||
* **Navigation:** Zentralisierung der Navigation auf `AppScreen` (Sealed Class) im Core-Modul.
|
||||
|
||||
### 2.3. Build & Plattform-Support
|
||||
* **Koin-Initialisierung:** Korrektur der Koin-Start-Logik für JVM (`startKoin` statt `initKoin`) und JS (`startKoin` im `main.kt`).
|
||||
* **Gradle-Konfiguration:** Bereinigung der `build.gradle.kts` Dateien und Entfernung von Abhängigkeiten zu gelöschten Modulen.
|
||||
* **Web-Support:** Sicherstellung, dass die Web-Version (Kotlin/JS) fehlerfrei baut und die Datenbank (SQLDelight Wasm) korrekt initialisiert.
|
||||
|
||||
## 3. Modul-Status (Ist-Zustand)
|
||||
|
||||
| Modul | Status | Beschreibung |
|
||||
| :--- | :--- | :--- |
|
||||
| **`core/navigation`** | ✅ Grün | Zentrale Routen (`AppScreen`, `Routes`), DeepLink-Handling. Sauber. |
|
||||
| **`core/design-system`** | ✅ Grün | UI-Komponenten (`AppTheme`, `Buttons`, `Inputs`). Modern (Material 3). |
|
||||
| **`core/auth`** | ✅ Grün | Login-Logik, Token-Manager, API-Client. Funktional. |
|
||||
| **`core/network`** | ✅ Grün | Zentraler `HttpClient` mit Auth-Interceptor. |
|
||||
| **`core/sync`** | ✅ Grün | Generischer `SyncManager` für Offline-First. |
|
||||
| **`core/local-db`** | ✅ Grün | SQLDelight Setup für JVM & Web. |
|
||||
| **`features/ping`** | ✅ Grün | **Blueprint-Feature**. Zeigt Best Practices (Sync, UI, DI). |
|
||||
| **`shells/portal`** | ✅ Grün | Einstiegspunkt (`MainApp`). Verbindet alle Module. |
|
||||
|
||||
## 4. Offene Punkte & Nächste Schritte
|
||||
|
||||
Obwohl der technische Zustand nun exzellent ist, gibt es logische nächste Schritte für die Produktentwicklung:
|
||||
|
||||
1. **Feature-Rollout:** Implementierung des `members-feature` (Mitglieder) basierend auf dem `ping-feature` Blueprint.
|
||||
2. **Testing:** Etablierung von Unit-Tests für die Core-Logik (Auth, Sync) und UI-Tests für kritische Flows.
|
||||
3. **Backend-Alignment:** Sicherstellung, dass die Backend-Services (Registry) die erwarteten Sync-Endpunkte bereitstellen.
|
||||
|
||||
## 5. Fazit
|
||||
Das Frontend-Fundament ist stabil. Die "technischen Schulden" aus der Experimentierphase (Redux vs. MVVM) sind getilgt. Das Team kann sich nun voll auf die Implementierung der fachlichen Anforderungen konzentrieren.
|
||||
|
||||
---
|
||||
*Gez. Frontend Expert & Curator*
|
||||
Reference in New Issue
Block a user