Qt 5.10 est sorti en décembre, comme prévu, la version 5.11 devrait arriver en mai : qu’est-ce que l’année 2018 devrait réserver d’autre à Qt ? Comme les années précédentes (2016 et 2017), les développeurs de Qt s’ouvrent sur leurs projets pour cette année.
Deux versions de Qt sont prévues : Qt 5.11 en mai, avec une maintenance de six mois, puis Qt 5.12 en novembre, avec une maintenance à long terme (tout comme Qt 5.6 et 5.9 auparavant). Des versions mineures de Qt 5.9 continueront à être publiées en 2018, même si cette version entre en maintenance stricte (certains défauts ne seront pas corrigés, le risque de régression pour certaines applications devenant trop grand : ils seront néanmoins reportés sur les versions ultérieures).
Pour Qt Creator, la version 4.6 devrait arriver ce mois-ci (elle n’en est pas loin), la 4.7 en juillet et la 4.8 en novembre, avec à chaque fois des améliorations mineures. Qt 3D Studio 2.0 est toujours planifié pour juin 2018, avec un nouveau moteur d’exécution basé sur Qt 3D ; la version 2.1 devrait arriver en septembre et la 2.2 en décembre.
Contenu des versions de Qt à venir
Ces versions devraient apporter des améliorations de performance dans une série de cas d’utilisation courants : de fait, les développeurs suivent en permanence cette évolution.
En 2018, la grande nouveauté devrait être l’unification des moteurs 3D : Qt 3D Studio 1 utilise toujours le moteur développé par NVIDIA, la version 2 passera à Qt 3D, ce qui limitera les besoins en maintenance. Pendant cette migration, de nombreuses améliorations sont apportées à Qt 3D, notamment en performance et en utilisation de mémoire.
À ce niveau, de nouvelles compressions des textures feront leur apparition. Elles permettront de réduire le poids des applications et, dans certains cas, d’augmenter la performance, en exploitant des formats extrêmement bien adaptés à chaque plateforme. ETC1, ETC2 et ETC2_EAC sont arrivés avec Qt 5.10, tandis que Qt 5.11 devrait aussi ajouter KTX (Khronos Texture).
Qt 5.12 apportera pas mal d’évolutions au niveau de l’intégration avec Vulkan, mais aussi les étapes préliminaires pour Metal (l’équivalent de Vulkan pour les plateformes Apple).
Outre la 3D, la gestion des gestes pour Qt Quick sera complètement rénovée. Le nouveau module Qt Quick Pointer Handlers sera bien plus versatile, notamment pour les écrans multipoints ainsi que les applications déployées sur plusieurs écrans. Il sera aussi prévu pour les gestes détectés par une caméra ou un détecteur de proximité. Le module devrait avoir sa première version finale avec Qt 5.12 ; il devrait avoir un pendant C++ à terme.
En plus de Qt Quick, les widgets continuent à être développés : bon nombre de défauts ont été corrigés en 2017 et la tendance ne s’inversera pas en 2018. Qt 5.11 verra la mise à jour du moteur Chromium vers la version 65 (pour le module Qt WebEngine). À l’horizon de Qt 5.11, un découplage plus fort sera implémenté, afin de faciliter les mises à jour de cette dépendance très mouvante (une nouvelle version de Chromium toutes les six semaines, l’objectif serait de la mettre à jour tous les trois mois) : les bénéfices en sécurité seraient très importants.
PySide devrait revenir sur le devant de la scène en 2018 : pour utiliser Qt en Python, la seule solution viable actuellement est PyQt, disponible uniquement sous licence GPL ou commerciale. Le développement de PySide a cependant repris en 2016 et devrait atteindre un niveau suffisant pour être publié comme préversion avec Qt 5.11.
Nouveautés pour les outils
Qt 3D Studio est sans conteste l’outil le plus développé pour le moment côté Qt. Il sert à créer des interfaces 3D pour toutes les plateformes, en important du contenu d’outils bien connus comme Maya, MODO ou Photoshop. Sa version 2.0 sera un grand moment de 2018, avec une bien meilleure intégration avec tout l’environnement Qt (dont Qt Quick et Qt Creator) et une meilleure portabilité, notamment.
Cette version 2.0 devrait aussi voir les versions finales pour les API Behavior et Data Node, pour faciliter l’écriture de scripts et le transfert de données (des API déjà disponibles avec Qt 3D Studio 1.1).
Cependant, Qt Quick est d’abord prévu pour de la 2D et pourrait être amélioré à ce niveau. Notamment, importer des interfaces créées avec d’autres outils n’est pas aussi simple que cela pourrait être. Les outils disponibles sont extrêmement pratiques pour des développeurs, mais ne sont pas idéaux pour d’autres profils. Le déploiement sur d’autres plateformes sera encore retravaillé en 2018, pour voir en temps réel les impacts des modifications apportées au code.
Qt Creator verra une multitude de changements, comme une intégration plus poussée du modèle de code C++ de Clang (ce qui facilitera l’intégration des dernières fonctionnalités de C++). Python aura une place de choix, avec le renouveau de PySide.