Some project side struggles I am facing currently.

The future of the PixelUI beta

Thoughts ahead…

It has been almost a year since I began coding for this project. It is by far the grandest project that I’ve ever created. While it’s not overly complex by any means, I have learnt a LOT from it.

1
2
3
4
5
U8G2 u8g2;
PixelUI ui(&u8g2);
u8g2_Init();

ui.begin(); // initialize the instance

However, there was a point, at which I doubt myself, can PixelUI really be called an UI library?
Like while I’ve built the core pillars – event routing, widget drawing, and an animation system, there is still a lot of architectural bloat that should not belong in an dedicated UI library.

For example, the application framework is tangled up with the whole project, It also lacks of a widget tree system, by far the widgets are flat.

And I really don’t know if I should vendor the u8g2 & etl code alongside my project.

Is using the u8g2 api throughout the project a bad idea?

YAGNI

Even though people usually try to convince to follow the YAGNI principle, It is hard for me to supress this urge to refactor, especially when many other great embedded UI libraries out there are beautifully decoupled and independent.

Generally I wouldn’t consider myself as a perfectionist, however when it comes to the project, it struggles.