Declarative UI : le futur du développement d’IHM

La plupart d’entre vous ont entendu parler de QML ou de declarative UI, mais sans vraiment trop savoir de quoi ça parle. Voici un essai de résumé.

L’architecture « widget » est une architecture robuste et structurée qui a fait ses preuves. Mais cette architecture est peu flexible, peu adaptée aux composants non rectangulaires et aux animations. Qui fournit donc des IHM très statiques.

Seulement, le besoin change. Et à quoi devrait ressembler une IHM dans le futur pour vous ? Sûrement à des IHM vivantes avec une plus grande interaction avec l’utilisateur avec des petits effets visuels. Le meilleur exemple son les téléphones mobiles et leurs interfaces de plus en plus attractives.

Il suffit de regarder l’interface de l’iPhone, Androïd, HTC et compagnie. Rien à voir avec les logiciels d’aujourd’hui. Tout est en mouvement : on zoome, on fait des rotations… On exploite le stylet, le doigt, la luminosité ambiante, l’orientation de l’appareil…
L’application de visualisation de photo de l’iPhone est un très bon exemple.
Et bien sûr, la mode commence à s’étendre sur les PC.

En gros voilà declarative UI est un projet R&D de Nokia sur le développement de ces IHM, et QML un langage pour exprimer de manière lisible (par un humain) ces IHM.

De plus, Developpez.com met des binaires précompilés de Qt à votre disposition. Dans les quel vous trouverez une version compilée pour visual 2008 SP1 de la branche kinetic-declarative-ui et donc voir à quoi cela va ressembler et bien sûr de jouer avec

Des binaires Qt à disposition !

Et vous que pensez-vous de tout cela ? Vous êtes pour ? Contre ? Des remarques positives ou négatives?

Réagissez !

Sortie de Qt 4.7.1 et de Qt Creator 2.1 en beta 2

Qt 4.7.1, première patch release de Qt 4.7, vient de sortir, en même temps que la seconde beta de Qt Creator 2.1, dont la version finale est toujours attendue pour la fin de cette année. Cette dernière version de Qt est déjà disponible sur leur repository GIT public.

De nombreux bogues ont été corrigés sur ces deux versions, beaucoup d’entre eux ont été reportés par la communauté… mais la communauté a aussi activement aidé à leur résolution ! Parmi ces contributions de la communauté, notez la version française de Qt Creator, traduite par l’équipe Qt de Developpez.com ! Pas moins de 250 commits ont eu lieu entre les deux betas de l’EDI, visant principalement la résolution de bogues au niveau de l’éditeur QML et JavaScript, ainsi que le déploiement sur des plateformes Maemo et le débogueur. La documentation a aussi reçu un nouvel article sur la création d’une application Qt Quick.

Un changement principal pour cette version : le Qt SDK n’est plus disponible. Il rassemblait Qt et Qt Creator en un fichier ; le nouveau Nokia Qt SQK, qui a été lancé il y a peu, contient aussi Qt et Qt Creator en un seul paquet facilement installable, en plus d’un nombre certain d’autres outils utiles). Il rendait le Qt SQK assez redondant, il a donc été décidé de le retirer afin de libérer du temps et de polir un peu plus la prochaine version du Nokia Qt SDK, dont la sortie est prévue avant Noël.

Télécharger
Qt 4.7.1
Qt Creator 2.1 beta 2

Sources
Qt 4.7.1 Released
Qt Creator 2.1 Beta 2 Released

Qt Mobility 1.1.1 est arrivé

Le Qt Mobility nouveau est arrivé. Il ne s’agit que d’une version de maintenance, n’apportant « que » des améliorations au niveau du binding Qt Quick et des améliorations de performances, principalement en ce qui concerne Symbian, sans oublier les habituelles corrections de bogues, améliorations de la documentation et des tests.

Cette nouvelle version, la 1.1.1, est aussi incluse dans la nouvelle version du Qt SDK, la beta.

Un certain nombre de bogues de priorité importante ont été corrigés dans cette version :

Multimedia: Video graphics item causes a Symbian device to reboot
Multimedia: QMediaPlayer does not play an MP4 file if header is after the encoded data block
Multimedia: Memory leaks on Symbian
System Information: Symbian devices crashes when 32 char long WLAN access point name is used
Contacts: QML contacts model is not updated when a contact is deleted
Organizer: Opening a file dialog in calendar demo cause crashes on Symbian devices
Organizer: QML organizer item does not respect the detail changes
Messaging: QMessageManager::updateMessage() crashes on Symbian
Location: QLandmarkFetchRequest::waitForFinished() causes a crash on Symbian
Service Framework: Memory leaks on Symbian
Document Gallery: Mediabrowser displays 0 songs on Symbian

Source : http://labs.qt.nokia.com/2011/03/01/qt-mobility-1-1-1-released/

La beta du Qt SDK 1.1

Avec toutes les nouvelles versions sorties aujourd’hui (Qt 4.7.2, Qt Mobility 1.1.1, Qt Creator 2.1), il fallait évidemment sortir une nouvelle version du Qt SDK, qui rassemble toutes ces briques logicielles et fournit donc une bonne base pour débuter avec Qt, il contient en effet tout ce qu’il faut (un compilateur, un EDI, Qt). Par ailleurs, il faut remarquer que cette version était très attendue. C’est la première version finale à disposer des outils pour Qt Quick, la dernière pièce du puzzle Qt Quick, enfin complet.

Tout est donc rassemblé d’une manière très pratique dans ce paquet. De plus, il faut le signaler, ceux qui ont installé la Technology Preview seront récompensés : ils pourront tester la fonctionnalité de mise à jour automatique !

Ce SDK est né de la volonté de simplifier le développement avec Qt. Auparavant, deux SDK étaient disponibles, l’un pour les plateformes mobiles, l’autre pour le desktop. Les deux sont rassemblés dans ce Qt SDK. Depuis la beta, quelques changements sont apparus :

Qt 4.7.2 for Symbian ^1 and Symbian ^3
Qt 4.7.2 for the Desktop
Qt 4.7.2 for the Qt Simulator
Qt Mobility 1.1.1 for Symbian^1, Symbian^3 and the Qt Simulator
Qt Creator 2.1 final
Qt Simulator 1.1 beta

En sus, le paquet pour Symbian a été mis à jour, fournissant maintenant tous les outils nécessaires pour développer pour Symbian. Dans la même veine, les utilisateurs de Linux et de Mac OS X verront aussi apparaître les paquets SIS, permettant d’installer Qt sur des périphériques Symbian.

Source : http://labs.qt.nokia.com/2011/03/01/qt-sdk-1-1-beta-released/

Qt Creator 2.1.0, le dernier maillon de la chaîne Qt Quick disponible

La sortie la plus attendue du jour dans l’univers Qt : Qt Creator 2.1, la dernière version en date de l’EDI Qt par Nokia.

Qu’apporte-t-il de si révolutionnaire ? La version officiellement utilisable des outils pour Qt Quick, dont un éditeur visuel, un éditeur graphique (interchangeables : on peut passer du visuel au code et vice-versa, ce qui n’était pas possible précédemment) ainsi qu’un débogueur spécialisé dans les interfaces Qt Quick. D’autres améliorations majeures concernent le support des applications mobiles.

Voici une liste abrégée, sans ordre spécifique ni même complète des nouveautés de cette version :

Semantic C++ highlighting: Highlighting of types (no “Q…” magic anymore, hurray), local variables vs members, virtual methods
Generic highlighting adds highlighting for various file types based on the Kate highlight definition specification
C++ class view and image viewer contributed by Denis Mingulov
Outline views for C++ and QML
Searching for C++ symbols matching a pattern (via advanced find dialog)
Wizard for adding libraries to pro files, including all the necessary fancy magic for include paths and static libs
Various debugging improvements on all platforms
Improved QML code editing with a faster code model and a new indenter
Find usages and improved follow symbols in QML code
Graphical QML tool bar (that you can get on request) for setting e.g. fonts and colors in the QML code editor
Project wizards for Qt Quick applications that also handle deployment to devices, and for custom QML extension plugins
Mobile application project wizards that provide you with the needed setup for Symbian and Maemo, and packaging and deployment
Various improvements to deployment to Maemo targets and Symbian support
Click on QObject::connect warnings in application output to jump to the code

Cette version est d’ores et déjà disponible sur les serveurs de Nokia : http://qt.nokia.com/downloads

Source : http://labs.qt.nokia.com/2011/03/01/qt-creator-2-1-0-released/

Le futur de Qt Quick

Il y a peu arrivait Qt Creator 2.1, la dernière version stable en date de l’EDI Qt de Nokia. Cette version apportait un grand bénéfice : l’arrivée des outils pour Qt Quick, à savoir le débogueur, l’éditeur de code et l’éditeur graphique. Maintenant, Qt Quick va continuer à évoluer, depuis cette version 1.0 vers un outil encore plus utile pour tous les développeurs d’applications.

Dans un futur proche, il est prévu d’ajouter le support de fonctionnalités comme l’interaction par mouvement de pince, voire même libres, le support des dispositions (layouts) de fauche à droite et bien d’autres.

TouchArea

En ce qui concerne les mouvements libres, il s’agit du TouchArea, un élément QML qui permet de recevoir les données brutes de toucher sur l’écran. Ceci peut être utile quand on cherche à mémoriser les points touchés directement en QML, soit en utilisant des bindings de propriétés ou par le biais de fonctions événementielles JavaScript. Cela pourrait se révéler utile pour des jeux basés sur le toucher et pour la reconnaissance de gestes basiques personnalisés directement en JavaScript.

Il s’agit actuellement d’un plug-in dont les sources sont évidemment disponibles, prévu pour Qt 4.7.

Pistes d’évolution

QML pour MeeGo n’avancera plus avant un certain temps. Cependant, le support de Symbian3 est d’ores et déjà complet. Maintenant, on pourra créer bien plus facilement des applications au look natif, sans que chaque développeur doive recréer des éléments de base comme des boutons ou des listes d’objets.

Quid du desktop ? Toutes les plateformes desktop sont toujours activement testées avec les nouvelles fonctionnalités, les nouveaux tests. On peut utiliser QML pour épicer quelque peu les applications desktop habituelles. Le futur est cependant bien préparé à la manière Qt et de nouvelles pistes d’investigation sont envisagées pour rendre Qt Quick Components utile sur desktop.

Aussi, l’accélération graphique devient de plus en plus importante dans les périphériques mobiles, le besoin d’un architecture type canvas diminue, remplacé par un graphe de scène, avec des animations. Finalement, quelques pistes sont aussi envisagées pour l’intégration de la 3D au QML.

Qt Quick 1.1

Plus proche, Qt Quick 1.1. Il est prévu pour Qt 4.7.4, à en croire la documentation.

Cela montre aussi une fonctionnalité intéressante : on peut choisir la version de Qt Quick à employer, grâce aux imports versionnés.

Sources

Qt Quick 1.0 and beyond (or, the post of many links)
A TouchArea for QML
import QtQuick 1.1

Qt Mobility 1.2 disponible en beta

Après la sortie de la Technology Preview en décembre et de la plus récente Release Candidate plus tôt ce mois, c’est maintenant la beta de Qt Mobility 1.2 qui sort.

Cette sortie implique que ses développeurs considèrent les API comme raisonnablement matures et stables, mais pas encore gelées. Ils espèrent geler les API après un petit coup de polish et ainsi les rendre prêtes pour utilisation dans le développement d’applications.

Les sources sont disponibles :

http://get.qt.nokia.com/qt/add-ons/qt-mobility-opensource-src-1.2.0-beta1.zip

http://get.qt.nokia.com/qt/add-ons/qt-mobility-opensource-src-1.2.0-beta1.tar.gz

La documentation est aussi déjà disponible.

Source : http://labs.qt.nokia.com/2011/04/12/qt-mobility-1-2-beta-package-released/

Qt Quick 3D disponible en technology preview

Il y a à peu près un an, Qt 3D était annoncé sur les Qt Labs Blogs. Il a commencé comme un projet de recherche Qt pour apporter quelques facilités à l’écriture et la portabilité du code OpenGL en 2008-2009, quelques classes ont déjà trouvé leur place dans l’API OpenGL de Qt.

Maintenant, Qt s’oriente de plus en plus vers Qt Quick. La démo a déjà bien montré que le projet Qt3D est passé d’un set de classes C++ à un environnement de script 3D.

Quels sont les derniers travaux sur le projet ? Qt Quick 3D. On a sous la main toute la puissance du code C++ implémentant les graphes de scène, le chargement des ressources, avec une API développeur exclusivement orientée QML.

Que peut-on déjà faire ?

  • Créer dune application QML avec du contenu 3D.
  • Charger des modèles depuis 3DMax ou Blender.
  • Ajouter des formes comme des cylindres ou des cubes.
  • Insérer du code de shader en QML pour créer des effets.
  • Animer la scène avec des rotations, des translations, des mises à l’échelle.
  • Contrôler la scène avec des états QML, des transitions et des animations.
  • Écrire la logique de l’application en ECMAScript et utiliser Qt Quick 2D en parallèle.

La vidéo : http://www.youtube.com/watch?v=qeZY6h9gBVM

Ce n’est pas encore complet, il reste encore beaucoup de choses à travailler – peut-être auriez-vous des idées à suggérer ? Ce qui va venir dans le futur :

  • le support pour la prochaine version de QML) ;
  • le support du réseau (jusque maintenant, les URL doivent être locales) ;
  • l’intégration à Qt Creator du chargeur de modèles ;
  • des animations plus sophistiquées ;
  • l’intégration d’un moteur physique.

Tout cela est encore en développement, mais les développeurs présentent le tout pour avoir des retours sur ces paquets et les fonctionnalités qu’ils fournissent. Les bogues connus sont listés (http://bugreports.qt.nokia.com/secure/IssueNavigator.jspa?mode=hide&requestId=10286), c’est aussi le bon endroit pour soumettre de nouveaux rapports de bogue.

Les sources et quelques paquets de binaires sont d’ores et déjà disponibles : ftp://ftp.qt.nokia.com/qt3d/.

Source : http://labs.qt.nokia.com/2011/05/20/qt-quick-3d-downloads-available/

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 !