Skip to content

Repository files navigation

YOBA | Your Breathtaking Application

An independent and hardcore UI framework written on modern C++ for embedded devices

Features

  • Classic OOP-based approach without bullshit
  • Tons of components like buttons, sliders, switches, spinners, text fields & scroll views
  • Fully automatic layouts
  • Animations & rendering transforms
  • Event system for external peripherals like touch screens & keyboards
  • Compact image & font format with a nice tool to convert your dick pics into production-ready projects
  • A clear distinction between UI, renderers and rendering targets (screens, desktop windows, etc.), all of which can be used separately
  • Monochrome, RGB 565/666/888, ARGB & indexed colors support
  • Out-of-box drivers for the most popular displays like ILI9341, ST7789, ST7565, GC9A01, and SH1106
  • HAL for easy integration of third-party MCUs
  • SFML support for cross-platform testing

Showcase

.!. .!. .!. .!. .!. .!. .!. .!.

ESP-IDF installation

First, you must enable RTTI (run-time type information), since complex components like keyboard and selectors utilize multi-inheritance and dynamic_cast. RTTI is disabled by default on ESP-IDF to save some flash memory, but since we’re using a fucking UI framework, a few bytes is a ridiculously small price to pay for such immense power. RTTI itself can be enabled via

idf.py menuconfig > Compiler options > Enable C++ run-time type info (RTTI)

After that, you can clone the library into your project. It would be wise to use submodules to do this:

git submodule add https://github.com/IgorTimofeev/YOBA.git components/YOBA

Don't forget to add YOBA component to your CMakeLists.txt. It should look like this:

file(GLOB_RECURSE my_sources "*.cpp")

idf_component_register(
    SRCS ${my_sources}
    INCLUDE_DIRS "."
    REQUIRES YOBA
)

include_directories(.)

Desktop installation

Since YOBA is hardware-independent, I thought it would be fun to add support for running it on Windows and Linux. And SFML is perfect for such shit! Just clone an example project and play around in your favourite IDE:

git clone https://github.com/IgorTimofeev/YOBASFMLExample.git

Tselyebnov, M. D.

feet

About

An independent and hardcore UI framework written on modern C++ for embedded devices

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages