Une offre Web renouvelée
HTML5 et les technologies dites « Web » occupent une place toujours plus importante, c'est pourquoi lors de ces dernières années l'offre Web de Qt a été complètement renouvelée. Le module Qt WebEngine est l'aboutissement d'un projet de recherche et développement de longue haleine, qui se trouve être une adaptation du moteur Web Chromium pour Qt. Ce moteur est maintenant pleinement supporté sur la plupart des plates-formes de bureau et embarquées. Qt WebEngine propose une API intuitive permettant de présenter du contenu Web dans des applications reposant sur Qt Widgets ou Qt Quick.
Le nouveau module Qt WebChannel permet une interaction facile entre QML/C++ et HTML/JavaScript. Cela permet la création d’applications hybrides faisant à la fois appel à Qt et aux technologies Web. La communication entre ces deux mondes se fait en exposant des QObject dans un contexte Web. Ce module fonctionne non seulement avec Qt WebEngine, mais aussi avec n'importe quel moteur Web gérant les Web sockets.
Troisième nouveauté, Qt 5.4 introduit un support encore limité du nouveau module Qt WebView. Ce nouveau module offre une API volontairement limitée, permettant d'embarquer une vue Web, native pour le système d'exploitation sous-jacent, dans les cas où le Qt WebEngine n'est pas nécessaire ou bien quand son usage est impossible de par les restrictions imposées par le système d'exploitation. Dans Qt 5.4, le module Qt WebView est disponible sous iOS et Android.
Grâce au module Qt WebSockets introduit par Qt 5.3, Qt propose maintenant un support de qualité pour de nombreuses technologies Web de dernier cri, vous permettant d’interagir facilement avec ce type de contenu. Les modules Qt WebEngine et Qt WebView facilitent fortement l’intégration de contenu HTML5 au sein d’une application Qt, tandis que Qt WebChannel rend possible la communication entre Qt et HTML5, nécessaire dans le cas d'applications hybrides ; finalement, Qt WebSockets permet la communication entre Qt et différents services Web.
Qt 5.4 contient toujours l'ancien module Qt WebKit. Il est toujours supporté, mais, à partir de maintenant, il est considéré comme terminé et ne recevra donc aucune nouvelle fonctionnalité. Par ailleurs, ce module sera déprécié dans une prochaine version du framework, étant donné que Qt WebEngine propose toutes les fonctionnalités attendues. Dans la plupart des cas, la migration de Qt WebKit vers Qt WebEngine ne pose aucun souci. Si vous démarrez un projet faisant appel à des technologies Web, vous êtes invités à directement démarrer avec Qt WebEngine.
Qt pour WinRT : une offre multiplate-forme toujours plus riche
La seconde grosse nouveauté pour Qt 5.4 est la gestion complète de Windows Runtime. Qt pour Windows Runtime fit son apparition en qualité de Beta dans Qt 5.3 et est désormais mature. Avec Qt pour Windows Runtime, vous pouvez maintenant développer des applications pour le Windows Store et ainsi viser les Windows Phone (8.1 et ultérieur) ainsi que Windows (8.1 et ultérieur).
Mise à jour de la pile graphique
Qt 5.4 apporte un certain nombre de nouvelles fonctionnalités et d'améliorations dans le domaine des graphismes. Ainsi, cette nouvelle version introduit une gestion améliorée des écrans à haute densité pour les plates-formes de bureau. Ce support est toujours considéré comme expérimental. Si ce domaine vous intéresse, vous pouvez consulter la documentation à ce sujet.
L'utilisation d'OpenGL sous Windows était parfois à l'origine de problèmes, notamment du fait de l'absence de bons pilotes. Pour faciliter la résolution de ce problème, Qt est maintenant capable de dynamiquement changer d'implémentation OpenGL au démarrage de l'application : Qt choisira entre l'implémentation native d'OpenGL et ANGLE, qui fera ensuite appel à DirectX ou à un rendu logiciel en cas de besoin.
Une autre amélioration de la pile graphique consiste en l'introduction de la nouvelle classe QOpenGLWidget, qui remplace la vieillissante classe QGLWidget de Qt 4. Cela permet de déprécier le module Qt OpenGL, étant donné que toutes ses fonctionnalités sont maintenant disponibles dans Qt Gui. QOpenGLContext est maintenant capable d'encapsuler un contexte natif existant. Vous pouvez utiliser la nouvelle classe QQuickRenderControl pour afficher une scène Qt Quick dans un tampon hors-champ. Pour plus de détails, consultez l’article sur ces nouvelles classes.
Enfin, Qt 5.4 contient une prévue technologique du nouveau module Qt Canvas3D, qui implémente une API similaire à WebGL pour Qt Quick. Ce module facilite grandement l'utilisation de JavaScript faisant appel à WebGL avec du Qt Quick.
Qt 5.4 contient tellement de nouveautés qu'il est impossible de toutes les détailler. Avant de poursuivre la lecture de cette actualité, vous êtes invité à visualiser cette vidéo :
Une quantité importante de nouvelles fonctionnalités est disponible dans cette nouvelle version de Qt, vous trouverez ci-joint un descriptif des plus significatifs.
Qt supporte maintenant le Bluetooth basse consommation sous Linux via BlueZ. Le support d'autres plates-formes fera son apparition dans les prochaines versions du framework. Le Bluetooth basse consommation rend possible la communication avec de nombreux appareils Bluetooth, notamment les objets et vêtements connectés.
Du côté d'Android, les contrôles Qt Quick ont maintenant une apparence native, les paquets de déploiement sont plus petits et les temps de démarrage sont réduits. Les dernières versions d'iOS et d’OS X sont maintenant gérées, ainsi que Xcode 6 ou encore le nouveau processus de signature de code, obligatoire pour publier sur l'App Store. De gros efforts ont été consentis pour corriger les différentes erreurs relatives au nouveau style d’OS X 10.10 (Yosemite).
Le support des machines à états en QML fait son apparition via l'import QtQml.StateMachine. La classe QStorageInfo, petit dernier au sein du module Qt Core, permet l'obtention d'informations concernant les périphériques et volumes montés.
Qt 5.4 est livré avec une nouvelle version de Qt Creator, à savoir Qt Creator 3.3. Pour plus détails sur cette nouvelle mouture, vous pouvez consulter l’article dédié.
Introduction de la LGPL v3
Comme annoncé précédemment, la version open source de Qt 5.4 est maintenant disponible sous les termes de la LGPLv3. Cette nouvelle licence permet à la Qt Company d'offrir des composants à forte valeur ajoutée pour tous les utilisateurs de Qt sans faire de concessions du côté commercial.
Dans Qt 5.4, certains modules sont uniquement disponibles sous GPL/LGPLv3 ou sous licence commerciale : Qt WebEngine ainsi que la prévue technologique de Qt WebView, mais aussi Qt Canvas 3D. Le style Android est uniquement disponible sous LGPLv3 ou sous une licence commerciale. Vous trouverez plus d'informations à ce sujet sur le nouveau site de Qt.
Remerciements à la communauté
Qt 5.4 introduit un nombre important de nouvelles fonctionnalités et d'améliorations majeures. Certaines d’entre elles n'auraient jamais pu voir le jour sans les contributions de la communauté et d'entreprises partenaires, qui contribuent à Qt sans être affiliées à la Qt Company.
Article original : « Qt 5.4 released »