Le cycle de développement de Qt 5.2 a démarré la semaine dernière avec la réunification de la branche développement avec la branche stable. Comme première pierre de cette procédure de sortie, une version alpha est rendue disponible aujourd'hui. Les différentes versions sont disponibles depuis la zone de téléchargements du Qt Project. Les paquets ne contiennent que les sources et sont principalement destinés aux utilisateurs habitués à Qt. Si vous n'êtes pas familier avec la compilation de Qt depuis les sources, vous devriez attendre la version beta, disponible dans les prochaines semaines.
Outre de nombreuses corrections de bogues, Qt 5.2 offre énormément de nouvelles possibilités, en voici les principales.
Support d'Android et d'iOS
Qt 5.2 est la première version qui supporte totalement le développement pour Android et iOS. Énormément de travail a été effectué afin d'améliorer le support de ces deux plates-formes, ce qui fait maintenant de Qt une solution idéale de développement pour ces deux systèmes d'exploitation mobiles.
À l'exception de WebKit, tous les principaux modules sont supportés à la fois par Android et iOS. Cela inclut Qt Core, Qt Network, Qt Gui, Qt Widgets, Qt Qml, Qt Quick et Qt Multimedia. Concernant les modules additionnels, sont supportés Qt Sensors, Qt Graphical Effects, Qt Script et Qt SVG. Sous Android, un module additionnel nommé Qt Android Extras fait son apparition.
Nouveaux modules
Avec Qt 5.2, plusieurs nouveaux modules additionnels font leur apparition :
- Qt Bluetooth est supporté par Linux avec Bluez 4.x et par Blackberry ;
- Qt NFC est supporté par Blackberry ;
- Qt Positioning est supporté par toutes les plates-formes en utilisant les données NMEA et sous Linux grâce à GeoClue ;
- Qt Windows Extras interface du code natif Windows ;
- Qt Mac Extras interface du code natif Mac OS X ;
- Qt Android Extras interface du code natif Android.
Les trois derniers modules additionnels contiennent du code spécifique aux différentes plates-formes et complètent le module Qt X11 Extras introduit par Qt 5.1.
Les modules de base
Qt Core se voit ajouter de nouvelles fonctionnalités, les plus importantes sont apportées par les classes QTimezone et QCollator. QTimeZone s'intègre avec QDatetime et permet maintenant une gestion correcte des fuseaux horaires. QCollator permet de trier des chaînes de caractères utilisant des caractères spécifiques à certaines locales. Qt Network a reçu des améliorations quant à la gestion du SSL. Qt Widgets, en plus d'avoir reçu de nombreux correctifs, se voit doté d'une nouvelle classe, QKeySequenceEdit. Le support de l'accessibilité a été grandement amélioré avec un support d'OS X, un support basique d'Android et un lot d'API publiques qui implémentent un support de l'accessibilité pour les widgets personnalisés..
Qt QML et Qt Quick
Le moteur QML a fait, durant ces neuf derniers mois, l'objet d'un chantier de grande ampleur dont les premiers bénéfices sont déjà visibiles. Qt QML utilise maintenant son propre moteur JavaScript et ne dépend plus de V8. Ainsi, la bibliothèque QtJSBackend a disparu.
Qt utilise maintenant son propre moteur en remplacement de V8, et ce pour plusieurs raisons. Un des avantages qui saute aux yeux est qu'il est enfin possible d'utiliser Qt Quick 2 sur iOS. En plus de cela, le poids de la pile QML a été réduit autour de 5MB, avec une bibliothèque partagée en moins à déployer. Enfin, cela rend toute la pile plus maintenable et facilitera les améliorations dans le futur.
Alors que le nouveau moteur est quelque peu plus lent que V8 lorsqu'il s'agit de traiter uniquement du JavaScript, il est optimisé pour la plupart des cas d'utilisations de QML et rend Qt Quick plus performant. Il est encore question de travail sur les performances durant ce cycle de sortie. Des performances équivalentes à Qt Script dans le traitement de JavaScript pur sont attendues pour la version 5.2.0.Concernant les liaisons QML, des améliorations seront visibles dans la plupart des cas.
Toujours à propos de QML, Qt QML supporte dès à présent les sélecteurs de fichiers pour faciliter l'adaptabilité de votre code QML aux différents systèmes d'exploitations et à d'autres variables.
Des améliorations significatives ont été apportées à Qt Quick. L'amélioration majeure est le nouveau graphe de scène qui réduit de manière significative l'utilisation du CPU et du GPU dans de très nombreux cas d'utilisation. Le nouveau type QML, Animator, permet de réaliser des animations qui s'exécutent uniquement dans le fil d'exécution de rendu. Ces dernières s'exécuteront ainsi parfaitement même si de lourds calculs ont lieu dans le fil d'exécution principal.
Les Qt Quick Controls ont maintenant de nouveaux contrôles à proposer. Les interrupteurs et indicateurs d'utilisation ont été ajoutés, la vue de table supporte désormais le déplacement de colonnes ainsi que les sélections étendues. En plus de cela, le déploiement a été grandement facilité.
Qt Creator
Enfin, il est prévu de rendre disponible Qt 5.2 en même temps que la nouvelle version de Qt Creator, Qt Creator 3.0. Cette nouvelle version apportera un support amélioré d'Android, un premier support d'iOS, des extensions pour gérer plusieurs moniteurs, un nettoyage de printemps dans les API des plugins pour Qt Creator ainsi qu'un support initial de lldb.
Calendrier des sorties
Comme vous avez pu le constater, Qt 5.2 apporte énormément de nouvelles fonctionnalités et le support des systèmes d'exploitation mobiles constitue un véritable bond de géant. Après la sortie de cette version alpha, toutes les équipes travaillent très dur afin de sortir une version beta aussi rapidement que possible. Cette dernière fournira des paquets binaires. Après, les efforts seront focalisés sur la sortie d'une release candidate et de la version finale de Qt 5.2 qui est attendue pour la fin novembre.
De nombreuses conférences, données lors des Qt Developer days à Berlin et San Francisco, auront pour sujet Qt 5.2 et ses nouvelles fonctionnalités.
Un maximum de personnes est invité à essayer Qt 5.2 et à remonter les bogues sur le l'outil de suivi.
Lire l'article original : Qt 5.2 Alpha available
Partager