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>
62 lines
2 KiB
Markdown
62 lines
2 KiB
Markdown
---
|
||
date: 2026-05-15
|
||
day: 2
|
||
view: macher
|
||
weekday: Freitag
|
||
commits: 1
|
||
review: 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:
|
||
|
||
1. **Launch-Screen** war Default (System-Weiß).
|
||
2. **App-Window-Background** war `.systemBackground` ohne explizite
|
||
Override → folgte zwar Dark-Mode, aber zeigte Weiß im Light-
|
||
Mode.
|
||
3. **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.background` festgesetzt,
|
||
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.
|