06 — Research: ratatui-App-Architektur #7

Closed
opened 2026-08-11 13:13:25 +00:00 by RDietermann · 1 comment
Owner

Teil der Map #1 · Type: wayfinder:research · Blocked by: —

Wie strukturiert man eine ratatui-App mit mehreren Bildschirmen sauber? Fakten sammeln, keine Entscheidung.

Volle Fragestellung (kanonisch): .scratch/rustkeep-1.0/issues/06-research-ratatui-architektur.md

Teil der Map #1 · **Type: `wayfinder:research`** · **Blocked by: —** Wie strukturiert man eine ratatui-App mit mehreren Bildschirmen sauber? Fakten sammeln, keine Entscheidung. Volle Fragestellung (kanonisch): `.scratch/rustkeep-1.0/issues/06-research-ratatui-architektur.md`
RDietermann added the wayfinder:research label 2026-08-11 13:13:25 +00:00
Author
Owner

Answer — aufgeloest 2026-08-11

Vollstaendiger Bericht im Repo: .scratch/rustkeep-1.0/research/06-ratatui-architektur.md (942 Zeilen, gegen Live-Quellen geprueft).

  • App-Muster: Screen-Stack (Vec<Screen>) ueber zentralem Game-State. ratatui empfiehlt offiziell nichts — dokumentiert Elm/Component/Flux neutral, zu Multi-Screen gar keine Seite. Maintainer joshka raet im Forum zum Enum, demo2 macht Enum + impl Widget for &App, chess-tui (rundenbasiert) faehrt current_page + current_popup.
  • Modulstruktur: game/ (kennt ratatui nicht), data/, ui/{screen,input,theme,widgets/,screens/}, ein Eintrittspunkt Game::apply(Action).
  • Popups: kein Widget-Stack — Clear auf zentriertes Sub-Rect nach dem Screen. Negativbefund: kein produktives Projekt nutzt Vec<Box<dyn Component>> dafuer, auch gitui nicht.
  • Event-Loop: blockierendes event::read(), kein Tick, kein tokio.
  • Dungeon-Grid: Eigenbau — es gibt kein Grid-/Tilemap-Widget, weder mitgeliefert noch als Crate. Canvas taugt nur fuer Minimap.
  • Panic: ratatui::run(...) genuegt, der Hook wird selbst installiert. Drop von Terminal stellt nicht wieder her.
  • Versionen: ratatui 0.30.2 (MSRV 1.88, in Teilcrates aufgespalten), crossterm 0.29.0 — crossterm nicht separat in Cargo.toml ziehen.
  • Windows: KeyEventKind::Press-Filter ist Pflicht, sonst doppelte Zuege. Kitty-Protokoll und Event::Paste gehen dort gar nicht.

Sieben Punkte sind im Bericht als nicht verifiziert markiert. Sechs Anschlussfragen sind zu #12 (UI-Geruest und Screen-Modell) und #13 (Prototyp-Durchstich) graduiert.

## Answer — aufgeloest 2026-08-11 Vollstaendiger Bericht im Repo: `.scratch/rustkeep-1.0/research/06-ratatui-architektur.md` (942 Zeilen, gegen Live-Quellen geprueft). - **App-Muster: Screen-Stack (`Vec<Screen>`) ueber zentralem `Game`-State.** ratatui empfiehlt offiziell nichts — dokumentiert Elm/Component/Flux neutral, zu Multi-Screen gar keine Seite. Maintainer joshka raet im Forum zum Enum, `demo2` macht Enum + `impl Widget for &App`, chess-tui (rundenbasiert) faehrt `current_page` + `current_popup`. - **Modulstruktur:** `game/` (kennt ratatui nicht), `data/`, `ui/{screen,input,theme,widgets/,screens/}`, ein Eintrittspunkt `Game::apply(Action)`. - **Popups:** kein Widget-Stack — `Clear` auf zentriertes Sub-`Rect` nach dem Screen. Negativbefund: kein produktives Projekt nutzt `Vec<Box<dyn Component>>` dafuer, auch gitui nicht. - **Event-Loop:** blockierendes `event::read()`, kein Tick, kein tokio. - **Dungeon-Grid: Eigenbau** — es gibt kein Grid-/Tilemap-Widget, weder mitgeliefert noch als Crate. `Canvas` taugt nur fuer Minimap. - **Panic:** `ratatui::run(...)` genuegt, der Hook wird selbst installiert. `Drop` von `Terminal` stellt *nicht* wieder her. - **Versionen:** ratatui **0.30.2** (MSRV 1.88, in Teilcrates aufgespalten), crossterm **0.29.0** — crossterm nicht separat in Cargo.toml ziehen. - **Windows:** `KeyEventKind::Press`-Filter ist Pflicht, sonst doppelte Zuege. Kitty-Protokoll und `Event::Paste` gehen dort gar nicht. Sieben Punkte sind im Bericht als **nicht verifiziert** markiert. Sechs Anschlussfragen sind zu #12 (UI-Geruest und Screen-Modell) und #13 (Prototyp-Durchstich) graduiert.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RDietermann/rustkeep#7