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

1.2 KiB

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.