Desktop First UX Summit 2021 : Designing Multi-Threaded UIs

Après quelques réglages d’écran trop grand, Olaf Monien a pu démarrer sa présentation à l’heure et en direct, épaulé par Jim McKeeth.

Son objectif était de montrer comment on peut faire du développement d’interfaces utilisateurs gérées à l’aide de plusieurs processus afin de ne pas les bloquer.

C'est donc de l’asynchrone comme on en fait dans un monde où les sources d’informations traitées ou affichées viennent de plusieurs sources et pas forcément en temps réel. Mais ça ne concerne pas que les sources de données, ça concerne aussi les opérations que l’on a besoin de lancer (par exemple des impressions) et qui ne doivent pas bloquer les utilisateurs dans leur travail.

A travers un exemple d’application VCL affichant des données depuis une base locale qu’il a volontairement ralentie, Olaf a rappelé les bases d’utilisation des threads/tâches par rapport au fonctionnement des interfaces utilisateur. Certaines fonctionnalités méconnues de FireDAC ont été utilisées pour fluidifier l’interface lors de requêtes lentes.

Un autre exemple a été fait avec une application VCL affichant à l’écran des données provenant d’un service web en REST : une liste d’émissions de télévision et leur image d’illustration.

Dans ce cas Olaf a utilisé un composant TCrontrolList. Un peu sur le principe de cet exemple que j’avais développé lors du Learn To Code Summer Camp 2021 mais il a proposé une astuce très intéressante avec une collection d’images plutôt qu’en dessinant directement l’image une fois téléchargée comme je le fais dans mon exemple.


Vous pouvez voir ou revoir cette session depuis le site du Desktop First UX Summit et je vous le recommande vivement car ça peut vous servir sur tous types de projets (desktop, mobiles ou même web).

Si vous voulez en savoir plus sur le composant TControlList et ce qu’il peut faire pour vous dans un projet VCL, regardez l’excellente présentation qu’en a fait Serge Girard en mai 2021.

J’en profite pour vous suggérer la lecture du livre « Delphi Event-based and Asynchronous Programming » de Dalija et Neven Jr Prasnikar.

En option, sur le principe de travailler en asynchrone dans vos interfaces ou d’une façon générale de déconnecter complètement les actions de l’affichage, vous pouvez également regarder la présentation de Jason Southwell sur FLUX.