Files
VakaOS/docs/architecture.md
2026-03-20 17:23:49 +01:00

78 lines
1.2 KiB
Markdown

# Architecture
## Core Crates
### ui
Shared UI layer used by both firmware and simulator.
Responsibilities:
- application views
- layout logic
- widget composition
- UI state
- event abstraction
The goal is to keep most UI logic portable between simulator and hardware.
### firmware
The firmware crate targets **PineTime hardware**.
Responsibilities:
- hardware initialization
- display driver integration
- BLE stack integration
- input and touch handling
- power management
- system services
### simulator
Desktop environment used for development.
Responsibilities:
- run UI without hardware
- simulate events and inputs
- allow rapid UI iteration
- reduce flashing cycles
## Rendering Model
The expected rendering stack is:
```
ratatui
mousefood
embedded-graphics
display driver
```
Simulator rendering will use a different backend but share the UI layer.
## Simulator Role
The simulator exists to improve development speed.
It should help with:
- UI development
- event testing
- application logic
However:
Simulator correctness does **not guarantee hardware correctness**.
Timing, memory limits, BLE behavior, and display performance must still be tested on the real device.