Flex - Une solution Adobe open source pour des interfaces riches, dans le lecteur Flash
Pourquoi et quand utiliser Flex ?
Le développement d'applications en Flex est à la mode. L'utilisation de flex est particulièrement interessante pour la construction d'interfaces belles et riches en fonctionalités. Voici quelques exemples d'applications pour lesquelles Flex est une très bonne solution : statistiques type Google Analytics, interface de trading temps réel, jeux de management, tableaux de bord, applications de gestion de projet, etc...
Avant Flex, le choix était simple : faire des interfaces enrichies avec du Javascript (parfois très laborieux surtout quand il faut gérer la compatibilité cross navigateurs) ou bien réaliser une application Desktop.
Quand Flex n'est pas adapté
Malgré l'effet de mode pour Flex, il n'est pas adapté à toutes les situations. Par exemple, pour une interface simple affichant les photos de Flickr il serait trop lourd de réaliser cette dernière en Flex, un simple code Javascript suffit largement. De la même manière, des animations flash interagissant avec un CMS devraient être réalisées en Flash, Flex n'est pas utile car aucun élément de l'interface n'est utilisé (boutons, listes déroulantes, grilles, etc...) or le poids d'un SWF généré avec Flex est important.
Quelques mots sur Flex
Flex est composé d'un langage de description d'interfaces (la couche de présentation), du langage de programmation Action Script 3 (la couche de controle) et d'un compilateur permettant la génération de fichiers SWF. Comme beaucoup de descripteurs de ressources (.NET, HTML etc...) les interfaces Flex sont décrites en XML, le MXML. Le AS3 (Action Script 3) est un script ECMA, utilisé dans Flash. Enfin le compilateur, Flex Builder permet la génération des "executables", à savoir des fichiers SWF, comme le Flash normal. En fait, Flex builder va transformer vos fichiers MXML en des ressources graphiques complétées par l'interactivité de vos scripts AS3, au final vous obtenez un Flash normal, théoriquement il serait possible de refaire toute application Flex en flash, ce serait simplement particulièrement laborieux.