zitare-native/devlog/2026-05-15/macher.md
Till JS 37840e6172 devlog: 2 Tage geschrieben (ζ-0 + ζ-1 + Launch-Flash-Fix)
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>
2026-05-15 22:22:49 +02:00

62 lines
2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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 200400 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.