Developpez.com

Télécharger gratuitement le magazine des développeurs, le bimestriel des développeurs avec une sélection des meilleurs tutoriels

Sortie de Qt 5.8 Alpha, avec un moteur d'affichage Qt Quick modularisé
Et des caches pour le code QML, la reconnaissance vocale et OAuth arrivent

Le , par dourouc05, Responsable Qt
Qt 5.8 Alpha est maintenant sorti. Cette version mineure apporte pas mal de nouveautés, mais les principales se situent sous le capot et n’auront pas vraiment d’impact pour le programmeur.

Celle qui a fait couler probablement le plus d’encre est une refactorisation à grande échelle du moteur de rendu de Qt Quick : la dépendance envers OpenGL a été fortement limitée, l’architecture globale du rendu est maintenant totalement agnostique en ce qui concerne l’API utilisée. Ces changements ont permis l’intégration du moteur de rendu purement logiciel qui était fourni avec les éditions commerciales de Qt, mais aussi la création d’une extension (expérimentale) qui utilise DirectX 12 pour le rendu. Rien n’est actuellement prévu pour Vulkan, les développeurs estimant que les gains en performance ne justifieront pas ce développement.

Le moteur d’exécution QML (le langage prévu pour Qt Quick) a également été fortement amélioré, en ce qu’il met maintenant en cache une forme binaire précompilée des fichiers QML chargés. Ainsi, le démarrage des applications QML est bien plus rapide que précédemment (sans chercher à se passer de QML et d’écrire ses applications Qt Quick uniquement en C++). Ces changements n’impliquent pas la possibilité de précompiler une application Qt Quick (qui reste l’apanage de l’édition commerciale).

Dans le monde de l’embarqué, l’espace est une denrée rare, tant pour le stockage qu’en mémoire vive… et Qt en occupe vite une belle quantité. Dans le cadre du projet Qt Lite, l’infrastructure de configuration de Qt a été retravaillée pour sélectionner les fonctionnalités nécessaires à l’intérieur de chaque module. Le travail est toujours en cours, mais continuera d’ici à la préversion Beta. Jusqu’à présent, il est possible de diminuer la taille d’une application Qt Quick (liée statiquement à Qt) de septante pour cent par rapport à Qt 5.6 — ce qui est un gain appréciable.

Certains modules quittent le statut de préversion technologique et sont maintenant pleinement supporté par le Qt Project (notamment, les évolutions de leur API ne pourront pas casser la compatibilité avec les prochaines versions de Qt 5). Ainsi, Qt Wayland Compositor, Qt SCXML et Qt Serial Bus sont ouverts au plus grand nombre, sans arrière-pensée. De nouveaux modules font aussi leur apparition comme préversions technologiques : Qt Speech pour la reconnaissance et la synthèse vocales, Qt Network Authentication pour l’authentification (notamment avec le protocole OAuth, versions 1 et 2).

Qt 5.8 Beta devrait arriver dans un mois, début octobre, avant une version finale fin novembre. Si tout se passe bien, évidemment.

Télécharger Qt 5.8 Alpha.
Source : Qt 5.8 Alpha released.

Et vous ?

Que pensez-vous de cette nouvelle version de Qt ?

Voir aussi

le forum Qt


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de dourouc05 dourouc05 - Responsable Qt https://www.developpez.com
le 04/11/2016 à 9:44
Un mois après la préversion Alpha, Qt 5.8 gagne en maturité avec sa première Beta. Les principales nouveautés par rapport à Qt 5.7 sont un nouveau système de configuration (laissant plus de flexibilité quant aux fonctionnalités à inclure — ce qui est plus fin que les modules —, chose très appréciée dans l’embarqué, où les ressources sont rares), un moteur de rendu logiciel pour Qt Quick (précédemment payant), un cache QML pour accélérer le chargement des applications (qui n’était pas présent pour la préversion Alpha) et d’autres choses encore.

Télécharger Qt 5.8 Beta.
Avatar de dourouc05 dourouc05 - Responsable Qt https://www.developpez.com
le 24/12/2016 à 1:34
Le développement de Qt 5.8 continue son petit bonhomme de chemin : deux mois après la Beta, voici la RC, qui corrige bon nombre de défauts par rapport à la Beta. La version finale est prévue pour janvier 2017.

Télécharger Qt 5.8 RC.

Source : Qt 5.8.0 Release Candidate Available.
Avatar de dourouc05 dourouc05 - Responsable Qt https://www.developpez.com
le 24/01/2017 à 22:30
Avec quelque retard, la version 5.8 de Qt est sortie. Elle est relativement riche en fonctionnalités : un système de configuration de la compilation nettement plus précis, une API pour aider à la création de compositeurs Wayland, de grands changements du côté de la communication et des réseaux, Qt Quick a vu la plus grande refactorisation de son code de rendu depuis 2012.



Qt Lite ou le renouveau du système de configuration

Peu d’utilisateurs en profiteront, mais ceux-là verront leur vie largement simplifiée. Le système de configuration de Qt est utilisé lorsque l’on compile Qt depuis les sources. Il permet de définir bon nombre d’options, pour choisir les modules à compiler, les bibliothèques à intégrer, etc., mais a subi une évolution chaotique : ce script a été écrit il y a une quinzaine d’années, pour Qt 3, et n’a depuis lors pas subi de refonte majeure, chaque version ajoutant sa petite couche. Le résultat était un script pas toujours cohérent entre les différentes plateformes, pas très modulaire (alors que c’était le thème principal de Qt 5).

Cette nouvelle mouture, au contraire, est unifiée entre les différentes plateformes (les incohérences ont été éliminées), tout en laissant bien plus de flexibilité à l’utilisateur pour les parties à compiler : la version précédente permettait de choisir des modules (et quelques fonctionnalités), celle-ci descend plus bas et permet de désactiver des parties de modules, mais aussi des fonctionnalités précises (l’analyse de contenu HTML ou CSS, souvent utilisée dans les interfaces pour du texte formaté, par exemple).

Sur les plateformes embarquées (téléphone, machine à café, système d’infodivertissement d’une voiture, etc.), cela permet de gagner beaucoup de place, en stockage et en mémoire vive — jusqu’à soixante pour cent en stockage pour une application Qt Quick simple par rapport à Qt 5.6, qui nécessite pourtant une bonne partie de Qt.

Refactorisations pour Qt Quick


Le monde Qt Quick voit de grands changements : avec Qt 5, l’affichage s’est orienté autour d’un graphe de scène et d’OpenGL ; avec Qt 5.8, le graphe de scène reste, mais il s’abstrait de l’API utilisée pour le rendu. Ainsi, une implémentation expérimentale du moteur de rendu utilisant Direct3D 12 est fournie ; cela laisse la porte ouverte à une implémentation Vulkan. Un moteur de rendu purement logiciel est aussi disponible (sans utiliser OpenGL).

Par défaut, le moteur d’exécution Qt Quick met en cache des représentations binaires des fichiers QML et JavaScript, ce qui diminue énormément le temps de chargement — une fois que l’application a déjà été lancée. L’édition commerciale de Qt propose un compilateur Qt Quick, qui effectue ces opérations de traduction en format binaire en amont, élimine les coûts supplémentaires du premier lancement ; les plans actuels sont de l’intégrer dans l’édition libre de Qt dans les versions à venir, en profitant de cette infrastructure de caches.

À un niveau plus mineur, le graphe de scène peut maintenant détecter quand une partie de la scène n’a pas été touchée et ne doit donc pas être redessinée, ce qui améliore franchement la performance, surtout dans le cas du moteur de rendu logiciel.

Les Qt Quick Controls 2 disposent de quelques contrôles supplémentaires, comme des boîtes de dialogue, des boutons arrondis et des séparateurs pour les barres d’outils. Les styles Material et Universal proposent maintenant un thème qui copie l’apparence du système d’exploitation et facilite l’intégration des interfaces.

Compositeur Wayland

Qt Wayland Compositor arrive en version finale (avec Qt 5.7, il était considéré comme une préversion technologique) ; ce module aide à créer des compositeurs pour Wayland. À nouveau, cette fonctionnalité est orientée principalement vers les plateformes embarquées : le module sert notamment à créer des écrans de démarrage et des gestionnaires d’applications quand le système d’exploitation n’en fournit pas. Notamment, dans les systèmes d’infodivertissement d’une voiture, il permet de créer l’environnement nécessaire au bon fonctionnement des applications — sans devoir lancer un serveur X et écrire son propre gestionnaire de fenêtres, puisque Wayland peut s’en occuper.


Dans le détail, ce module gère sans problème plusieurs écrans et propose une API tant en C++ qu’en QML. Chaque application est lancée dans son processus propre, ce qui favorise les bonnes pratiques de développement (le système complet n’est pas monolithique, avec une sécurité améliorée) et la réactivité (une application ne bloque pas le système).



Réseaux

Qt SerialBus est utilisé pour la communication sur des bus série, comme CAN et Modbus (très courants dans l’embarqué), même si son API est générique et ne se limite pas à ces deux protocoles. Ce module est maintenant en version finale.

Pour la sécurité, tant Qt Network que Qt Web Sockets implémentent les algorithmes cryptographiques de TLS PSK. La classe QNetworkAccessManager accepte des paramètres pour l’échange de clés selon le protocole de Diffie-Hellman, ainsi que HTTP 2.

Qt Network Authorization fait son apparition en tant que module en préversion technologique. Il implémente les protocoles OAuth 1 et 2.

Qt WebEngine a été mis à jour pour utiliser Chromium 53. Il est désormais possible d’imprimer des pages Web, ainsi que de personnaliser certaines boîtes de dialogues, infobulles et menus contextuels en QML.

Divers

Bon nombre de changements plus épars ont eu lieu avec cette nouvelle version. Au niveau des plateformes, Qt peut être utilisé avec tvOS et watchOS, respectivement pour l’Apple TV et l’Apple Watch. Cependant, les fonctionnalités graphiques ne fonctionnent pas encore sur watchOS.

Qt Speech est un nouveau module en préversion technologique. Son objectif à terme est d’intégrer les API système pour la reconnaissance et la synthèse vocales. Cette première version se focalise sur la synthèse, c’est-à-dire faire lire un texte à voix haute par l’ordinateur.

Qt 3D n’est toujours pas arrivé à maturité : peu de changements en fonctionnalité, mais de nombreux défauts ont été corrigés, la performance a été améliorée.

Qt Charts propose un nouveau type de graphique, les chandeliers japonais.

Sources : Qt 5.8 released, Creating devices with multiple UI processes using Wayland.
Avatar de Aurelien.Regat-Barrel Aurelien.Regat-Barrel - Expert éminent https://www.developpez.com
le 25/01/2017 à 14:37
Citation Envoyé par dourouc05 Voir le message
Peu d’utilisateurs en profiteront, mais ceux-là verront leur vie largement simplifiée. Le système de configuration de Qt est utilisé lorsque l’on compile Qt depuis les sources. Il permet de définir bon nombre d’options, pour choisir les modules à compiler, les bibliothèques à intégrer, etc., mais a subi une évolution chaotique
C'est destiné à être utilisé par les développeurs embarqués en particulier. Qt Lite (non dispo en GPL, uniquement en commercial) fournit un configurateur graphique qui permet à coups de clics de choisir les modules que l'on veut, et il ne s'agit pas juste de QtCore, Widgets ou Network, mais de 150 fonctionnalités, donc un granularité beaucoup plus fine au niveau du code compilé. Et c'est ce qui permet de réduire la taille finale des binaires par 5. Pour cela ils ont enrichi qmake pour supporter un système maison de définitions de modules en json. Cela a été l'occasion de remettre à plat la configuration de Qt qui se faisait via des scripts sous Unix et un exécutable dédié (configure.exe) sous Windows, donc double maintenance. Du coup je me demande si Qbs a un avenir (déjà qu'il a du mal à percer)...

Avec cette nouvelle version, Qt cible clairement l'embarqué (IoT) en supportant officiellement comme hardware minimal un ARMv7 300MHz avec 16 / 32 Mo de ROM / RAM. Et surtout, plus besoin de GPU (OpenGL) pour faire tourner QML. Et ils pensent pouvoir réduire encore les besoins dans le futur. C'est une très bonne nouvelle ! Par contre faut payer
Avatar de Jiyuu Jiyuu - Rédacteur/Modérateur https://www.developpez.com
le 28/01/2017 à 9:35


Merci Aurelien pour cette précision que, sauf erreur de ma part, je n'ai vu nul part... Je pouvais toujours le chercher ce Qt Lite
Avatar de Aurelien.Regat-Barrel Aurelien.Regat-Barrel - Expert éminent https://www.developpez.com
le 30/01/2017 à 12:03
Ah oui j'ai oublié de préciser que j'ai eu ces infos dans un webinar dédié au sujet. Il y a d'ailleurs une nouvelle session le 2 février:
https://www.qt.io/event/encore-qt-lite-overview/

Offres d'emploi IT
Ingénieur système de commande de vol H/F
Safran - Ile de France - Massy (91300)
Responsable de projets - actionneurs H/F
SAFRAN - Ile de France - MASSY / MANTES
Ingénieur développement logiciels temps réel embarqué H/F
Safran - Ile de France - Éragny (95610)

Voir plus d'offres Voir la carte des offres IT
Responsable bénévole de la rubrique Qt : Thibaut Cuvelier -