Le QML : les IHM déclaratives selon Qt

Présentation de Qt

Qt

Qt est une bibliothèque logicielle orientée objet et développée en C++. Ses principales fonctionnalités tournent autour des composants d'interface graphique appelé "widgets". De nombreuses fonctionnalités se sont greffées à cela pour parfaire la portabilité du code comme la gestion de l'accès aux base de données, les connexions réseaux, des facilités pour la programmation concurrente, ...

Qt permet donc la portabilité des applications qui n'utilisent que ses composants par simple recompilation du code source. Les systèmes d'exploitations supportés sont nombreux : Linux, Windows, Mac (Liste complète). Le fait d'être une bibliothèque logicielle multiplate-forme attire un grand nombre de personnes qui ont donc l'occasion de diffuser leurs programmes sur les principaux OS existants.

Qt est à la base de l'un des principaux environnement graphique du monde Linux : KDE. Il est utilisé dans un grand nombre d'autres logiciels : Skype, Google Earth ... Pour plus d'information sur Qt, le site de Sébastien MOURET sur le sujet


SDK de QT avant le rachat par Nokia

Rachat par Nokia

En 2008, la société Nokia rachète QtSoftware. En effet, Nokia se doit de changer de stratégie devant la monter en puissance de l'Iphone et de d'Android. Il faut proposer aux utilisateurs de ses téléphones de créer leurs propres programmes. De plus, une refonte des interfaces graphiques est nécessaire sur les téléphones.

Ainsi, Nokia décida d'acquérir Qt pour profiter du framework existant et de lancer un nouveau projet : le développement de Qt sur les téléphones mobiles avec pour priorité les téléphones Nokia. En effet, la société finlandaise espère ainsi profiter de la performance du framework mais aussi attirer les développeurs pour créer des applications sur ses téléphones. Qt ayant une bonne réputation dans le milieu du libre et de l'Open-Source cela devrait lui permettre d'obtenir une bonne image de marque auprès de la communauté des développeurs.

Pour ce faire, Nokia décide début 2009 de changer la license du framework de GPL à LGPL 2.1 rendant ainsi le framework utilisable dans une application commerciale sans devoir acheter une license commerciale (qui approchait les 5000$ par développeur pour la totalité des fonctionnalités). De plus, Nokia a décidé de rendre publique les dépots du code source de Qt tout en encourageant les contributions de la part des communautés de développeurs. La société finlandaise espère ainsi de meilleurs retours, de réaliser de meilleurs produits, réduire les temps de production et d'élargir le panel de diffusion de leurs solutions.


SDK de QT après le rachat par Nokia

Un nouveau projet

Nokia décida donc de lancer la création d'un nouveau langage, basé sur le framework Qt, simplifiant le développement des interfaces fluides à destination des appareils mobiles. Ce langage se devant d'être portable sur tous les appareils suportant le framework, il offre un bon niveau d'abstraction dans le développement d'une IHM. Ce langage a été baptisé le QML.

Une IHM déclarative permet de rendre les interfaces fluides en les décrivant en termes d'éléments simples (texte, image, rectangle, objet et autres) qui sont organisés en composants. La raison qui fait qu'elle est déclarative est que les changements de l'interface ne sont pas décrits en code impératif ( "fais cela, change ça, fais ceci, ... ") mais exprimé comme des ensembles d'expression de propriété d'objects ( "Cette largeur est toujours la moitié de celle d'un autre objet" ) ou regroupés dans des états ( "quand il est activé, les propriétés sont ..., lorsqu'il est désactivé, elles sont ...").

Pour mieux comprendre ce principe, je vous invite à continuer ici