Apache Adobe Flex TutorialTutoriaux Adobe Flex & AIR en Français

26nov/116

Interview avec Michaël Chaize – Flex et le monde de l'entreprise

Il y a deux semaines, j'ai publié un billet nommé "Point important sur les décisions d'Adobe sur le futur de la Flash Platform et de Flex" sur flex-tutorial.fr, pour partager mon ressenti à chaud sur les dernières décisions prises par Adobe. Un article qui a pas mal circulé parmi les développeurs mais aussi dans certaines SSII voire lu par certains clients (2500+ vues en quelques jours). Au delà de cela, un nombre important de commentaires, tous très intéressants qui reflètent bien l'état d'esprit actuel des développeurs je pense.

Depuis ce billet, Adobe a mis à jour son annonce "Your questions about Flex" (http://blogs.adobe.com/flex/2011/11/your-questions-about-flex.html) pour répondre aux nombreuses questions que ce billet a soulevées. Avec notamment une nuance sur le fait que HTML5 était une bonne solution pour faire de l'applicatif en entreprise, l'annonce qui avait le plus surpris au départ.

On en a aussi appris davantage sur le passage de du SDK Flex en Open Source avec notamment l'ajout de BlazeDS, des derniers composants Spark (architecture Flex 4) manquants et du compilateur Falcon ultra-rapide pour Flex 5. Un point qui a aussi été survolé est la cession des outils de tests à la communauté. Cela assure que l'intégration de patchs ne brisera pas le système, même s'ils n'ont pas une couverture de code maximale.

Depuis ce billet, Michaël Chaize (Adobe evangelist) a aussi publié ses impressions dans un billet nommé "Flexcursion with Apache":

http://www.riagora.com/2011/11/flex-is-open/

Une vision intéressante que j'ai voulu approfondir sur flex-tutorial.fr.

Salut Michaël, pour ceux qui ne te connaissent pas, une petite présentation sur ton parcours chez Adobe?

Salut Fabien. Après avoir travaillé en agence interactive en tant que développeur Flash, j'ai créé avec un associé une société d'édition de logiciels autour du format PDF. Nous étions un partenaire privilégié d'Adobe que nous avons rejoint en 2006 au moment de la sortie de Flex 2 et de la création de la communauté des Tontons Flexeurs. Je travaillais dans l'équipe avant-vente pour accompagner les comptes du CAC40 dans leur stratégie de mise en place de RIA. En 2010, Ben Forta m'a proposé de représenter la plateforme Flash en Europe au sein de l'équipe des Developer Evangelists. Depuis je travaille avec Greg Wilson et Christophe Coenraets entre autres pour évangéliser Flex auprès des développeurs Java, PHP et auprès des directions informatiques.

La création d'un back-end est un cas classique d'utilisation de Flex. Celui-ci est le plus souvent "masqué" derrière un intranet. En ajoutant à cela des données confidentielles et un accès sécurisé, on obtient souvent des applications avec peu de visibilité externe. Penses-tu qu'il y a une partie cachée de l'iceberg Flex en entreprise?

C'est certain ! Je me souviens des premières campagnes de promotion de Flex. On expliquait que les interfaces riches optimisaient le parcours des utilisateurs et que donc Flex aurait du sens sur un site de eCommerce par exemple (l'exemple du FlexStore illustrait cette promesse). Mais au final, c'est toujours le marché et la communauté qui orientent les usages d'une technologie. Un besoin est rapidement né dans le milieu des applications d'entreprise : la possibilité de rapidement concevoir et déployer des interfaces riches connectées à un, voire plusieurs services distants. Les développeurs Java en l'occurrence n'avaient pas de solution viable. La technologie Swing, les JSF, ou le JavaFX n'étaient pas convaincantes à cause de leur manque de maturité et de productivité. Flex est rapidement apparu comme la technologie la plus naturelle pour industrialiser le développement d'interfaces. Je dirais que 90% des applications Flex sont sur l'intranet de l'entreprise, parfois exposées à des partenaires ou clients extérieurs sur l'extranet. Beaucoup d'interfaces Flex sont lancées pour adopter une méthodologie de développement d'applications recentrée sur les besoins des utilisateurs et ainsi pallier aux manque d'ergonomie et de bon sens des interfaces proposés par des éditeurs. SAP par exemple doit proposer une interface par défaut qui doit répondre à un maximum de métiers et de profils utilisateurs. Au final, la méthode consiste à présenter tous les champs disponibles dans la base de données et de laisser l'utilisateur jongler avec ces informations. C'est une approche "system-centric". Flex permet d'industrialiser une approche "user-centric" en développant rapidement des interfaces qui répondent aux besoins métier des utilisateurs et en incluant le Design au coeur du processus de développement.

Dans ton billet tu parles d'un décalage de 2-3 ans en entreprise en plus des 3-5 ans annoncé par Adobe pour que les technologies HTML5 rattrapent Flex et Flash Player. Les périodes de migration sont effectivement longues, notamment sur le renouvellement des postes (XP toujours très présent). Penses-tu que la poussée HTML5 peut influencer ces temps de migration, vers Windows 7 + IE9/10 par exemple?

Je ne pense pas. Un grand compte ne migre pas vers un nouvel OS pour accueillir une nouvelle technologie web. Elle doit avant s'assurer que tout son "legacy", toutes ses applications existantes fonctionnent correctement sous un nouvel OS ou un nouveau navigateur, vérifier les procédures d'audit, les mécaniques de déploiement, les compatibilités logicielles, etc… Une migration touche le quotidien de dizaines de milliers d'utilisateurs, un plantage n'est pas permis. Dans le navigateur, je suis encore fasciné par le nombre d'activeX utilisés sous IE, du nombre de sites développés en interne avec des frameworks différents, des technologies différentes, etc… Mon conseiller bancaire par exemple passe régulièrement d'un navigateur à un écran mainframe, à du client-server et à un autre écran VB pour effectuer une simple opération comme un virement.

Les grands comptes sont aujourd'hui le résultat de plusieurs fusions et acquisitions et cela se ressent au niveau du socle informatique. Plus qu'un choix technologique comme Flex ou HTML5 , il faut entreprendre un chantier de refonte des postes utilisateurs sur un même socle technique, et exposer toutes les anciennes applications sous forme de service. Il faut aussi avoir conscience que HTML continuera d'évoluer, ne va pas rester figé dans sa forme actuelle, même le langage JavaScript évoluera, ainsi que les versions de navigateurs. Dans 5 ans, on parlera certainement d'IE12 sous Windows 9.

C'est maintenant la communauté des flexeurs avec le soutien d'Adobe qui va préparer la suite et notamment la version 5. Un gros break avait été fait entre Flex 3 et 4 pour prévoir la nouvelle architecture, notamment au niveau des skins. Ce break s'est révélé difficile pour certaines structures qui sont restées en Flex 3 mais décisif pour le résultat que l'on peut obtenir avec Flex pour mobile. Penses-tu que Flex 5 doive apporter un nouveau changement ou "simplement" apporter des évolutions pour répondre aux demandes des utilisateurs?

Je pense en effet que l'architecture Spark était un mal nécessaire, et pas seulement pour permettre la migration sur mobile. Le fait de découpler le design d'un composant de sa logique offre beaucoup plus de liberté d'expression et permet de mieux structurer son code. Certains clients sont restés en Flex 3 mais la migration vers Flex 4 peut être douce. J'ai rencontré dernièrement une banque qui avait écrit un script en Python pour faciliter et achever une migration en deux jours. Si l'on suit bien le guide de migration, l'effort n'est pas immense.

Je pense que Flex 5 doit déjà assurer la migration de tous les composants vers Spark et consolider l'ensemble du framework pour qu'il soit encore plus performant. Flex est encore récent sur mobiles, il y a du coup encore beaucoup de pistes à explorer pour innover et améliorer le framework.

La communauté Spoon qui sera en charge de Flex semble assez jeune mais pleine d'espoir. Combien de temps va durer la tutelle d'Adobe, cruciale pour le bon démarrage de cette initiative?

Spoon a un an. C'est une jeune initiative mais les membres actuels sont des développeurs Flex très expérimentés. Cette alliance s'appelle Spoon parce qu'ils ne pouvaient pas faire de Fork. Le deal entre Adobe et Spoon étaient de les laisser améliorer Flex dans une branche séparée et de recouper tous les 6 mois pour faire notre marché. C'était un premier pas vers l'implication de la communauté dans Flex, mais le modèle n'était pas efficace.

Dans le même temps, nous avons fait l'acquisition de Day Software, une société qui a développé un CMS d'entreprise basé sur des solutions Apache. C'est grâce à leur expérience que l'idée de se rapprocher d'Apache est née. Du coup la tutelle sera partagée entre Adobe, Spoon et aussi des grands éditeurs et clients qui ont des projets critiques développés en Flex et qui s'annonceront au fur et à mesure. L'objectif n'est pas de donner Flex à la communauté, mais juste de lui permettre de contribuer et d'influencer la roadmap. Aujourd'hui, Adobe décide des nouveautés, les développe dans le secret pour les révéler à Max ou 360Flex par exemple, et décide de quels bugs sont prioritaires. C'est ce type de gouvernance qui va changer.

Lors de ta dernière session Connect, tu disais que les développeurs RIA Flex d'aujourd'hui seraient sûrement les développeurs RIA les plus à l'aise avec HTML5 de demain. Je partage cet avis. Pendant ces prochaines années, à quelles technologies devraient s'intéresser les développeurs Flex?

Il est impossible de réduire les compétences d'un développeur de RIA à un langage. C'est une culture, un savoir-faire, qui va de la sensibilité au design jusqu'à l'architecture d'une application côté client. Les développeurs doivent suivre les tendances et s'intéresser de près ou de loin à plusieurs technologies à la fois. C'est difficile de miser sur une autre technologie aujourd'hui, on ne peut que constater la prédominance de JQuery sur le web. J'espère qu'il évoluera avec plus des fonctions pour les applications d'entreprise. L'autre tendance à surveiller est la cross-compilation en natif pour les applications mobiles.

Dans l'avenir, Flex devrait-il devenir un peu comme J2EE, une solution uniquement axée entreprise pour des applications de gestion lourdes et complexes à maintenir? Penses-tu que Flex deMVvrait devenir une technologie de "niche"?

C'est un peu caricatural mais je comprends ce que tu veux exprimer. Il y a tout de même des systèmes J2EE qui sont légers et simples à maintenir, mais les architectures J2EE sont souvent anciennes et cumulent des couches qui sont plus ou moins bien conçues. Aucune technologie n'est à l'abri. En Flex, il suffit de mal implémenter un framework MVC pour arriver à une architecture lourde et difficile à maintenir. Si l'on regarde l'évolution des frameworks MVC Flex, l'injection de dépendances n'est pas arrivée de suite. En ce moment, des frameworks comme Gravity introduisent dans Flex des concepts OSGi.

Je pense que la grande différence entre Flex et J2EE, c'est le momentum. J2EE a facilité l'exposition de services (le mouvement SOA), la maintenance d'une logique métier et la couche d'accès aux données. Les interfaces riches sont encore en phase de démarrage chez les grands comptes car elles n'induisent pas qu'un choix technologique. Flex est déjà très mûr par rapport aux attentes du marché. Si les RIA mettent du temps à s'imposer en standard dans le monde de l'entreprise, c'est parce que cela impacts l'organisation des équipes informatiques et chamboule le modèle classique MOA/MOE pour le bien des utilisateurs. Flex ne va pas devenir une niche mais au contraire s'imposer de plus en plus comme la solution la plus mature pour construire une stratégie user-centric. L'arrivée des tablettes en entreprise va accélérer le mouvement car une interface mal conçue sur ces appareils conduira forcément à un échec et à un refus de la part des utilisateurs. Sur le desktop, ils sont assez "résignés" et acceptent des interfaces "system-centric" mal conçues.

Pourquoi Adobe n'a pas ciblé le monde de l'entreprise plus tôt? Notamment au niveau du support des systèmes de build très répandus en entreprise comme Maven qui ont toujours été un peu laissés de côté?

Je pense que Macromedia a senti en premier que le web deviendrait une plateforme applicative. Le tort a peut-être été de penser que cela s'appliquerait à des applications B2C et non pas des applications B2E. A leur décharge, j'imagine qu'il est plus simple de communiquer sur des applications publiques B2C, cela facilitait la communication autour de Flex et accélérait son adoption. Les autorisations sont très difficiles à obtenir pour montrer des applications d'une application de trading par exemple.

29juin/110

Adobe AIR – Base SQLite créée en C / Java et champs de type BLOB

Vous le savez sûrement déjà, Adobe AIR vous permet de manipuler des bases de données locales de type SQLite. SQLite n'est pas propre à AIR, des applications en environnement Microsoft ou Java peuvent aussi les créer et les utiliser. D'autres langages permettent donc de manipuler ces bases comme du C ou du Java.

Vous pouvez créer une base SQLite en Java et l'utiliser dans votre application AIR sans problème. Enfin presque, cela va très bien fonctionner pour les types "primitifs" (integer, text, …) mais il y a un problème avec les champs de type BLOB (tableau de byte), si vous voulez par exemple stocker des images. Je suis tombé sur ce problème qui fut assez laborieux à résoudre, donc je partage la solution sur flex-tutorial.

Le problème

A la création, aucun problème, vous allez créer un Statement SQL et faire un setBytes pour insérer la donnée qui va bien. Mais à la lecture de ce BLOB dans Adobe AIR, vous aurez l'erreur suivante qui va apparaître dans la console:

RangeError: Error #2006: The supplied index is out of bounds.

ou bien:

Error: Error #2030: End of file was encountered.

La requête ne va rien vous retourner et vous ne pourrez pas "catcher" cette erreur qui est interne à AIR. Si vous aviez réalisé l'INSERT de ce BLOB avec AIR, aucun problème mais si vous l'avez fait dans un autre environnement, vous allez obtenir cette erreur un peu mystérieuse.

Les solutions

Après quelques recherches sur le net, vous allez sûrement trouver ces threads:

What is the first bytes in a Blob column SQlite Adobe AIR? Blob Sizeinfo?

When trying to select a column of type BLOB, SQLStatement throws a RangeError #2006: The supplied index is out of bounds.

http://www.actionscript.org/forums/showthread.php3?p=1056590

Le problème vient du fait que lors de l'insertion d'un BLOB dans SQLite, celui-ci est stocké en AMF, le protocole ouvert Adobe. Lors de la récupération de données dans un champ BLOB, AIR essaie donc de dé-serialiser la donnée AMF. Si celle-ci n'est pas stockée en AMF, vous obtiendrez une exception.

Remplis sous: Adobe Air, SQLite Lire la suite
1mar/110

[Offre d'emploi] – Ingénieur Développement web sur Lyon

Ingénieur Développement web (Villeurbanne – 69) – Offre d'emploi

  • Titre: Ingénieur Développement web
  • L'entreprise: Business Geografic (http://www.business-geografic.com) est une société lyonnaise filiale du groupe CIRIL, éditeur de progiciel de gestion à destination des collectivités depuis plus de 30 ans.
  • Business Geografic est éditeur du générateur d’applications web-mapping AIGLE ainsi que de l’ensemble des applicatifs métiers dérivés de cette technologie : Géo-décisionnel, Géomarketing, Plan interactif de ville, Gestion des élections, Gestion de l’enfance, Gestion de l’urbanisme, Gestion du patrimoine, Gestion logistique…
  • Business Geografic est spécialisée dans l'intégration de la dimension géographique au système d'information des organisations. Notre avance technologique liée à une innovation permanente (brevet international) nous offre des perspectives de croissances fortes, sur le marché national et international.

Profil Recherché

  • Profil recherché:
    • Niveau d'études : DESS, DEA, Grandes Ecoles, Bac + 5
    • Le poste est à pourvoir au sein de notre équipe « Projets ». L’objectif principal de cette équipe est d’assurer :
      • La gestion des projets spécifiques
      • La conception, le développement et les évolutions des applicatifs métiers de la gamme Aigle Solutions ou des logiciels de géo-décisionnels
      • Avec le souci du respect de la démarche qualité. Tous ces produits sont développés en full web en technologie Flex / AS3 ou Ajax.
  • Compétences Techniques Requises:
    • Bon niveau en AS3, FLEX, JAVASCRIPT, XHTML, XML, XSLT, CSS
    • Connaissances en Java / J2EE (JSF, Servlets, EJB)
    • Base de données
    • Bonne maîtrise du français écrite et orale
    • Sensibilité graphique et à la démarche qualité.
    • Les plus pour vous démarquer:
      • Connaissances de WPF et Silverlight
      • Expériences dans l’utilisation de CMS type « Joomla ! », «  SPIP ».
      • Connaissances des outils graphiques courant : PHOTOSHOP, ILLUSTRATOR, FLASH
      • Expériences en Infographie et Design en Web notamment => Références url à fournir
      • Notions de Business Intelligence (BI)
      • Notions en géomantique
  • Expérience Requise: 1 à 2 ans
  • Disponibilité: Immédiate

Conditions d'embauche

  • Lieu : Villeurbanne (69)
  • Rémunération: selon profil
  • Contrat: CDI

Pour postuler

  • Contact:
    • Fournir un CV à Sylvain Pourquier par mail : spourquier (AT) ciril (POINT) net avec la référence DEV/BG/20107205-1
vous justifiez d’une expérience professionnelle au moins 2 ans dans le développement orienté objet en PHP et 1 an en Flex.
6oct/100

[Offre d'emploi] – Développeur Flex sur Marseille (13)

Développeur Flex (Marseille – 13) – Offre d'emploi

  • Titre: Développeur Flex
  • L'entreprise: Le Groupe SNEF (http://www.snef.fr) est spécialisé dans les métiers courants forts, courants faibles, procédés industriels, génie climatique et maintenance. Ses prestations couvrent l'étude de conception, l'installation, l'exploitation et la maintenance. Elles s'adressent aux industriels, au secteur tertiaire, aux opérateurs de télécommunications, à la Marine ainsi qu'aux collectivités et administrations publiques. Créé en 1905 à Marseille où se maintient son siège social, le Groupe SNEF est aujourd'hui la première entreprise nationale indépendante de son secteur et emploie plus de 9000 personnes.

Profil Recherché

  • Profil recherché:
    • Vous êtes passionné par la technique et possédez un bon profil humain ? Venez exprimer votre créativité et réaliser votre potentiel en participant à des projets d'envergure.
  • Compétences Techniques Requises:
    • Java 1.5+ / J2EE
    • Maven
    • SQL
    • Flex 4, Action Script 3.0 et Flash (IHM en Flex, connectivité back avec BlazeDS)
  • Expérience Requise: -
  • Formation: -
  • Disponibilité: Immédiate

Conditions d'embauche

  • Lieu : Marseille (13)
  • Rémunération: 30/34 K€
  • Contrat: CDD

Pour postuler

  • Contact:
    • Pour postuler, envoyez votre CV à lionel.estorach (AT) snef (POINT) fr
4oct/108

[SONDAGE] – Quelles technologies client / serveur utilisez-vous et qu'en pensez vous?

Je crois que c'est le premier, voici un petit sondage sur flex-tutorial. Ce n'est pas innocent, ce n'est pas un sondage histoire de faire un sondage mais bien pour recueillir votre avis sur ce que vous vivez au quotidien en tant que développeur / chef de projet.

Pour donner un contexte, je fais cela dans le cadre d'une mini-étude pour mon entreprise. Celle-ci, grâce à un Data Center hébergé veut proposer une plate-forme complète sous forme de SaaS (Software as a Service).

Du côté infrastructure réseau, on a donc une plate-forme hébergé chez nous dans notre Data Center tout neuf (un cloud) avec système complètement distribué (cluster & Co) qui sera basé sur du Hadoop.

D'un point de vue serveur, on s'oriente sur les technologies plutôt Java pour des raisons à la fois historiques et de ré-utilisation de travail existant.

Du côté client, on s'oriente vraisemblablement vers du Flex mais sans se fermer à d'autres technologies comme JSF.

L'existant était un client lourd écrit en Java + un serveur Java + interfaces client en Flex. La communication se faisait par XML, ce que nous souhaitons à priori changer pour de l'AMF.

Mais il nous faut maintenant faire un choix (difficile) sur les "liants" pour faire communiquer au mieux notre serveur J2EE et nos interfaces client. Le but est ici de pouvoir développer rapidement tout en ayant un système robuste. La partie Java sera le plus modulaire possible, notamment grâce à l'utilisation d'OSGi. Il faudra que la partie client le soit aussi.

Pour l'instant, après pas mal de recherches, les technologies les plus matures me semblent être Spring et GraniteDS pour la partie Remoting AMF. D'autres solution comme Potomac et Solstice on retenu mon attention mais ne me semblent pas assez complètes et maintenues.

Et vous?

Et vous, pour vos projets Java / Flex, qu'utilisez-vous comme technologies?

En êtes-vous satisfait? Si vous ne l'êtes pas, ou qu'une technologie vous a déçu, vous pouvez bien sûr réagir, cela est très important!

Pensez-vous que ce que vous utilisez améliore votre productivité, vos temps de développement, votre modularité?

Avez-vous changé de technologies en cours de route, et si oui, pourquoi?

Voilà, pour répondre à ce sondage, il suffit de laisser un commentaire sur cet article (pour rappel, il n'y a pas besoin de s'inscrire)!

Merci!

Remplis sous: Non classé 8 Commentaires