Embedded User Interfaces
Team: Jared Moulton
Project
Embedded interfaces are constrained, outdated, and non-portable
- Solved the lack of portability in embedded user interfaces by creating a UI library that runs on all desktop OSs and microcontroller class hardware
- Implemented a reactive system of state management on embedded devices for perfectly efficient updates and minimal renders
- Brings modern UI APIs to embedded systems
- Eliminates need for tree diffing and prevents expensive view construction code from being called multiple times
- Hot reloading of compiled UI with minimal changes for fast iteration
System
Methods
- Built a new portable UI library that could be used to build user interfaces across the standard platforms as well as embedded devices.
- Created abstraction layer over rendering backends ensuring GPU acceleration on desktop and CPU rendering on microcontrollers
- Designed flexibility for future hardware-accelerated graphics capabilities on microcontrollers
Conclusion
- Achieved code portability with zero changes required between desktop and embedded targets
- Created functional demo of a smart home controller UI
- Reactive state system delivers efficient updates as designed
- Implementation of binary hot reloading capability for embedded systems
- Development of additional renderer backend utilizing hardware-accelerated peripherals on embedded devices
- Bridges gap between desktop and embedded UI development experiences