JS-spezifische Module und Dateien entfernt, Multiplattform-Targets korrigiert
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
# Journal: Feature-Modul `device-initialization` (Plug-and-Play)
|
||||
|
||||
**Datum:** 18. April 2026
|
||||
**Agent:** 🏗️ [Lead Architect] / 🎨 [Frontend Expert]
|
||||
|
||||
## 🎯 Zielsetzung
|
||||
|
||||
Umstellung des Onboarding-Prozesses auf die neue **Plug-and-Play Struktur (ADR-0024)**. Ziel ist die Kapselung der
|
||||
Geräte-Initialisierung in ein autarkes Feature-Modul mit sauberem State-Management.
|
||||
|
||||
## 🛠️ Durchgeführte Änderungen
|
||||
|
||||
### 1. Neues Feature-Modul: `device-initialization`
|
||||
|
||||
* Erstellung von `frontend/features/device-initialization`.
|
||||
* Implementierung der Multiplatform-Struktur (Common + JVM).
|
||||
* **Domain:** `DeviceInitializationSettings`, `NetworkRole`, `DeviceInitializationValidator`.
|
||||
* **Presentation:** `DeviceInitializationViewModel` (StateFlow-basiert), `DeviceInitializationUiState`.
|
||||
* **DI:** `DeviceInitializationModule.kt` für Koin.
|
||||
|
||||
### 2. UI-Refactoring
|
||||
|
||||
* Extraktion der UI aus `OnboardingScreen` in zustandslose Composables.
|
||||
* `DeviceInitializationScreen` im `commonMain` für den Rahmen.
|
||||
* `DeviceInitializationConfig.jvm.kt` im `jvmMain` für plattformspezifische UI (z.B. `JFileChooser`).
|
||||
* Umstellung der Nomenklatur von "Onboarding" auf **"Geräte-Initialisierung"** (DeviceInitialization).
|
||||
|
||||
### 3. Integration in Desktop-Shell
|
||||
|
||||
* Registrierung des Moduls in `settings.gradle.kts`.
|
||||
* Abhängigkeit in `meldestelle-desktop/build.gradle.kts` hinzugefügt.
|
||||
* Koin-Modul in `main.kt` registriert.
|
||||
* `DesktopApp.kt` und `DesktopMainLayout.kt` auf das neue ViewModel und den neuen Screen umgestellt.
|
||||
* Einführung des `DeviceInitializationSettingsManager`.
|
||||
|
||||
## ⚠️ Bekannte Themen (Cleanup)
|
||||
|
||||
* Die alten Klassen `OnboardingScreen`, `OnboardingSettings`, `OnboardingValidator` und `SettingsManager` in
|
||||
`at.mocode.desktop.screens.onboarding` sind noch vorhanden und müssen in einer folgenden Session gelöscht werden,
|
||||
sobald die Referenzen stabil sind.
|
||||
* IDE-Referenzfehler bei neuen KMP-Modulen erfordern oft einen Gradle-Sync/Rebuild.
|
||||
|
||||
## 🏁 Fazit
|
||||
|
||||
Der erste Schritt des "Schritt-für-Schritt"-Umbaus ist abgeschlossen. Die Startseite der App folgt nun dem Plug-and-Play
|
||||
Prinzip und ist fachlich präzise benannt.
|
||||
|
||||
## 🧹 Update (Nach-Korrektur)
|
||||
|
||||
* **ViewModel-Fix:** `DeviceInitializationViewModel` erbt nun von `androidx.lifecycle.ViewModel`, was die Integration in
|
||||
`koinViewModel` ermöglicht.
|
||||
* **DesktopMainLayout:** Syntaxfehler beim `koinViewModel`-Aufruf behoben und Typos (`geraetName` -> `deviceName`)
|
||||
korrigiert.
|
||||
* **Multiplatform-Härtung:** `DeviceInitializationSettingsManager` und `DeviceInitializationConfig` auf `expect/actual`
|
||||
umgestellt, um JVM-Lecks im Common-Code zu vermeiden und JS/WasmJS Kompatibilität (via Stubs) sicherzustellen.
|
||||
* **UI-Cleanup:** Code-Duplikate in der Desktop-Konfiguration durch `MsSettingsField` reduziert.
|
||||
Reference in New Issue
Block a user