vendredi 8 février 2008

Flex or not flex ?

Je lance un billet de discussion sur Flex : je me pose vraiment la question de l'intégrer ou non sur une feature centrale de l'application, pour un rendu à la fois dynamique et très graphique.
L'idée n'est pas d'avoir un site complètement basé sur Flex/flash mais d'avoir une interface riche pour naviguer dans une liste de résultats de recherche.

Les alternatives identifiées sont Flex/flash ou Ajax.

Voilà où j'en suis sur la solution Flex/flash :

Avantages:
- qualité du rendu
- intégration avec Flash
- nombreuses APIs disponibles (actionScript)
- Flash bientôt opensource ?

Inconvénients:
- temps de chargement long (inacceptable pour les 7% d'utilisateurs en bas débit - chiffres en France) >> possibilité de faire une version dégradée (selon le ROI)
- encore quelques (rares) browsers non équipés du player Flash (<2%)
- technologie jeune à éprouver, pérennité non assurée
- compétences moins courantes que Javascript
- pas d'optimisation de l'indexation (en ajax non plus a priori)
- technologie propriétaire, outils payants

Quelques questions subsistent :
- quel niveau d'intégration avec des composants flash ? Est-il possible par exemple d'alimenter simplement des variables d'un composant graphique haut en couleurs créé avec FlashMX ?
- à l'utilisation, l'IDE Flex est-il vraiment productif ?

Les retours d'expériences sont les bienvenus !

2 commentaires:

L. BONHUMEAU a dit…

Je me forme également à Flex depuis qqles semaines maintenant, voici mes commentaires par rapport à vos remarques :

Avantages :
- "qualité du rendu" : indéniable ! C'est une des grande force d'adobe, n'oublions pas qu'ils sont graphistes à la base... Très difficile, voir impossible, d'obtenir le même rendu en ajax.

Inconvénients :
- "temps de chargement" : si le projet est bien structuré, j'entends par là un bon découpage des ihm en swf, ça n'est pas un pb.

- "techno jeune à éprouver" : flex, ça n'est rien d'autre qu'un ide pour générer du flash. La techno flash est à mon sens bien éprouvée et je ne la qualifierai plus de "jeune".

- "compétences moins courantes que le javascript" : certes, mais la syntaxe du langage ActionScript est très proche du java je trouve. Ca n'est pas un réel obstacle. La seule difficulté est d'assimiler l'API est ses fonctionnalités.

- "techno propriétaire"... Ca reste malgré tout pas très cher pour un outil de dev. C'est plus une question de "principes" ;-)

Mon retour d'expérience avec l'IDE est bon. Je développais déjà sous Eclipse en Java, peut être que ça aide. Jusque qqles pb pour faire fonctionner le débugger. Sinon l'outil est stable.

Bref, je suis convaincu par flex. Un très bon outil pour ceux qui "viennent" du monde du logiciel. Peut être plus difficile à prendre en mains pour les développeurs web. Mais ça reste à mon avis dédié aux applis web. Car pour les sites.... se pose le pb du référencement.

Marc a dit…

Cela fait plus d'an que je fait du Flex. Mon avis était très positif au début mais l'est beaucoup moins aujourd'hui.

Voici ce que j'en pense :


Avantages Flex :

_ Intercompatibilité Navigateur
_ Possibilité de créer des composants réutilsable
_ Intégration (presque) native de flash pour un travail avec des graphistes
_ Environement de dev professionnel (Eclipse) avec de nombreuses librairies (FlexUnit)
_ MVC disponible et approuvés
_ Remoting WebService très simple
_ Interface wysiwyg pratique pour construire ses IHM

Défauts

_ Le Texte : pas de redimensionment automatique des zones de textes, visuel du texte pas très beau. Intégration avec des images beaucoup plus compliqué (pas de "float:left" possible)
_ Oblige à installer une nouvelle version de flash si besoin est
_ Possibilités de CSS beaucoup plus limités qu'en XHTML
_ Application très vite lourde en Kb
_ Pas d'équivalent de la méthode innerHTML : impossible de rajouter des composants dynamiquement sans l'avoir prévu
_ Copier/Coller très difficile (plus généralement le problème du clik droit)
_ Formulaires moins intuitifs pour les utilisateurs : les champs ne sont pas gardées en mémoire par le navigateur, pas de validation sur un "enter" de l'utilsateur (obliger de clicker sur le bouton sans implémentation particulière)
- Possibilités de Mash-up plus compliqué en cas d'intégartion de code HTML externe
- User experience moins classique sur le web et donc plus déroutant pour l'utilisateur