BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Interviews Wazaabi, des IHM à partir de modèles EMF

Wazaabi, des IHM à partir de modèles EMF

Favoris
   

1. Bonjour Olivier, peux-tu te présenter ?

Olivier Moises, je suis de la région de Lille même si je travaille en Belgique, en Chine et aux Etats-Unis. Je suis dans l'informatique depuis 1993, date à laquelle j'ai créé mon entreprise, et j'ai démarré sur Eclipse avec Eclipse 2, donc je n'ose pas dire 20 ans mais cela fait déjà plus d'une dizaine d'années.

   

2. D'une façon globale, peux-tu nous parler du projet Wazaabi, de ses buts et de son architecture ?

Wazaabi est un projet open source qui est hébergé sur eclipse.org. C'est un framework qui permet de décrire des interfaces graphiques (des IHM), et de les décrire non pas en les programmant mais en les basant sur des modèles EMF (ceux qui travaillent avec les outils Eclipse connaissent). Wazaabi contient plusieurs éléments haut niveau. Il contient tout d'abord un moteur de rendu, prenant en entrée un modèle qui décrit l'interface graphique et qui en sortie affiche cette interface graphique. C'est la partie la plus visible et aussi la plus stable puisque Wazaabi est utilisé par certains de mes clients. Ensuite, Wazaabi comporte un moteur de data-binding, c'est à dire un moteur qui permet de connecter les objets métiers aux objets graphiques. En clair, lorsque vous avez un champ qui correspond à une propriété, le moteur de data-binding va permettre de synchroniser, c'est-à-dire d'afficher le contenu de la propriété, et lorsque l'utilisateur aura modifié ce contenu, de synchroniser le modèle métier. Enfin, Wazaabi contient un ensemble d'outils qui permettent de mettre tout ça en oeuvre, car même si le modèle graphique est assez simple, il reste toutefois compliqué à mettre en oeuvre à la main. C'est pourquoi nous proposons une série d'outils, notamment basés sur du drag'n'drop, pour construire en quelques minutes une première interface graphique. L'idée étant de réduire au maximum le temps entre le démarrage de la conception de l'interface graphique et le premier rendu. Moins de 1 minute, c'est bien.

   

3. En terme de problématiques classiques d'IHM, est-ce que ce data-binding gère justement des problématiques telles que la validation ?

Tout à fait. D'abord il faut savoir que Wazaabi n'est pas le seul projet qui permette d'afficher des interfaces graphiques basées sur des modèles, mais là où il se différencie de ces autres projets, c'est qu'il s'agit d'un moteur de rendu en temps réel. C'est-à-dire que lorsque l'on modifie le modèle, l'affichage est modifié, et lorsque l'utilisateur modifie quelque chose, le modèle est modifié. En fait, le programmeur n'a qu'à négocier avec le modèle plutôt que de travailler avec l'affichage graphique, ce qui permet de réduire la durée d'apprentissage. Pour répondre plus précisémment à la question, oui Wazaabi intègre des notions de validation, de conversion, qui sont soit implicites, soit explicites. Par exemple une validation implicite quand vous saisissez dans un champ de texte et que cela doit être transformé en entier car la propriété correspondante est entière. Par contre, des validations un peu plus compliquées comme la concaténation de noms/prénoms (ou l'inverse), sont des validations explicites.

   

4. Est-ce basé sur JFace data-binding ?

Non, Wazaabi est purement déclaratif. Ce qui est important c'est d'avoir la structure du modèle des données métiers (le méta-modèle). Wazaabi a son propre moteur de databinding. Ce qu'il faut aussi savoir, c'est que Wazaabi peut fonctionner en dehors d'Eclipse, dans un simple produit Java main (Wazaabi est en Java), comme il peut fonctionner à l'intérieur d'Eclipse.

   

5. En terme de "renderers", de moteurs de rendu graphique, peux-tu nous parler des différentes options disponibles aujourd'hui ?

Le moteur de rendu dont j'ai parlé au début, qui est tout à fait stable et qui couvre environ 95% des widgets existants en SWT, rend en SWT (SWT étant l'interface graphique d'Eclipse) même s'il est capable de travailler en dehors d'Eclipse. L'idée étant d'avoir plusieurs moteurs de rendu, nous avons fait des tests, des proofs of concept, de Swing, de GWT, et à plus ou moins moyen terme, nous comptons faire un moteur de rendu JavaFX et nous regardons aussi comment faire un moteur de rendu Android. Pour le moteur de rendu Android, il ne s'agit pas de concurrencer ce qui existe déjà dans Android, mais plutôt de permettre à une entreprise qui aurait une application en Wazaabi de converger, c'est-à-dire d'avoir la même application, ou un sous-ensemble de cette application, sur tablette ou smartphone.

   

6. En terme de perspectives, de road-map, sur quoi vous concentrez-vous en particulier aujourd'hui ?

A très court terme, l'amélioration du tooling. Pour la petite histoire, Wazaabi est très utilisé chez un de nos clients, un groupe Chinois de télécommunication, qui l'utilise par contre au travers d'outils propriétaires - donc non open source. Nous voudrions donc rajouter dans la communauté une série d'outils open source qui permettent de réaliser des interfaces graphiques plus rapidement. La seconde étape est d'augmenter le nombre de moteurs de rendu.

   

7. Je change un peu de questions, d'où vient le nom Wazaabi ?

C'est un hommage au film Wasabi (orthographe différente pour des raisons de nom de domaine non disponible), film que nous avions bien apprécié avec des amis, notamment du à une ressemblance tout à fait subjective avec Michel Muller.

   

8. Le proposal a été accepté en Janvier 2012 - aujourd'hui, vous êtes en Incubator - comment celà va se passer pour les prochaines étapes ?

Au niveau fondation Eclipse, l'intégration au Release Train d'Eclipse n'est pas planifiée à court terme. Il faut être honnête, nous sommes plutôt en augmentation de la communauté d'utilisateurs et de développeurs (committers). Nous n'avons donc pas de roadmap sur l'intégration au niveau du Release Train d'Eclipse - sachant encore une fois que même si c'est un projet Eclipse, il peut être utilisé en dehors. Durant cette EclipseCon, je suis allé voir et j'ai été contacté par d'autres projets qui sont intéressés par intégrer ou s'inter-connecter à Wazaabi.

   

9. Peux-tu nous parler du site web ?

A l'heure où je vous parle (31 Octobre 2013), le site web sur eclipse.org ne reflète absolument pas la stabilité du moteur, ni même l'intérêt du projet - reproche qui nous est fait très fréquemment - nous avons donc décidé de prendre le problème à bras le corps en propsosant des tutoriaux et un vrai site web d'ici les 2 ou 3 prochaines semaines. Et nous nous sommes engagés auprès des gens qui nous l'ont demandé. En attendant, Wazaabi est bien sûr disponible sur le Git d'Eclipse et sur GitHub. Il y a aussi un certain nombre de snippets pour les gens qui voudraient aller regarder, et de la documentation sur Wiki concernant la gouvernance du projet - comment contribuer, comment se passent les releases, etc... Je vous donne donc rendez-vous sur le site web à venir, où la visibilité du projet sera améliorée.

   

10. Merci Olivier

C'est moi qui vous remercie, c'est un plaisir.

22 janv. 2014

BT