Qt 4.6 Release Candidate

Un peu plus de détails en français sur cette nouvelle version.

Cette version RC est très proche de la version finale : depuis la version beta, en fait, peu de choses ont changé – des corrections de bugs, l’affinage des nouvelles API, mais aussi la prise en compte de remarques des utilisateurs.

Son but ? Recueillir un maximum d’opinions sur Qt, des rapports sur les bugs critiques et moins importants. La version finale est toujours prévue pour fin 2009.

Pour la première fois, cette version est disponible sous une foultitude de formes :
– Les habituelles sources,
– Les binaires habituels pour GCC sous Windows, Linux, Mac OS X (Carbon & Cocoa) et Symbian,
– Les nouveaux binaires : pour Visual Studio 2008.

Il faut encore remarquer une nouveauté à ce niveau : GCC 3 n’est plus fourni par défaut avec Qt Creator, tout a été mis à jour vers GCC 4.4 (y compris les binaires fournis). Sous Windows, l’installateur ne propose plus de télécharger MinGW, mais bien d’utiliser une version installée sur votre ordinateur. Une version de MinGW est disponible sur le site de Qt avec quelques patchs pour le compilateur et le support de nouvelles API.

Que manque-t-il encore à cette version avant la sortie de la version finale ? Si vous l’avez déjà utilisé, y a-t-il nombre de bugs à corriger ?

Réagissez !

Qt Mobility 1.1.0 – la beta

Le paquet Qt Mobility 1.1.0 est désormais disponible en beta ! Il fournit tout un set de nouvelles API, de grandes améliorations des API existantes ainsi que le support de nouvelles plateformes. Parmi les nouvelles API, nous pouvons compter Organizer, Versit/Organizer, Document Gallery et Feedback. Du côté des améliorations, l’API Location a été étendue avec les fonctionnalités si bien nommées Maps, Navigation et Landmarks ; l’API Multimedia a reçu des fonctionnalités de Camera. En images, la démo Mapviewer sur plusieurs plateformes :

Mapviewer Demo sur Maemo 5

Mapviewer Demo sur Symbian^3

De plus, des bindings QML sont disponibles, ce qui ne laisse présager que le meilleur tant pour les développeurs que les designers d’interfaces ! Des interfaces animées, riches, puissantes et mobiles développées en un rien de temps, une technologie apparue avec Qt 4.7.

Au niveau du support des plateformes mobiles, MeeGo, le nouvel OS développé par Intel et Nokia, est également supporté, partiellement pour le moment. Cependant, faisant partie du tier 1 des plateformes supportées, ces manques vont bientôt être comblés ; l’objectif est que MeeGo devienne la plateforme principale pour Qt Mobility.

Un changement très important est à noter pour cette version : l’API Telephony Events n’est plus et ne sera plus disponible dans Qt Mobility. Pourquoi ? Cette décision se base sur le constat que cette API n’apportait au final pas grand chose aux développeurs tiers. Elle avait été créée pour contrôler les événements de téléphonie du mobile ; cet utilisation est fort valable mais requiert beaucoup plus de recherche en termes d’événements et dans le domaine de la téléphonie pour voir comment répondre au mieux aux besoins des utilisateurs. Pendant cette phase de Technology Preview, nous avons remarqué que le peu de fonctionnalités dans une API aussi prometteuse ne pouvait que déconcerter les utilisateurs de cette API. Par conséquent, son développement a été arrêté.

Les bindings QML requièrent Qt 4.7, évidemment. Le paquet Qt Mobility 1.1 beta est disponible pour les plateformes Symbian en utilisant le paquet SIS pour Symbian. Il supporte aussi Maemo. Nous n’avons pas de nouvelle sur le firmware de Maemo 5 à communiquer pour le moment, nous vous tiendront au courant dès que nous aurons quelque chose.

Télécharger Qt Mobility 1.1.0 beta !

Qt Mobility 1.2, la Technology Preview se focalise sur le support de MeeGo

L’équipe de développement de Qt Mobility aimerait nous proposer ses avancées sur la version 1.2 – actuellement toujours en l’état de Technology Preview, rien n’est donc finalisé – ainsi que, comme cela était prévu pour la version 1.2, des paquets RPM pour tester sur MeeGo (en effet, l’objectif principal de cette version était le support de cette plateforme). Les sources sont aussi évidemment disponibles en paquets séparés, si vous souhaitez tester cette technology preview sous d’autres plateformes (pas de paquet disponible pour Symbian ou autre). Cette version de Qt Mobility requiert au moins Qt 4.7.0.

La version beta est prévue pour la dernière semaine de janvier 2011 ; ensuite, la version finale, pour début 2011 (pas plus de détails pour le moment). Maemo 5 ne sera pas supporté dans cette version officiellement, des paquets compilés par les communautés seront très vraisemblablement disponibles, cette distribution ayant fusionné avec Moblin d’Intel pour former MeeGo ; il sera donc normalement possible de mettre à jour tout système utilisant Maemo 5 et passer à MeeGo.

nt fusionné avec Moblin d’Intel pour former MeeGo ; il sera donc normalement possible de mettre à jour tout système utilisant Maemo 5 et passer à MeeGo.

Quelles sont les nouvelles fonctionnalités ?

Deux nouveautés sont à mettre sur le devant de la scène : les connectivités Bluetooth et NFC (Near Field Communication). Vous pouvez aussi consulter la roadmap complète. Quelques problèmes sont d’ores et déjà connus pour cette version.

Installation

Sous MeeGo, ces quelques commandes installeront la dernière version :

sudo zypper addrepo http://download.meego.com/live/devel:/qt-mtf:/qt-mobility:/1.2tp1/testing/  mobility-1.2-tp1
 
sudo zypper addrepo http://download.meego.com/live/Trunk:/Testing/standard/ trunk-testing
 
sudo zypper refresh
 
sudo zypper install qt-mobility
 
sudo zypper install qt-mobility-examples

Quelques pensées sur Qt 5, quelles seront ses lignes directrices ?

Six ans déjà que Qt 4.0 est sorti, en juin 2005. Depuis lors, beaucoup de choses ont changé dans l’industrie du logiciel : le développement se déroulait principalement pour le desktop, alors que les périphériques mobiles se sont répandus. L’interface utilisateur est passée de la souris au toucher, du statique au fluide. Sept versions mineures depuis cette époque ont permis à Qt de s’approcher des demandes actuelles, avec la sortie de Qt Quick par exemple. La base d’utilisateurs de Qt ne cessant de croître, il faut toujours rester proche des besoins nouveaux des développeurs.

Ainsi, pour rester à la pointe de la technologie et un framework leader dans l’industrie en général, Qt doit continuer à se renouveler. Qt 4 a été une évolution, les prochaines versions de Qt devront être dans sa perspective technique. Ces dernières années, de nouvelles fondations ont été esquissées pour la prochaine génération : Qt Quick, QML Scenegraph, Lighthouse, Qt WebKit.

En plus de son orientation vers l’open gouvernance, voici quelques pistes architecturales pour Qt 5.

Objectifs pour Qt 5

Mieux utiliser le GPU, pour obtenir des applications graphiques fluides et performantes, même avec peu de ressources.
Rendre la création d’applications avancées plus facile et plus rapide, avec QML et JavaScript.
Faire en sorte que les applications connectées au Web soient aussi puissantes que possible, notamment au niveau de l’insertion de contenu Web dans des applications Qt.
Réduire la quantité de code requise et sa complexité pour implémenter et maintenir un port.

Qt 4.7 contient encore du vieux code qui empêche certaines évolutions et Qt d’être aussi bon que possible pour la création d’applications next-gen. La plupart du code convient encore, alors que certaines parties bloquent le chemin de Qt 4.x.

Faciliter la migration entre Qt 4 et Qt 5

Avec Qt 5, il est prévu d’effectuer des changements bien précis dans les API pour abandonner certaines limitations du passé. La difficulté du portage de Qt 3 vers Qt 4 ne sera pas réitérée : la compatibilité des sources sera conservée pour la majorité des cas, alors que, à d’autres endroits, il sera nécessaire de la briser.

Il est actuellement envisagé de se focaliser sur un petit ensemble de systèmes supportés (Wayland, X11 pour Linux, en plus de Mac OS X et de Windows), le nombre total de plateformes supportées dépendra de l’activité de la communauté, suivant le principe de l’open gouvernance. Les autres systèmes d’exploitation ne seront pas maintenus par Nokia (principalement les UNIX commerciaux). Le but de Qt 5 est de fournir les meilleures fonctionnalités sur chaque plateforme, ce qui implique que l’on va d’abord fournir des fonctionnalités plus différenciées entre les OS, tout en offrant une réutilisation du code aussi efficace que possible pour la majorité des plateformes.

Développé ouvertement

Le modèle de développement va complètement changer entre Qt 4 et Qt 5, changement qui se profile depuis déjà longtemps : Qt 4 a principalement été développé par Trolltech puis Nokia, le fruit de ce travail a été publié. Qt 5 se veut développé par la communauté, un projet open source dès le tout début. Il n’y aura pas de différences entre un développeur de chez Nokia et un contributeur externe.

Vision

Qt 5 devrait être la fondation d’une nouvelle manière de développer des applications. En offrant toute la puissance de Qt en C++ natif, le focus sera déplacé vers un modèle, où le C++ est principalement utilisé pour implémenter les fonctionnalités derrière Qt Quick. Qt 5 mettra Qt Quick au centre, sans se couper du code déjà existant, il s’agira plus d’une restructuration. Les applications Qt/C++ traditionnelles vont continuer à fonctionner avec Qt 5, même si quelques changements vont être apportés sur les fondements de la manière de développer des applications.

On devrait s’attendre à ce que toutes les IU soient écrites en QML. JavaScript deviendra un citoyen de première classe de l’environnement Qt : beaucoup de logique, voire toute une application sera écrite en JavaScript, non en C++. Le but est que les développeurs commencent d’abord avec QML et JavaScript pour n’implémenter des fonctionnalités en C++ que lorsque cela est nécessaire. Dans ce cas, toute la puissance des API C++ pourra être utilisée pour implémenter des fonctionnalités plus complexes ou dont l’exécution doit être très rapide.

Le modèle basé sur QWidget sera conservé, les API liées aussi, pour la compatibilité, mais le long terme devrait voir QML comme le futur des interfaces utilisateur pour desktop. La solution retenue sera probablement des composants basés sur QML qui s’intègrent dans le style natif des plateformes desktop.

Les quatre grands changements architecturaux

Les premiers changements sont déjà en cours depuis un certain temps, le travail débute pour le reste. La plupart de ces changements pourraient être effectués avant août.

Changer l’architecture de la pile graphique

Qt Quick et QML Scenegraph seront au centre de la nouvelle architecture. QPainter sera toujours disponible et est très utile pour bien des choses, mais il ne sera plus utilisé pour l’interface principale. Qt aura besoin d’OpenGL (ES) 2.0 pour fonctionner. Les QWidget seront rendus par-dessus le graphe de scène, pas l’inverse comme actuellement.

Qt Components et Qt Mobility feront donc partie intégrante de Qt, plus des modules avec un statut spécial.

Baser tous les ports de Qt sur Lighthouse

Le projet Lighthouse a été lancé pour fournir une meilleure manière d’abstraire l’intégration au système de fenêtrage que ce qui est actuellement disponible. La maturité est proche avec Qt 4.8, son utilisation sera probablement requise pour Qt 5.0.

Utiliser une structure de répertoires modulaire

Beaucoup a déjà été fait ces dernières semaines, le travail est d’ores et déjà visible dans les nouveaux dépôts : http://qt.gitorious.org/qt. Cette modularisation va permettre de faciliter et d’accélérer l’intégration de contributions à Qt.

Séparer les fonctionnalités liées à QWidget dans une bibliothèque distincte

Les classes basées sur QWidget sont actuellement très importantes ; le modèle va cependant changer et les IU seront principalement faites avec QML. Séparer les fonctionnalités basées sur QWidget est donc une manière d’obtenir une architecture propre dans Qt 5.

Beta fin 2011, version finale en 2012

On ne doit pas trop changer dans les fondations de Qt, on veut aussi rendre facile le portage d’applications vers Qt 5 : on ne peut donc pas trop modifier la base de code déjà en place. Beaucoup des changements proposés se basent sur la modularisation de Qt, avec chaque bibliothèque partagée dans son propre répertoire. On devra supprimer quelques API rarement utilisées si elles se révèlent contraignantes à maintenir sans empêcher d’avancer. Du code en version beta devrait être disponible fin 2011, avec une version finale pour 2012.

Merci à Jacques Thery pour sa relecture !

Qt 4.8 Technology Preview

Qt 4.8 est maintenant disponible pour test et retours de la part de la communauté !

La version 4.8 de Qt va contenir beaucoup d’améliorations au niveau de la qualité du code et des performances, fruits des recherches de ces douze derniers mois, en bénéficie par exemple le système de fichiers. Il inclut aussi la couche d’abstraction de la plateforme Lighthouse, qui permet un portage de Qt sur d’autres systèmes graphiques plus simple pour des tiers. Autre changement important, les améliorations dans la gestion du réseau sur Symbian.

Les paquets disponibles actuellement ont été testés sur Windows 7, Mac OS X 10.6, Linux et Symbian^3. La liste des plateformes que supportera effectivement Qt 4.8 sera diffusée en temps et en heure. Une liste des fonctionnalités d’ores et déjà dépréciées est disponible.

La beta de Qt 4.8 devrait être disponible dans les prochaines semaines, la Release Candidate dans la seconde moitié de 2011. Elles ne seront disponibles que par l’intermédiaire du Qt SDK.

Les sources : http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.8.0-tp.tar.gz

Moniteur de performances QML

Qt Creator 2.2 sortant dans peu de temps, le développement de nouvelles fonctionnalités dans une nouvelle branche peut débuter. L’une d’entre elles est un moniteur de performances QML, un petit outil, qui fera partie du nouveau mode d’analyse. Il pourra être utilisé pour profiler les applications Qt Quick. On peut ainsi inspecter les évaluations de bindings, la gestion des signaux, les opérations de dessin lors de l’exécution du code QML. Cela peut être très utile pour identifier de potentiels goulots d’étranglement, particulièrement dans l’évaluation des bindings. Voici une petite vidéo introduisant la fonctionnalité :

Ici, le moniteur est lancé sur une application Qt Quick créée dans l’assistant de Qt Creator en important la démo samegame.

Ce nouvel outil a été rendu possible grâce aux trolls de Brisbane, qui ont démarré ce projet. Il s’agit cependant d’une fonctionnalité dans ses tout débuts, beaucoup d’options manquent encore à l’appel et il pourra même être instable.

Il est aussi possible de profiler sur un périphérique mobile en lançant l’application Qt Quick avec les paramètres en ligne de commande -qmljsdebugger=port:33456 et en y attachant le profileur en utilisant les options dans le menu de débogage. Cela étant dit, on ne peut pas encore garantir que cela fonctionnera dans tous les cas, des tests plus approfondis doivent encore être menés.

Source : http://labs.qt.nokia.com/2011/04/07/qml-perfomance-monitor/

Release candidate du Qt SDK 1.1

Aujourd’hui est disponible le Qt SDK en version 1.1 release candidate, étape majeure sur le chemin de la version finale, se basant entièrement sur la beta, déjà disponible. La version finale de ce SDK permettra de soumettre directement des applications basées sur Qt 4.7 sur Ovi Store.

Quelles sont les nouveautés depuis la beta ?

  • Qt 4.7.3, pour le desktop et Symbian, pas encore disponible officiellement ;
  • Qt Mobility 1.1.2 ;
  • Qt Assistant ajouté comme paquet séparé (demande des développeurs) ;
  • l’installeur utilise le proxy système sous Linux ;
  • Notification API déplacé depuis expérimental vers les API supplémentaires ;
  • corrections de bogues dans le Qt Simulator et pour l’installation et la mise à jour.

De plus, Qt 4.7 ne sera plus supporté pour S60, troisième édition, on peut toujours créer des applications pour cette plateforme à l’aide de Qt 4.6 et de Qt Mobility 1.1.2. Ce changement a été induit par les retours des beta testeurs.

Aussi, à la sortie du Qt SDK 1.1, la version 1.0 ne sera plus disponible. En effet, la nouvelle version 1.1 supportera aussi bien Qt 4.6 que Qt 4.7, rendant la version 1.0 inutile.

On peut le télécharger sur le Forum Nokia.

Sources : http://labs.qt.nokia.com/2011/04/06/qt-sdk-1-1-rc-released/ et http://blogs.forum.nokia.com/blog/nokia-developer-news/2011/04/06/qt-sdk-1-1-release-candidate-available.

Les QML Templates arrivent

La bibliothèque de templates QML (QML UI Templates Library) contient des composants réutilisables d’interfaces utilisateur pour QML, la technologie d’interfaces graphiques déclaratives de Qt.

Cette bibliothèque fournit des outils basiques pour construire une application QML, alors que les templates mettent en évidence les bonnes pratiques de conception d’interface. Les styles et graphiques utilisés se basent sur un modèle unique que l’on peut réutiliser dans toute application. On peut aussi personnaliser ces éléments (couleur, style, graphiques…).

Ses éléments sont d’ores et déjà utilisé dans deux applications d’exemple, RSSReader et Restaurant. Les composants disponibles ne sont pas des widgets élémentaires, ils sont déjà disponibles dans QML, mais bien des templates plus complets comme des vues de listes et des détails intégrés.



Le site officiel

Source : http://www.forum.nokia.com/Develop/Qt/QML_templates/

PySide 1.0.1 est sorti, avec d’autres nouveautés

La version 1.0.1 de PySide est sortie, elle ne s’occupe que de corriger des bogues de la version précédente. Ce n’est pas la plus grande nouvelle concernant le binding Python de Qt pour cette fois-ci. La dernière version de PySide.

Il faut aussi remarquer l’apparition de nightly builds, des paquets de la version de développement de PySide, donc moins stable qu’une sortie officielle. Ils peuvent être utilisés pour voir ce que contiendra la prochaine version de PySide et améliorer le retour utilisateur au sujet notamment des bogues. Ces fichiers sont mis à jour chaque nuit à partir du repository Git à 1h, GMT -3. Les nightly build.

Aussi, PySide supporte maintenant officiellement MeeGo, avec un paquet basé sur les fichiers de spécification d’openSUSE. Toutes les informations sont disponibles sur la page concernée du wiki.

Ainsi, PySide est officiellement disponible sur Windows, Mac OS X, Maemo 5, MeeGo et toutes les distributions Linux majeures.

Sources : http://www.pyside.org/2011/04/pyside-1-0-1-python-for-qt-released/, http://www.pyside.org/2011/03/pyside-nightly-builds/, http://www.pyside.org/2011/03/pyside-1-0-meego/ et http://lists.pyside.org/pipermail/py…il/002328.html

Qt Creator 2.2 en beta

La dernière version de Qt Creator, la 2.2, arrive en beta aujourd’hui. En plus des habituelles corrections de bogues de la version précédente, mais surtout quelques nouvelles fonctionnalités très utiles pour un EDI, rendant Qt Creator encore plus puissant et flexible.

Notons l’amélioration du support de QML (principalement dans l’édition textuelle de code QML), du débogage (le moteur CDB autorise maintenant le débogage d’applications 32 et 64 bits séparément, ainsi que le débogage de code mixte C++/Qt) et des outils de compilation. Aussi, les outils de débogage sont maintenant punaisables !

Bien d’autres choses sont encore prévues pour la version finale de Qt Creator 2.2, comme l’intégration d’outils externes améliorées, la configuration de chaînes de compilation manuelle, le changement des définitions de types MIME, ce qui rendra possible l’utilisation d’extensions différentes pour les fichiers source ou d’en-tête. Ce paramétrage se situe dans la page Environment > MIME Types des préférences.

Plus en détail, on trouve les snippets configurables, ajoutés aux différents éditeurs, qui fournissaient déjà moult snippets prédéfinis, que ce soit en C++ ou en QML. On peut les configurer dans les préférences, onglet Text Editor > Snippets.

Sources : http://blog.qt.nokia.com/2011/03/24/qt-creator-2-2-beta-released/ et http://labs.qt.nokia.com/2011/03/24/qt-creator-2-2-beta-release/