Qt 5.5 alpha est disponible depuis peu. Le principal objectif de cette nouvelle version est l'amélioration et la stabilisation des fonctionnalités existantes, mais de nouvelles fonctionnalités font aussi leur apparition. Avec Qt 5.5, Canvas 3D est totalement supporté et le très attendu Qt 3D est inclus en qualité d’avant-première technologique. Qt 5.5 facilite la cartographie au travers du nouveau module Qt Location, lui aussi en qualité d’avant-première technologique. Cette version alpha de Qt 5.5 est un premier pas vers la version finale de Qt 5.5, prévue pour mai, avec un mois de retard sur le planning initial.
Stabilisation et amélioration de l'existant
Les précédentes versions de Qt 5 ont apporté la compatibilité avec de nouvelles plates-formes ainsi que de nouvelles fonctionnalités. Avec Qt 5.5, les équipes de développement se sont concentrées sur la stabilité ainsi que l'amélioration des fonctionnalités existantes. La plupart des nouvelles fonctionnalités sont mineures ou portent des API existantes sur de nouvelles plates-formes. Qt 5 constitue une fondation solide et cela sera d'autant plus vrai avec Qt 5.5.
En plus des améliorations apportées à Qt en lui-même, les systèmes d'assurance qualité et d'intégration continue testent maintenant de plus en plus de plates-formes et de configurations différentes. Avec Qt 5.5, le système d'intégration continue et de publication permet maintenant de sortir de nouvelles versions de patch (Qt 5.5.x), même après la sortie de Qt 5.6.
Qt 3D et Qt Canvas 3D
Une des fonctionnalités les plus attendues de Qt 5.5 est la préversion de Qt 3D 2.0. De gros efforts ont été consentis à ce sujet, notamment de la part des développeurs de KDAB. Ce module Qt 3D 2.0 est maintenant prêt pour les tests. Depuis de nombreuses années, Qt a été utilisé pour développer des applications 3D de renommée, mais Qt 3D facilite plus que jamais l'intégration et l'utilisation de contenu 3D dans vos applications Qt. Ce module fournit une API C++ ainsi qu'une API QML pour intégrer du contenu 3D dans tout type d'application et permet d’utiliser OpenGL 2, 3 et 4 ainsi qu'OpenGL ES 2 et ES 3. Pour plus de détails sur ce qu'apporte Qt 3D 2.0, vous pouvez consulter la documentation de Qt 3D ainsi que cette série d'articles publiés sur le blog de KDAB.
En plus de Qt 3D, toujours dans le domaine de la 3D, Qt Canvas 3D sort, avec cette nouvelle version, de son statut d’avant-première technologique. Avec ce nouveau module léger, il devient très facile de faire des appels à des fonctions 3D à la « WebGL » depuis un contexte Qt Quick / JavaScript, permettant d'utiliser facilement des ressources WebGL par-dessus Qt Quick. Pour beaucoup de besoins dans le domaine 3D, cela permet de tirer parti d'applications écrites en HTML5 / WebGL.
Qt Location
Encore un autre module attendu depuis longtemps, ajouté à Qt 5.5 en qualité d’avant-première technologique, Qt Location. Ce module apporte des fonctionnalités de cartographie, de géocodage, de géocodage inverse, de routage ainsi que de placement à Qt. Il est maintenant aisé d’utiliser des fonctions de cartographie dans des applications développées avec Qt. Ce module exploite les données géographiques de différents fournisseurs, comme Open Street Map, Mapbox ou Here Maps.
Qt Multimedia
Qt Multimedia utilise maintenant GStreamer 1.0 et ajoute de nombreuses nouvelles fonctionnalités. Une des fonctionnalités les plus intéressantes est un nouveau cadre de travail concernant le filtrage vidéo. Ce dernier facilitera l'intégration de bibliothèques comme OpenCV ou de bibliothèques de calcul comme OpenCL ou CUDA, via les éléments VideoOutput. Qt Multimedia se voit par ailleurs adjoindre une nouvelle API pour contrôler les paramètres du viseur et gère mieux la caméra sous iOS.
Qt Quick et les contrôles Qt Quick
Qt 5.5 introduit un nouveau contrôle, TreeView. Par ailleurs, tous les contrôles précédemment fournis dans la version commerciale (CircularGauge, DelayButton, Dial, Gauge, PieMenu, StatusIndicator, ToggleButton, Tumbler et TumblerColumn) sont maintenant disponibles dans la version libre. Ces anciens contrôles sont maintenant disponibles grâce à l'import QtQuick.Extras.
Le rendu dans un fil d'exécution distinct via QQuickRenderControl est maintenant possible. Sous Windows, Qt Quick est maintenant traité par défaut dans la boucle de rendu parallèle de Qt Quick lorsqu'OpenGL est utilisé. Le pavé tactile d'OS X est maintenant mieux pris en charge, le pincement est maintenant géré via PinchArea, tout comme le zoom intelligent qui fait son apparition dans cette version.
Le moteur de Qt Quick gère maintenant les tableaux typés de JavaScript. Il est maintenant facile d'exposer des types C++ définis par l'utilisateur dans un contexte JavaScript / QML et dans le QJSEngine. En outre, le moteur Qt Quick a reçu différentes améliorations des performances.
Mise à jour de Qt WebEngine et de Qt WebView
Qt WebEngine a été mis à jour et contient maintenant la version 40 de Chromium, qui ajoute de nouvelles API. Qt WebEngine expose maintenant des API concernant le téléchargement de fichiers, la géolocalisation, le cache et les cookies, mais aussi les paramètres. Par ailleurs, de nombreuses API précédemment marquées comme expérimentales sont maintenant publiques. Qt WebChannel a été intégré dans la communication interprocessus de Chromium, facilitant et améliorant la sécurité des applications hybrides. Qt WebEngine met par ailleurs à disposition une nouvelle API pour les scripts utilisateurs, qui en combinaison avec Qt WebChannel facilite le développement de puissantes applications hybrides.
Qt WebView est maintenant implémentée nativement sous OS X (en plus d'Android et d'iOS). Qt WebView expose maintenant une API concernant les notifications de statuts, le contenu HTML ou bien le JavaScript en cours d'exécution.
Autres nouvelles fonctionnalités
Qt Bluetooth gère totalement le Bluetooth basse consommation, tant sur Android qu'iOS. Par ailleurs, le Bluetooth classique est maintenant supporté sous iOS.
Le module Qt Network n'est pas en reste, avec une nouvelle implémentation de SSL pour iOS et OS X reposant sur le « Secure Transport », les suites d'algorithmes TLS PSK, ainsi que les certificats à courbe elliptique.
Sous Linux, Qt NFC dispose maintenant d'une implémentation reposant sur neard et différentes améliorations ont été apportées à QPA.
Pour plus de détails, vous pouvez consulter la liste des nouvelles fonctionnalités de Qt 5.5.
Configurations compatibles
Afin de mieux supporter Qt WebEngine ainsi que de nouvelles fonctionnalités profitant des nouveaux compilateurs, le système d'intégration continue et de distribution a été mis à jour pour Qt 5.5. Pour ajouter ces nouvelles configurations, d'autres plus anciennes devront être abandonnées, comme Ubuntu 11.10 et 12.04 ; OS X 10.7 ne sera supporté qu'en citoyen de seconde zone. Par contre, Qt 5.5 fonctionnera sur Windows 10 (lorsqu'il sera disponible) ainsi que RedHat Enterprise Linux 6.6.
Vous trouverez plus de détails sur la nouvelle configuration du système d'intégration continue sur le wiki.
Modules dépréciés
Les modules Qt WebKit, Qt Declarative (Qt Quick 1) et Qt Script sont maintenant dépréciés : en effet, Qt WebEngine est le remplaçant direct de Qt WebKit, Qt Quick 2 remplace Qt Quick 1 et les fonctionnalités de Qt QML remplacent celles de Qt Script. Pas de panique, tous ces modules sont toujours inclus dans Qt 5.5, mais seront supprimés dans une version ultérieure de Qt.
Obtenir Qt 5.5 Alpha
Les sources de Qt 5.5 alpha sont disponibles sur la page des téléchargements. Les fichiers binaires seront fournis lors de la sortie de la bêta, mais des instantanés seront quand même disponibles avant.
Aidez à parfaire Qt 5.5. Testez Qt 5.5 Alpha et signalez tout défaut sur l'application de suivi de bogues.
Source : « Qt 5.5 Alpha Available »
Partager