We need the ability to ship different UI implementations for mobile and desktop (layout, controls, input behavior, UX flow). This should be built on top of the upcoming DI-based service/control resolution so we can swap implementations cleanly per platform.
Goals / Notes:
-
Define UI abstraction boundaries (e.g. IUiFactory, IControlFactory, IInputAdapter, IUiTheme, etc.).
-
Provide separate implementations for Desktop and Mobile:
- different layouts / scaling rules
- touch-first controls (mobile) vs mouse/keyboard-first controls (desktop)
- platform-specific widgets (
TextField, cursor/mouse, virtual keyboard, etc.)
-
Register implementations per platform through DI (avoid #if branching scattered across UI code).
-
Keep shared UI logic reusable where possible (styles, resources, common control contracts).
We need the ability to ship different UI implementations for mobile and desktop (layout, controls, input behavior, UX flow). This should be built on top of the upcoming DI-based service/control resolution so we can swap implementations cleanly per platform.
Goals / Notes:
Define UI abstraction boundaries (e.g.
IUiFactory,IControlFactory,IInputAdapter,IUiTheme, etc.).Provide separate implementations for Desktop and Mobile:
TextField, cursor/mouse, virtual keyboard, etc.)Register implementations per platform through DI (avoid
#ifbranching scattered across UI code).Keep shared UI logic reusable where possible (styles, resources, common control contracts).