Tag 1: Hybrid SwiftUI + WKWebView, ζ-0 + ζ-1 + Teile ζ-2. Tag 2: dreilagiger weißer Flash beim App-Start gefixt. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2 KiB
2 KiB
| date | day | view | weekday | commits | review |
|---|---|---|---|---|---|
| 2026-05-15 | 2 | macher | Freitag | 1 | written |
Freitag, 2026-05-15 — Tag 2 (Macher-Sicht)
Ein-Commit-Tag: drei aufeinanderfolgende weiße Flashes beim App- Start gefixt. Klassisch unauffällig, aber spürbar polish.
Stats
1 Commit, +54 / −1 LoC, 3 Files (Launch-Screen, Asset-Catalog,
project.yml). Tag launch. Active-Time 0 Min (Single-Commit).
Was passierte
Drei Layer waren weiß, bis der WebView-Content da war:
- Launch-Screen war Default (System-Weiß).
- App-Window-Background war
.systemBackgroundohne explizite Override → folgte zwar Dark-Mode, aber zeigte Weiß im Light- Mode. - WebView-Background war default-weiß, bis die geladene Seite ihre Background-Farbe ausspielen konnte (typisch 200–400 ms auf 4G).
Fix:
- Launch-Screen mit dunklem Paper-Theme-Background.
- App-Window-Background auf
ZitareTheme.backgroundfestgesetzt, Hintergrund matched System-Theme. - WebView.isOpaque = false +
backgroundColor= Theme- Background. Browser-Engine rendert auf transparenten Hintergrund, sodass App-Background durchscheint bis der Web-Background da ist.
Architektur-Bemerkung
WebShell hat damit erstmals einen sauberen „App-Frame", der nicht vom Web-Content abhängt. Künftige Features (Pull-to-Refresh-Indicator, Bottom-Toolbar) können sich auf den Frame verlassen, ohne sich am Web-Rendering-Zeitpunkt zu orientieren.
Trade-offs
- WebView-Transparenz ist in seltenen WebKit-Versionen eine Render-Quelle für Tearing. Acceptable; falls Reports kommen, zurück auf opaque mit synchron gesetztem Background.
- Hardcoded Background-Farbe in 3 Stellen (LaunchScreen, App- Window, WebView). Wenn Theme-Switch kommt, müssen alle 3 nachziehen. ZitareTheme-Bridge sollte das später kapseln.
Offene Punkte
- Hardcoded-Theme-Background-Trio in eine Bridge ziehen vor Theme-Variants-Release.
- ζ-3 Submit-View bleibt offen (Tag 1 nicht angefangen).
- TestFlight-Build mit dem Fix raus — externe Validation steht noch aus.