Déjà annoncée fin septembre, la nouvelle version du
framework Qt vient d'être
publiée par Nokia. Cette bibliothèque, conçue initialement pour
le langage C++, mais aussi accessible
depuis Java ou
Python, permet notamment le développement d'applications graphiques complètes compatibles avec de nombreuses plates-formes.
La version 4.6 de Qt, publiée le 1 décembre, apporte des nouveautés de différentes natures : outre quelques corrections de bugs ou optimisations, les développeurs ont cherché à proposer de nouvelles fonctionnalités, dont certaines marquent la transition vers les futures versions de Qt.
Un environnement de développement complet
Qt permet le développement d'applications portables et complètes, puisque la bibliothèque propose aussi bien des outils de création d'interfaces riches que de manipulation du réseau (via
QtNetwork), de rendu Web (via
QtWebKit), etc. Si la version 4.6 de Qt présente de nombreuses nouveautés techniques, elle améliore aussi le support des systèmes
Windows 7 et
Mac OS 10.6, sortis récemment.
Mais de nouvelles plates-formes sont également supportées, notamment le système pour téléphones et PDA
Symbian OS, qui pourra désormais
bénéficier d'applications écrites avec Qt. Sur son blog, l'un des développeurs de Qt décrit
les étapes de ce portage, commencé en mars 2008. L'enjeu est, selon Nokia, d'environ
80 millions de machines sous Symbian OS qui pourraient désormais faire fonctionner des applications développées avec Qt.
Qt Creator
Également multiplate-forme puisque programmé avec Qt, l'environnement de développement intégré
Qt Creator est
lui aussi mis à jour. Il intègre notamment un éditeur de code C++, un outil graphique de conception d'interfaces riches et un gestionnaire de projets. Un travail important de traduction a en outre été fourni par la communauté, le logiciel ayant été traduit dans un certain nombre de langues,
notamment en Français.
De nouvelles possibilités pour le programmeur
Le framework propose de
nouvelles fonctionnalités pour le développeur, allant de la gestion des graphismes à la conception de l'architecture des applications, en passant par les technologies du web.
Le support des interfaces multi-tactiles
L'une de ces améliorations concerne le support du "
multi-touch" et des "
gestures" (reconnaissance gestuelle), visant à rendre plus instinctive l'utilisation des logiciels. Le framework permet d'utiliser la reconnaissance gestuelle pour faire correspondre à une série d'événements reçus par l'interface (clics, actions tactiles…) une action particulière, laissée au choix du programmeur (par exemple, dessiner un S à la souris pourrait être associé à la sauvegarde). De plus, de nouveaux gestes peuvent être enregistrés facilement.
Les classes
QTouchEvent et
QGestureEvent permettent de faciliter la gestion de ces technologies, en faisant le plus possible abstraction du matériel utilisé (tout doit fonctionner aussi bien sur un écran tactile sous Windows 7 que sur un téléphone portable).
Des animations et des graphismes améliorés
Afin de faciliter le développement de petits jeux et, plus généralement, d'animations en tous genres, le
projet Kinetic ajoute dans chaque version de Qt de nouveaux outils pour les programmeurs. Ils permettent de représenter les animations plus simplement, sous forme d'états et de transitions, en automatisant au maximum le déplacement des objets sur l'écran (le programmeur spécifie par exemple un départ et une arrivée d'une image, mais n'a plus à programmer le déplacement exact de cette image).
Différents outils sont présentés avec cette nouvelle version de Qt. Tout d'abord, l'
Animation Framework regroupe plusieurs classes permettant la description et la combinaison d'animations, via des classes telles QPropertyAnimation. Le code ne comporte alors que les positions de départ et d'arrivée de l'objet. Toutefois, si le chemin suivi par l'animation est par défaut une ligne droite, il est parfaitement possible de définir des chemins plus complexes ou d'en utiliser des pré-définis grâce à la classe
QEasingCurve. Pour exemple, cette
vidéo d'animations lancées sur un téléphone N810 postée sur Youtube devrait vous aider à comprendre la flexibilité visée par les développeurs.
En outre, des fonctionnalités graphiques ont été ajoutées, et sont accessibles via la classe
QGraphicsEffect, qui regroupe certains effets comme le « floutage » ou la modification de l'opacité d'une image. Ici encore, il est possible de définir des effets personnalisés. Les performances des dessins et de la bibliothèque en général ont été améliorées, mais les systèmes Windows 95 et Windows 98 ne sont plus officiellement supportés par cette nouvelle version. Enfin, de nouvelles classes apparaissent dans le
framework QtMultimedia pour une gestion plus complète du multi-media. Cependant, ces classes seraient pour l'instant
trop instables pour être utilisées.

-

-
L'image de poisson clown servant de démonstration pour les effets
Manipuler le XML
Qt ne se limite pas à la gestion des graphismes et du fenêtrage, et permet de manipuler des documents web ou XML pour différents usages. Dans la version 4.6, la classe
QWebElement présente le nécessaire pour manipuler facilement le
DOM d'un document XML. La classe QWebFrame, servant à l'affichage depuis Qt 4.4, a donc été modifiée pour pouvoir renvoyer
le document affiché pour permettre sa manipulation en tant que QWebElement (et plus seulement en tant que texte). Plus généralement,
un ensemble de classes permettent la manipulation de documents XML.
Vers une nouvelle façon de penser les interfaces ?
Outre ces nouvelles fonctions, le projet Kinetic a également conduit, dans Qt 4.6, à présenter une
nouvelle façon de concevoir les interfaces graphiques, dans un
style déclaratif. Cette façon de faire décrit les éléments composant une interface indépendamment du code, en présentant la façon dont ils réagissent à différents signaux dans un langage déclaratif créé pour l'occasion, QML. Les objets décrits en QML peuvent par la suite être utilisés directement dans un code C++. Ce langage est volontairement simple, mais
peut être utilisé conjointement à JavaScript pour rendre la création d'applications plus simple.
Cette volonté d'innovation vient du constat de
l'évolution des interfaces utilisateur, notamment sur les téléphones portables. Les développeurs du projet Kinetic veulent donner un sens plus fort aux programmes écrits avec QML, qui ne décrivent plus comment les objets sont animés (cette tâche est celle de Qt), mais simplement la façon dont ils se comportent. Les développeurs de KDE, un projet d'environnement de bureau basé sur Qt, rejoignent le mouvement en
annonçant les conséquences que ces technologies pourraient avoir sur Plasma, la
technologie chargées de l'affichage des applications dans KDE.
Plusieurs exemples simples mais néanmoins complets ont été présentés pour l'occasion. Parmi eux, des jeux comme un
démineur ou une
application de manipulation d'images postées sur Flickr montrent les utilisations possibles de la technologie. Les
sources de ces applications, postées sur Gitorious, permettent de se faire une idée de QML.
Cette nouvelle version de Qt se révèle donc intéressante pour le développement d'applications riches et portables, sur différents systèmes ou même sur téléphone mobile. Nokia, qui
a racheté et libéré Symbian OS il y a maintenant plus d'un an, espère certainement s'imposer face aux concurrents tels le
BlackBerry ou l'
iPhone, qui
grignotent petit à petit les parts de marché autrefois acquises à Symbian. Mais Qt est également un framework complet pour le développement sur micro-ordinateurs, sans doute équivalent à la technologie Java.
Pour plus d'informations
61 Participations
Connectez-vous !
Connectez-vous !
Revenir à la liste des news