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

2 KiB
Raw Blame History

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:

  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.