I. L'article original

Qt Quarterly est une revue trimestrielle électronique proposée par Nokia à destination des développeurs et utilisateurs de Qt. Vous pouvez trouver les versions originales.

Nokia, Qt, Qt Quarterly et leurs logos sont des marques déposées de Nokia Corporation en Finlande et/ou dans les autres pays. Les autres marques déposées sont détenues par leurs propriétaires respectifs.

Cet article est la traduction de l'article Developers Are From Mars, Designers From Venus de Nigel Hietala paru dans la Qt Quarterly Issue 33.

Cet article est une traduction de l'un des tutoriels en anglais écrits par Nokia Corporation and/or its subsidiary(-ies), inclus dans la documentation de Qt. Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia.

II. Introduction

Concevoir une application nécessite habituellement une équipe. La division du travail est répartie entre les développeurs et les designers. Qt Quick a été conçu pour rendre Qt plus inclusif. Il est inclusif car il permet d'inclure de nouvelles personnes dans le monde du développement Qt et permet aux équipes de mieux collaborer. Améliorer la collaboration est la clé de la création d'applications conséquentes. Mais pourquoi cela et comment Qt Quick peut-il aider dans cette démarche ?

Il existe une multitude de questions qui doivent être traitées lors de la création d'une application. Il n'est pas possible de les séparer proprement. Les développeurs se focalisent principalement sur le monde de l'ingénierie logicielle. Le designers travaillent avec le monde visuel et l'Homme : avec la conception graphique et les animations pour l'aspect visuel et avec la conception des interactions pour la façon dont les interfaces utilisateur (UI) devraient être structurées. Enfin, il y a des questions d'utilisabilité qui devront être traitées en fonction des problèmes rencontrés lorsque les personnes utilisent l'application.

Des problèmes peuvent survenir si le concepteur ne comprend pas certaines limitations techniques importantes. Cela peut être particulièrement problématique sur les applications mobiles et embarquées où le processeur, la mémoire et l'alimentation sont limités. Les développeurs peuvent faire des erreurs de conception logicielle parce qu'ils n'ont pas compris quelles parties de l'interface utilisateur doivent être réactives ou faciles à modifier. Cette répartition imparfaite signifie que l'équipe échoue à réaliser de grandes idées car ses membres ne peuvent pas collaborer correctement.

III. Les développeurs viennent de Mars, les designers de Vénus

Une façon de surmonter ces problèmes est de créer une maquette sous forme de croquis ou mieux encore un prototype interactif avec une autre technologie telle que Adobe Flash. Ça reste une mauvaise façon de travailler : une démo qui fonctionne correctement sur un ordinateur de bureau ne fonctionne que rarement sur les mobiles ou les systèmes embarqués. Le développeur a besoin de copier la façon dont le design fonctionne dans une démo pour une technologie cible telle que Qt. Les développeurs font de leur mieux pour recréer le design. Tout en faisant cela, des problèmes peuvent survenir. Le concepteur doit alors procéder à des modifications et les transmettre aux développeurs. Il en résulte un gaspillage d'efforts, tout le travail qui a été effectué pour la démo doit être réalisé encore pour l'interface utilisateur finale. De nombreux aspects importants peuvent être mal compris et le résultat est un cycle de développement lent.

Les priorités des équipes sont également différentes. Les développeurs souhaitent souvent que cela fonctionne uniquement d'un point de vue fonctionnel. Ils n'ont pas le temps de déplacer un bouton de quelques pixels, régler une animation et d'obtenir la mise en forme du texte à la perfection. Mais ces détails sont essentiels pour une application conséquente. Les développeurs peuvent avoir la sensation que leur temps serait mieux dépensé ailleurs tandis que le designer est soumis à la bonne volonté des développeurs. Avoir à justifier la moindre modification au développeur est une façon improductive de travailler.

IV. Peut-il en être autrement ?

Qt Quick est arrivé après s'être posé les questions suivantes : les designers peuvent-ils travailler directement sur le vrai logiciel et prendre le contrôle de l'interface utilisateur eux-mêmes ? Nos outils peuvent-ils être modifiés de façon à ce qu'aussi bien les designers que les développeurs puissent les utiliser ? Le framework réel pour l'interface utilisateur pourrait-il être utilisé assez rapidement et facilement pour qu'il soit possible de créer directement un prototype ? Traditionnellement avec une application Qt, si ce n'est pas pour tous les logiciels, il est difficile pour les designers de travailler directement sur une application, dans le sens où l'interface utilisateur a été conçue par les designers en mains propres, par opposition à être interprétée le mieux possible par un développeur. Le problème est qu'actuellement, pour prendre le contrôle de la création/modification de l'interface utilisateur, cela nécessite de posséder l'ensemble des compétences d'un développeur Qt/C++. Les designers ont alors à faire face à des problèmes d'ingénierie supplémentaires susceptibles d'entraver leur capacité à se concentrer pleinement sur l'interface utilisateur.

V. Comment Qt Quick peut changer cette dynamique

Qt Quick permet au designer de prendre le contrôle direct de l'interface utilisateur. Le designer peut désormais acquérir une compréhension bien meilleure des questions techniques qui doivent être traitées pour réaliser une interface utilisateur conséquente, sans s'enliser avec des problèmes d'ingénierie face aux développeurs. Il y a beaucoup de points à corriger, mais déjà la première version de Qt Quick a commencé à aborder ces questions.

VI. Un nouveau niveau d'abstraction de l'interface utilisateur

Qt Quick ajoute un niveau d'abstraction pour le développement d'interfaces utilisateur. Le monde du code impératif, des classes, des fonctions, des pointeurs et des compilateurs est très abstrait. Tandis que les éléments d'interface tels que les images, les widgets, la mise en page, les états et les animations sont des objets manipulables. L'abstraction permet maintenant de ramener la problématique à un domaine dans lequel le designer est habitué à travailler.

VII. Abaisser le niveau d'entrée

Progressivement, Qt Quick devrait permettre aux designers de travailler directement sur l'interface utilisateur en ayant besoin de moins en moins de connaissances techniques. Finie l'obligation d'être un développeur C++ ! Si un designer peut créer un prototype utilisant un peu de JavaScript ou de l'ActionScript, alors ils peuvent maintenant prendre le contrôle complet de l'interface utilisateur. Qt Quick fournit également quelques outils graphiques pour réaliser la mise en forme des interfaces utilisateur dans Qt Creator. Au fil du temps, nous nous attendons à ce que ces outils deviennent de plus en plus puissants et utiles. Les designers qui sont déjà à l'aise avec le langage HTML trouveront le langage QML facile à prendre en main. Qt Quick a l'avantage de repartir de zéro afin de ne pas hériter de la complexité de ce langage. Il n'est pas plus complexe et difficile à éditer et à lire que le XML. Au lieu de cela, nous avons pris le Javascript et enlevé toute la complexité du langage. Ce qui reste est purement axé sur les questions liées à l'interface utilisateur.

VIII. Du concept à la réalisation

Qt Quick a été conçu pour créer très rapidement des interfaces. Fini le temps des compilations longues pour voir ce à quoi votre interface utilisateur ressemble. Il est simple d'ajouter des animations et des effets, qui non seulement améliorent le visuel, mais rendent votre application plus facile et plus intéressante à utiliser. Le designer peut créer le prototype de manière aussi efficace, sinon plus, en utilisant Qt Quick. Cependant, une interface Qt Quick est une vraie interface utilisateur. Elle est prévue pour des applications à commercialiser. Plutôt que de recréer l'interface utilisateur à partir de zéro, le développeur peut s'asseoir avec le designer. Ensuite, en utilisant les mêmes outils qui font partie de Qt Creator, le développeur peut aider à refactoriser l'interface utilisateur. Elle peut être internationalisée. L'interface utilisateur peut être connectée aux parties Qt C++ de l'application qui contiennent les éléments tels que le modèle de données et le moteur.

IX. Une équipe nouvelle est née

C'est un grand changement dans l'organisation du travail de l'équipe. Le designer peut maintenant contrôler et créer réellement l'interface utilisateur. Cela est une grande avancée face aux problèmes des designers qui créent des interfaces qui ne fonctionnent pas. Ils n'ont plus besoin de compter sur un développeur pour interpréter leurs interfaces ; s'ils veulent corriger une animation ou une mise en forme, ils peuvent directement le faire. Pour des interfaces sur mobiles et sur des systèmes embarqués, l'application peut être transférée vers le système cible et être validée. Les designers peuvent mettre en forme, recommencer et contrôler ce qu'ils considèrent comme important.

Qt Quick est un pas en avant, mais il y a aussi de nouvelles questions qui doivent être abordées. Les équipes trouveront de nouvelles questions qui doivent être résolues. Comment les designers peuvent être intégrés dans l'équipe de travail ? Les designers peuvent avoir besoin d'utiliser le contrôle de version. Leurs interfaces utilisateur en QML peuvent avoir besoin de vérifications techniques et de relecture du code. Il reste aux équipes à savoir si elles peuvent produire de meilleures applications si les compétences et connaissances des designers sont améliorées, de sorte que les interfaces ne doivent plus être réécrites par les développeurs. Les développeurs ont besoin de créer des composants avec des API qui facilitent leurs réutilisations dans Qt Quick.

Ce n'est que le début de la façon dont le développement d'applications peut être relevé à un nouveau niveau. Ce sont des questions pour lesquelles nous avons déjà des idées pour faire face dans les prochaines versions de Qt Quick. Des problèmes qui peuvent provenir d'une nouvelle et meilleure façon de travailler pour les équipes de développement. Alors qu'attendez-vous ? Responsabilisez vos designers et libérez vos développeurs. La passion pour Qt Quick les attend. Pour en savoir plus sur Qt Quick, visitez la page suivante. Vous y trouverez un aperçu technologique de Qt 4.7. Pour essayer Qt Quick, il suffit de télécharger la version alpha de Qt Creator 2.0 qui, en un seul téléchargement, fournit tout ce qu'il faut pour créer une interface Qt Quick (ndlt : depuis la rédaction de ce Qt Quarterly, Qt Creator 2.0 est sortie, sans le support de Qt Quick. Pour tester Qt Quick, il faut télécharger Qt Creator 2.0 beta, qui sera renommé Qt Creator 2.1 lors de la sortie de Qt 4.7, à l'adresse suivante).

X. Divers

Au nom de toute l'équipe Qt, j'aimerais adresser le plus grand remerciement à Nokia pour nous avoir autorisé à traduire cet article !

Merci à dourouc05, à johnlamericain et à BiM pour leur relecture et leurs conseils.