Evgen3d/stock.adobe.com
Framework UI : huit ans plus tard, Qt fait peau neuve
Qt Company lance Qt 6.0, une nouvelle mouture pour son framework de développement d’interfaces graphiques, synonyme de performances et de rationalisation des processus.
Fondé en 1994, Qt est un éditeur finlandais passé par les mains de Nokia, revendu à Digia en 2012. En 2014, QT devient Qt Company, une filiale à part entière dédiée au framework C++ avant d’entrer à la bourse NASDAQ d’Helsinki en 2016.
Techniquement, Qt Company et sa communauté open source, ont continué à améliorer Qt 5, l’itération de la plateforme de développement d’UX/UI, lancée en décembre 2012. Huit ans plus tard, l’éditeur entend moderniser son cadriciel utilisé par 1,5 million de développeurs en déployant Qt 6.
Stéphane PersynDirecteur ventes, QT Company
« Qt 5 a parfaitement tenu son rôle de maintenance et d’évolutivité jusqu’à la version 5.15, mais cela fait un ou deux ans que nous négocions ce virage afin d’établir les fondations qui soutiendront de nouveaux usages », déclare Stéphane Persyn, directeur des ventes Europe du Sud, Royaume-Uni et pays nordiques chez QT Company.
Par le biais d’une simple recherche sur le web, il est aisé de comprendre pourquoi Qt avait besoin d’évoluer. Certains utilisateurs atteignaient les limites du framework, notamment ses widgets et ses styles CSS, mais surtout des types statiques et classes de C++.
Selon l’éditeur, la refonte a pour but d’offrir « une plus grande liberté pour ajouter des fonctionnalités et un meilleur support afin d’assurer l’avenir de la plateforme ».
QT conserve ses capacités de déploiement multiplateforme à partir d’une base de code source. C’est-à-dire qu’il est toujours possible de porter une interface sur les OS Linux, Windows, macOS, iOS ou encore Android.
Par ailleurs, la nouvelle version étoffe la prise en charge des API graphiques, au-delà d’OpenGL. Désormais, « une couche d’abstraction » nommée Rendering Hardware Interface (RHI) permet de développer des UI compatibles avec les API Direct 3D (Microsoft), Metal (Apple) et Vulkan (Khronos group, sous licence OPL) en sus d’OpenGL et OpenGL ES.
Le cœur de Qt, Qt Core, repose sur C++, plus précisément C++ 17, qu’il faut coupler à un compilateur, ici CMake.
C++ est associé à une nouvelle génération de QML (Qt Modeling Language), un langage déclaratif s’appuyant sur les expressions standards JavaScript. QML nécessite, lui, l’emploi de Qt Quick. Qt Quick et QML ont l’avantage d’offrir des propriétés de liaisons (binding properties) qui permettent de fixer l’aspect d’un objet visuel. Avec Qt 6, il est désormais possible d’utiliser ces bindings dans le moteur C++. Pour ce faire, les développeurs du framework ont mis en place divers mécanismes pour gagner en performance. Par ailleurs, un ensemble de classes pour mieux gérer les actions à déterminer après un clic ou une pression du doigt sur un écran.
Qt 6 unifie la gestion des objets 2D et 3D
De son côté, Qt Quick 3D facilite la définition d’objets 2D et 3D depuis la couche d’abstraction vers les API graphiques. Qt Company a également déprécié un grand nombre de méthodes, de classes et de modules. En outre, deux nouveaux modules font leur apparition : QtShaderTools comprend des outils pour calculer les rendus graphiques et des ombres, et Qt5Compat, une librairie donnant accès aux API de Qt5 retirées dans Qt6.
En soi, le framework ne change pas en profondeur, mais bénéficie d’un lot d’améliorations pour s’adapter aux méthodes de travail des concepteurs d’interfaces.
Stéphane PersynQT Company
« Il s’agit de rapprocher les développeurs et les designers. Ils ne parlent pas toujours le même langage. Les développeurs exploitent C++ et QML, tandis que les designers utilisent Photoshop et d’autres outils de création. Qt Design Studio permet d’importer un fichier Sketch, PSD, Maya, Blender, de l’animer et de le convertir en objets QML rapidement visibles », promet Stéphane Persyn.
Ce logiciel disponible depuis 2018 doit faciliter la gestion d’objets visuels liés à des propriétés QML à la manière de la suite Adobe Creative Cloud.
Une croissance dopée par l’embarqué et l’IoT
Qt Company a étoffé sa clientèle dans plus de 70 secteurs. « Dès lors que vous avez un écran intégré à une machine à laver, un robot de cuisine, une station essence, etc., vous avez beaucoup de chances que l’interface ait été bâtie avec le framework Qt », assure Stéphane Persyn. Sur son site web, l’éditeur mentionne parmi ses clients le groupe PSA, Mercedes Benz, LG, Tableau ou encore Rockwell Automation.
En France, des acteurs de l’automobile, de l’aéronautique, de la sécurité et de la défense, l’industrie médicale ou bien de l’électroménager utilisent Qt. « Il y a eu une véritable explosion notamment due au marché de l’IoT qui a beaucoup porté la croissance avec le besoin d’obtenir des interfaces graphiques du même niveau de celles qui habillent les applications mobiles, mais s’exécutant sur du matériel de bien moindre puissance ».
Pour les développeurs embarqués, Qt Company propose « Qt for MCUs », une extension de sa plateforme qui doit permettre d’exécuter des UI légères sur des microcontrôleurs en s’appuyant sur des OS temps réel (FreeRTOS, QNX, Integrity, etc.) et consommer au maximum 80 kb de RAM. Seulement, la plupart des RTOS cités ne sont pas encore compatibles avec le jeune C++ 17. L’éditeur entend y remédier dès le lancement de la première version LTS de QT 6, la mouture 6.2. C’est également en 2021 qu’il rendra son framework compatible avec les Mac M1, dotés de processeur ARM.
Toutefois, cette volonté d’améliorer les performances et l’usage de la bibliothèque – et des outils qui l’entourent – s’accompagne par un changement de modèle économique qui a « ému » certains utilisateurs. Qt Company a abandonné la licence perpétuelle au profit d’une souscription (1 an, 3 ans ou 5 ans) et a délaissé le portage libre des versions supportées (LTS) de Qt.
Un changement de modèles économiques
Stéphane PersynQT Company
« Qt supporte pleinement l’open source. Nos utilisateurs commerciaux ont besoin de se libérer des contraintes de la licence LGPL afin de protéger leurs propriétés intellectuelles. Si Qt existe encore aujourd’hui, c’est grâce à cette communauté open source extrêmement dynamique qui nous permet de faire évoluer le produit », entend rassurer Stéphane Persyn.
Qt Core reste sous LGPL 3, mais Design Studio ou bien Qt for MCUs sont des IP de l’éditeur. Il propose néanmoins des versions gratuites de ces outils.
« Lorsque vous commencez un développement, vous devez choisir s’il est commercial ou open source, car cette décision vous suivra tout au long de votre produit », précise le responsable.
Pour les clients encore sous licences perpétuelles, Qt entend offrir des chemins de migration « avantageux » financièrement.
Cette politique semble lui réussir. Qt Company générait 45 millions d’euros de chiffre d’affaires en 2018. En 2019, l’éditeur a engrangé 58,4 millions d’euros et prévoit d’augmenter ses revenus de 20 % cette année, ce qui lui permettrait d’afficher un résultat opérationnel positif.