Interview de Mériadeg Perrinel, auteur du livre Qt 6 en pratique

(13/06/2025)

Bonjour Mériadeg, tu es consultant indépendant en déveoppement logiciel, spécialisé en C++ QML, et tu attaches une grande importance à la qualité de la conception. Sur quels types de projets travailles-tu ? Et quel genre de missions te sont confiées ?

Bonjour — à partir du moment où il y a du C++ dans un projet, cela signifie que je peux techniquement le réaliser. Mais cela n'est pas suffisant pour y prendre du plaisir. Sur le plan technique, j'adore qu'il y ait également du Qt et du QML car c'est vraiment ma zone de confort. Bien sûr l'aspect métier est tout aussi important et j'ai travaillé dans tous les domaines : spatial, médical, énergie et autres. Aujourd'hui, avec mon expérience, on me confie de plus en plus des tâches d'architecte, pour concevoir des applications, et de leader technique, pour garantir la fiabilité technique des projets et accompagner des plus juniors à monter en compétences.

Depuis combien de temps utilises-tu le framework Qt et qu'est-ce qui t'a amené à l'adopter ? Quels sont les avantages d'utiliser un tel outil ?

J’utilise le framework depuis mes premiers stages en école d’ingénieur, en 2010 environ, on devait être en Qt4.8 à l’époque — et j’ai également pu m’initier au QML lors de mon premier boulot à l’Inria de Sophia Antipolis. Au même moment, je travaillais sur un projet perso de création de labyrinthe dynamique en QML. Il faut bien reconnaitre que ce n'était pas prémédité, mais comme je travaillais sur des projets scientifiques présentant une combinaison backend C++ (pour exposer des algorithmes avec une techno efficace) et un frontend facilement connectable, le tout dans des environnements multiplateformes, Qt est rapidement devenu indispensable. Qt est vraiment bien car il est facile à utiliser, efficace, il permet de créer une application complète de A à Z et possède une très grande communauté.

Qt est en constante évolution. Quelles sont les trois nouveautés portées par les versions 6.x qui sont à tes yeux les plus importantes ?

Qt 6 lui-même a déjà beaucoup évolué depuis ses débuts — mais par rapport à Qt5, je citerais l’intégration même de CMake pour configurer les projets avec les nouvelles macros proposées par Qt et qui simplifie la configuration et le déploiement d’une appli. Il y a aussi, toutes les modifications et nouvelles fonctionnalités apportées au QML pour le rendre plus fiable et plus complet. Pour finir, je dirais que les modifications du backend graphique (QRHI) sont fondamentales puisqu’elles permettent de laisser au système le choix d’utilisation de la techno graphique (OpenGL, Vulkan, Metal, etc.) sans perturber le développeur faisant du QML.

"J'ai voulu montré comment fonctionne un projet"

Parlons maintenant de ton livre Qt 6 en pratique. Ce n'est pas un manuel classique commençant par une prise en main élémentaire du framework suivi d'une présentation des différents modules. Toi tu débutes sur la configuration de projet et son déploiement. Peux-tu nous expliquer pourquoi ? Quelle est ta démarche ? Que souhaites-tu apporter au lecteur ?

Je pense que la documentation en ligne du framework est déjà bien fournie et je ne voulais pas écrire quelque chose dans ce sens. En revanche, j’ai voulu montrer comment fonctionne un projet. Les fichiers sources doivent être organisés en binaires bien distincts pour leur lisibilité et avoir une architecture saine. Ce travail doit s’effectuer dès le début du projet et oblige le développeur à réfléchir à son architecture avant de se lancer dans le code. Cette architecture se matérialise grâce à la configuration du projet. Comme Qt 6 apporte énormément de macros CMake allant dans ce sens, j’ai trouvé naturel de démarrer par cela. Pour la suite du projet, j’ai voulu faire comme dans un jeu vidéo. C’est-à-dire qu’au début c’est simple, j’apporte les notions une par une et au fur et mesure de l’avancement du livre, les notions s’intensifient pour profiter d’un maximum de modules et de fonctionnalités de Qt au sein d’un même projet. En résumé je souhaite que le lecteur puisse comprendre comment on part d’un projet vierge, pour arriver sur un projet bien avancé utilisant de manière intensive le framework.

Qt est un framework extrêmement riche en fonctionnalités et en possibilités. N'était-ce pas compliqué pour toi de choisir celles que tu allais mettre en avant ? Quels ont été tes critères ? Sur quoi as-tu mis l'accent ?

Honnêtement, je n’ai pas eu trop de mal à identifier les modules à explorer. Ils se démarquent clairement dans la documentation de Qt. Mais il y a toujours cette ambiguïté dans la tête de tous les développeurs utilisant ce framework concernant la licence des modules. Si on a une licence commerciale, il n’y a pas de problème. Mais si on utilise la licence open-source, il faut vraiment être attentif aux licences de chaque module, et cela peut amener un développeur à réduire l’utilisation qu’il fait du framework. Pour le livre, j’ai pris la décision de ne parler que des modules ayant au moins une licence open-source pour toucher une communauté plus large. D'autre part, j’ai favorisé les modules les plus utilisés à mon sens et ceux que je connais le mieux de par mon expérience. Enfin, j’ai choisi aussi des modules récents, parmi ceux disponibles lorsque j'ai démarré le livre. Malheureusement, j’ai dû faire l’impasse sur le module Qt Graph car il n'est sorti officiellement que vers la fin de l’écriture du livre.

"Il y a toujours cette ambiguïté concernant la licences des modules"

Les débutants sont parfois un peu déroutés par la coexistence de deux systèmes de génération d'interfaces graphiques, via le QML et les Widgets. Comment les aider à choisir ?

À l’arrivée du QML, personne n’osait se lancer dedans, on continuait à faire du Widget. Cependant, la solution widget montrait ses limites à l’exécution sur les petits écrans ou encore les écrans tactiles qui devenaient de plus en plus présents partout : dans nos poches, dans les voitures, les avions ou encore dans l’univers médical. Seul l’ordinateur traditionnel s’utilise avec une souris. En fait, la plupart des autres écrans sont tactiles et nécessitent des boutons plus imposants pour que l’on puisse appuyer dessus. En plus, ces applications doivent être fluides et dynamiques avec par exemple des animations en tout genre pour être attractive car leur public n’est pas le même que pour une bonne vielle application industrielle. QML, à la diférence des widgets est parfaitement adapté à cela. Si vous ne souhaitez pas apprendre le QML, que votre application se fiche pas mal du design et que vous n’avez pour cible que les ordinateurs de bureaux, alors l’utilisation des widgets peut s’avérer suffisante. Toutefois, j’aurais quand même tendance à conseiller d’utiliser QML à tous les coups.

D'une manière générale, Qt offre souvent plusieurs alternatives pour réaliser une même chose. Comment aider le débutant à s'y retrouver ?

Je pense que tous les développeurs forgent leurs expériences au fil des années et développent leur zone de confort avec leur méthodologie. Ainsi différents experts peuvent proposer des chemins bien différents pour arriver au même résultat. Mon conseil pour un débutant est de se trouver un mentor en qui il a confiance et avec qui il peut tout apprendre rapidement sans pour autant oublier sa curiosité personnelle, car viendra un moment où on se sent suffisamment à l’aise pour voler tout seul. La documentation de Qt est très bien fournie et je conseille d’essayer les différentes alternatives qu’elle propose à l’aide de preuve de concept pour voir laquelle convient le mieux pour un problème donné.

Quels sont les chapitres du livre qui t'ont donné le plus de fil à retordre et pourquoi ?

Le chapitre le plus compliqué à écrire a été celui sur les modules Positionning et Location car je n’ai jamais eu affaire à eux par le passé et il a fallu apprendre beaucoup de choses en peu de temps. Pour les autres chapitres, je dirais qu’ils ont tous présenté le même niveau de difficulté où il a fallu faire des choix sur le contenu présenté, trouver une manière d’intégrer les modules dans l’application fil rouge tout en essayant d’y aller crescendo en termes de difficulté.

Quelles sont les parties du livre dont tu es le plus fier ?

Je suis vraiment content d’avoir effectué tous les chapitres du livre. J’imagine que je suis plutôt fier d’avoir réussi à afficher un chemin style itinéraire dans le chapitre Positionning et Location. Et je suis également assez content du chapitre sur le multithreading car j’essaie d’y montrer une décomposition par module fonctionnel d’utilisation des cœurs d’un système au sein d’une application modulaire à l’aide des classes Qt sans trop perturber la tâche des développeurs.

As-tu des conseils à donner à tes lecteurs ?

Mon conseil pour les lecteurs est le suivant : si vous êtes débutant dans le framework, clonez et compilez le code source, puis essayez de lire le livre en identifiant le code associé et jouez avec celui-ci pour explorer les possibilités de chaque chapitre. Avec de la rigueur et un peu de temps, vous aurez la garantie, à la fin, d’avoir acquis de nombreuses connaissances sur le framework, vous assurant ainsi une base solide. Si vous êtes plus expérimenté, vous pouvez faire de même en vous concentrant sur les notions qui vous manquent, puis en allant challenger la partie multithreading. Je vous invite également à me contacter pour poser des questions sur le livre, son application ou tout simplement pour me dire si, en tant que développeur, vous vous identifiez au contenu du livre.

Merci Mériadeg pour ces réponses. Souhaites-tu ajouter quelque chose ?

Bien sûr, je souhaite une nouvelle fois remercier Patricia Moncorgé et les éditions D-BookeR pour m'avoir donné l'opportunité d'écrire ce livre et merci également à Ilya Diallo pour sa contribution dessus. J'espère que les lecteurs apprendront des choses en le lisant et que ça les aidera dans leurs projets professionnels ou personnels.