What I learned designing a barebones UI engine
L’auteur a développé une couche UI sur PyGame destinée à ses expérimentations, en privilégiant la transparence des coûts et l’écriture rapide en Python, avec une boucle simple de hit-test, mise à jour et rendu. Pour progresser, il passe d'une liste plate à une architecture en arbre où les nœuds sont soit dédiés au layout soit au contenu et parcourus en profondeur. Le cœur expose measure() et distribute() pour mesurer et attribuer les tailles et positions des nœuds, sans contraintes et en s’appuyant sur des tailles intrinsèques. Des ajouts incluent l’asynchronie, les écouteurs d’événements et des optimisations de performance, ainsi qu’un système d’étapes (stages) pour naviguer entre les pages. L’objectif est de concilier simplicité et fonctionnalité, tout en envisageant des évolutions comme une API déclarative, la composabilité et un système de style personnalisable.