Hello everyone,
I am developing a mobile device that uses a display for output and rotary encoders and buttons for input. Currently, the display is a standard SSD1306 0.96-inch OLED with 64x128 pixels. However, this will no longer be sufficient for future revisions, so I want to switch to a 2-inch color display. The programming is done on an ESP32S3 using the Arduino IDE.
My problem now is that I need to develop a GUI as quickly as possible, ideally one that is independent of the display. I haven't really found a suitable library for this yet. I've already tried LVGL, U8G2, EEZ-Studio with LVGL, Squareline Studio with LVGL, Planet 096, and a few smaller projects. None of these really suited my programming style, as I need it to be object-oriented and able to adapt the UI dynamically at runtime with an undefined number of icons, good animations, etc.
For example, the device is supposed to support additional modules, which should each display a different icon in the GUI depending on the module type. These modules should then be controlled via the GUI on the main device.
I don't like desktop programs where the UI is designed with drag-and-drop because you always have to export, add it to the project, and manually modify the files to make the buttons work without touch input. Touch input, however, is not suitable for my application. Display-specific libraries like the Adafruit SSD1306 library in the Arduino IDE have the drawback of only working with one or a few displays of the same type. Since I don't know if the next display we choose will be the final one, it would be great to avoid rewriting everything each time.
In addition, I’m also missing a good 2-inch color display that doesn't require too many GPIOs. Ideally, it should work over I2C or 3-wire SPI. If there's nothing suitable for the Arduino IDE, ESP-IDF could be an alternative, but only as a last resort.
If any of you have had different experiences with these tools, please share, as it might also be a user error on my part.
Thanks in advance for any support!
