Native SwiftUI-Komponenten für alle nativen mana-e.V.-Apps. Heute ManaAuthUI — vollständige Auth-Reise.
Find a file
Till JS 8f4d4b0c03 feat(webshell): neues Library-Product ManaWebShell (v0.6.0)
WKWebView-Huelle fuer Hybrid-Apps (Web-Lese-Surfaces + native
Submit/Widget/ShareExt). Extrahiert aus den fast-byte-identischen
`WebShell/`-Ordnern in seepuls-native und zitare-native (~900 LOC,
davon ~700 LOC Duplikat). Audit 2026-05-17 V2.

Neu (public API):
- `WebShellView` — WKWebView-Wrapper mit Progress-Bar, Pull-to-
  Refresh (iOS), Fehler-Snackbar, External-Link-Delegation. Universal
  (iOS + macOS)
- `WebShellConfig` — Host-Whitelist mit Wildcard-Support (`"*.mana.how"`),
  User-Agent, Theme-Hints, User-Scripts
- `WebTarget` — URL + monoton wachsender reloadToken
- `WebNavState` — @Observable, @MainActor, reaktiver Nav-State
- `WebShellCoordinator` — WKNavigationDelegate + WKUIDelegate
- `WebShellScripts` — Helfer fuer `preferDarkScheme`,
  `syncDarkMode(localStorageKey:)`, `hideElements(selectors:tagName:)`

Logging unter Subsystem `ev.mana.webshell` (App-OSLog bleibt eigen).

Tests: 6 neue Tests gegen `WebShellConfig.isAllowed` (Wildcards,
Negativ-Cases). 50/50 grün insgesamt (6 ManaWebShell + 44 ManaAuthUI).

Doku: `mana/docs/playbooks/HYBRID_NATIVE_APP.md` (Schwester-Repo).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 21:11:47 +02:00
devlog/2026-05-13 devlog: 1 Tag geschrieben (v0.1.0–v0.5.0 Sprint) 2026-05-15 22:21:39 +02:00
Sources feat(webshell): neues Library-Product ManaWebShell (v0.6.0) 2026-05-17 21:11:47 +02:00
Tests feat(webshell): neues Library-Product ManaWebShell (v0.6.0) 2026-05-17 21:11:47 +02:00
.gitignore v0.5.0 — ManaTwoFactorAccountRow + ManaBackupCodeRegenerateView 2026-05-14 01:08:41 +02:00
CHANGELOG.md feat(webshell): neues Library-Product ManaWebShell (v0.6.0) 2026-05-17 21:11:47 +02:00
CLAUDE.md v0.1.0 — initialer Sprint, vollständige Auth-Reise als SwiftUI 2026-05-13 19:22:42 +02:00
Package.swift feat(webshell): neues Library-Product ManaWebShell (v0.6.0) 2026-05-17 21:11:47 +02:00
README.md v0.1.0 — initialer Sprint, vollständige Auth-Reise als SwiftUI 2026-05-13 19:22:42 +02:00

mana-swift-ui

Native SwiftUI-Komponenten für alle nativen Apps des Vereins mana e.V. Heute genau ein Library-Product:

  • ManaAuthUI — vollständige Auth-Reise (Login, Sign-Up, Email-Verifikation, Passwort-Reset, Account-Management) als SwiftUI-Views. Konsumiert ManaCore für API-Calls und ManaTokens für Vereins-Designwerte.

Wird konsumiert von cards-native, manaspur-native, memoro-native und allen kommenden Verein-Apps.

Verhältnis zu mana-swift-core

mana-swift-core liefert die Wire-/Auth-/Token-Schicht: AuthClient, AuthenticatedTransport, KeychainStore, Farben, Spacings. Dieses Paket setzt darauf auf und liefert UI.

Getrennte Repos, damit mana-swift-core stabil bleibt während sich die UI-Komponenten organisch entwickeln.

Lokal entwickeln

swift build
swift test

../mana-swift-core/ muss als Schwester-Verzeichnis existieren.

Konventionen

Siehe CLAUDE.md.