Cher ZeTechnology,
C’est aujourd’hui que je viens d’achever ma première application Flex. Flex ? Kézako ? Pour ceux qui ne connaîtraient pas du tout ce terme, Flex est une technologie développée par Adobe, basée sur ActionScript. Flex permet de mettre en place facilement des RIA (application avec interface riche) et, nous le verrons, c’est dans ce domaine qu’il excelle. Concrètement, une fois votre projet Flex compilé vous obtenez une application exécutable au sein d’un player Flash (ou très facilement en tant qu’application desktop grâce à Adobe Air). Des exemples d’utilisation de Flex :
PureMVC est un framework MVC à l’origine mis en place pour ActionScript, qui depuis a été porté pour différentes plate-formes : PHP, ColdFusion, Java…
AmfPHP est une implémentation PHP de Action Message Format (AMF). AmfPHP permet ainsi une communication entre votre application Flex et un service écrit en PHP.
Maintenant que les présentations sont faites, l’heure des comptes est venue. Je viens de réaliser un gestionnaire de quizz. Mon application permet de gérer des listes de questionnaires, d’y ajouter des questions, réponses, images d’illustration… puis de « jouer » à ces questionnaires. L’application Flex, développée autour de PureMVC, appelle donc sans cesse mon script PHP s’occupant d’interagir avec MySQL pour enregistrer une nouvelle question, récupérer la liste des quizz, etc.

Ce que je retiens au final, c’est :
Une mise en place très rapide. L’installation de Flex Builder (l’IDE est basé sur Eclipse, disponible par ailleurs directement sous forme de plug-in), de PureMVC et d’AmfPHP est très rapide, sans mauvaise surprise. La seule surprise était un soucis de fonctionnement du plugin Flex Builder avec Eclipse 3.5, qui venait juste de sortir à ce moment là. On excusera donc Adobe. Attention toutefois, Flex Builder n’est PAS gratuit, sauf pour les étudiants (licence sur simple demande).
L’apprentissage de Flex est assez rapide, l’IDE aidant. Le bon lot de composants existant permet de concevoir visuellement ses interfaces en Wysiwyg. Un des concepts à bien maitriser pour bien positionner ses éléments est celui des layouts assurant la mise en place des éléments, concept qu’on retrouve déjà dans pas mal d’autres technos. On apprend très vite à apprécier une propriété, [Bindable], permettant de lier constamment des éléments et valeurs. Le thème de base lassera très vite celui qui connaît bien la technologie mais est tout de même très agréable à l’oeil. Les composants sont immédiatement exploitables pour une vraie application, il y a même un système de barre de chargement lancée automatiquement au chargement votre interface.
PureMVC, quant à lui, nécessite une phase un peu plus longue d’apprentissage. Les notifications sont utilisées à outrance, ce qui autorise le développeur à commettre les pires goritudes dans son code. Les différentes couches (modèle, vue, contrôleur) communiquement efficacement entre elles, mais dans le cadre d’un développement en équipe, il faut bien veiller à ce que chacun aie les même habitudes que son collègue. Autrement, c’est l’anarchie chez les notifications.
En ce qui concerne AmfPHP, c’est quasiment que du bonheur. Ça fonctionne très vite, très bien, il est vraiment aisé et rapide de transmettre des objets, des tableaux, du XML entre Flex et PHP.
À noter, une communauté vraiment active, et une documentation que je considère « correcte », qui manque peut être d’exemples. Au final, cette première expérience avec Flex, AmfPHP et PureMVC est plutôt concluante. Flex est à ce jour une solution qui commence à devenir assez mature. À retenir pour la réalisation d’interfaces homme-machine, de backoffices ou applications mettant en oeuvre génération de graphiques, saisie de données…
N’oubliez pas de visiter les démonstrations !