feat: Erste Stufe der iOS-App - Anmeldung und Kontenliste

Neuer Ordner ios/ mit dem Geruest: Netzwerkschicht, Modelle, Offline-Ablage,
Texte in Deutsch und Englisch, Navigation, der komplette Anmeldeweg (Server
waehlen, anmelden, zweiter Faktor, Pflicht-Passwortwechsel) und als erste
Fachansicht die Kontenliste.

Die Anmeldung laeuft einmal ueber das Sitzungs-Cookie, holt sich dabei eine
App-Marke und legt sie in den Schluesselbund. Danach traegt nur noch der
Header. Kein Passwort auf dem Geraet, kein Ablauf nach 30 Tagen.

Der Code ist nie uebersetzt worden - hier gibt es kein Xcode. Geprueft ist
dafuer jedes Modellfeld gegen echte Antworten des laufenden Backends; dabei
kam heraus, dass created_at ohne Zeitzone und mit Mikrosekunden kommt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-10-20 16:20:03 +02:00
co-authored by Claude Opus 5
parent 8a7545bf5b
commit 6b86a6bf91
25 changed files with 2908 additions and 0 deletions
+24
View File
@@ -0,0 +1,24 @@
import SwiftUI
@main
struct CertainApp: App {
@State private var zustand = AppZustand()
var body: some Scene {
// Das Erscheinungsbild kommt aus den Server-Einstellungen, damit App
// und Weboberfläche gleich aussehen. „system" heisst: nichts vorgeben.
let schema: ColorScheme?
switch zustand.einstellungen.erscheinungsbild {
case "light": schema = .light
case "dark": schema = .dark
default: schema = nil
}
return WindowGroup {
RootAnsicht()
.environment(zustand)
.task { await zustand.starte() }
.preferredColorScheme(schema)
}
}
}