Flex Tips – Récupérer les options de compilation utilisées par Flash Builder
Ça faisait longtemps que je n'avais pas publié un "Flex Tip". Mais pour celui-ci, je dois avouer qu'il ne vient pas de moi, je l'ai trouvé sur ce billet:
How to capture the compilation options used by Flex Builder
Comme vous le voyez, on parle encore de "Flex Builder" dans ce billet. Cela fonctionne donc depuis Flex Builder 3 et pourtant je ne l'avais jamais vu autre part.
Le but de la manipulation
Lorsque Flash Builder effectue une compilation, celui-ci appelle en fait le compilateur Flex "mxmlc" en lui passant de nombreuses options de compilation. Seulement, ce processus se fait en fond et vous n'avez pas de "log" de cette opération. Ni dans la console, ni dans les metadatas de votre workspace Eclipse.
Imaginons maintenant qu'au lieu de compiler dans votre coin sur votre Flash Builder, vous ayez la bonne idée de passer par un processus d'intégration continue. Avec Ant ou Maven par exemple. Vous aurez alors besoin des paramètres de compilation pour que le résultat soit exactement le même que par Flash Builder.
Si j'avais eu cette technique avant, je pense que j'aurai évité à l'équipe d'intégration de bonnes heures de prise de tête avec Flex Mojos!
La technique
Pour afficher les paramètres de compilation, il faut en fait… rajouter une option de compilation. L'option se nomme "-dump-config" et prend comme valeur, le chemin vers un fichier. Celui-ci sera automatiquement créé et rempli au moment de la compilation.
Pour le rajouter, allez dans les propriétés du projet, et dans l'input "Additional compiler arguments", ajoutez:
-dump-config C:\myconfig.xml
ou sur Mac:
-dump-config /Users/myname/myconfig.xml
Voilà, vous aurez les options de compilation qui seront écrites dans ce fichier lors de la prochaine compilation.
Flex Roadmap – Le futur du SDK Flex (post-Hero)
Pendant Adobe MAX 2010 se sont déroulées de très nombreuses sessions parmi lesquelles, une session dirigée par Deepa Subramaniam (Senior Product Manager for the Flex SDK). Durant cette session d'environ une heure, elle a présenté le futur du Flex SDK.
Cette session est vraiment très très très intéressante. Si vous êtes développeur Flex /AIR, vous devez absolument la regarder, de nombreuses pistes sont dévoilées.
Les sessions peuvent maintenant être visualisées sur le site d'Adobe MAX 2010. Voici donc la vidéo de la présentation "Flex Roadmap":
Comme je l'ai dit plus haut, je vous conseille très vivement de regarder cette vidéo en entier, on y apprend beaucoup. Pour ceux qui n'ont pas envie, voici un petit résumé.
Le futur du SDK Flex
Avant tout chose, il faut préciser que ce qui est dit lors de cette présentation (et répété ici) ne sera pas forcement implémenté. On parle d'objectifs à long terme qui pourront être modifié (ou supprimés) au cours du temps.
Voici donc les points forts de la présentation (selon moi).
Enrichissement de la librairie de composants Spark
Ce n'est pas nouveau et c'est plutôt un objectif aussi court terme, de nouveaux composants Spark vont arriver pour compléter les composants qui existaient en Flex 3 (Halo). Dans Hero, on a déjà accès à Spark Form, Spark Image et Spark DataGrid qui est toujours un peu en chantier. De nouveaux composants seront développés pour encore plus de possibilités out-of-the-box.
Utilisation des APIs de globalization de Flash Player 10.1
Flash Player 10.1 embarque de nouvelles APIs de "globalization" qui permettent de connaître la "locale" (le langage /pays) du poste client. Les composants seront ainsi automatiquement adaptés à la locale de l'utilisateur (Validator, Formatter, …)
Comparaison des performances Flash Player 10 et 10.1 (debug et non-debug) par IBM
IBM a mis depuis longtemps un pied dans l'univers Flex à travers les composants ILOG Elixir (vendus sur le shop d'Adobe). Ces composants sont de très bonne facture mais le prix s'en ressent
.
Des diagrammes, du Gantt, de la carto, des TreeMap, des Charts 3D et j'en passe . Si vous voulez y jeter un oeil, c'est par ici:
Démos IBM ILOG Elixir Enterprise
Sur ses blogs développeur, IBM publie aussi des articles portant sur Flex dont un très intéressant que voici:
Performance: impact of the Flash Player version and of the "optimize" compilation flag
En utilisant leurs composants, qui sont assez lourds en termes de calculs, ils ont réalisé quelques benchmarks plutôt encourageants sur la prochaine version de Flash Player, FP 10.1. Ils ont aussi comparé leur résultats avec les versions Flash Player Debug et Non-Debug (public). L'écart est assez important, cela signifie que si votre application tourne bien sur votre poste avec une version Debug, elle tournera encore mieux sur les postes "normaux", bonne nouvelle
.
Master Class Advanced Flex @ Bruxelles, Retour en images
La semaine dernière a eu lieu la Master Class Advanced Flex à Bruxelles, un séminaire donné par l'équipe de Farata Systems. Vous l'aviez peut-être deviné, j'étais présent pour ce séminaire. Autant être clair, si vous n'y étiez pas, vous avez raté une des conférences les plus intéressantes (en France et ses alentours en tout cas).
J'ai eu l'occasion de rencontrer quelques uns (6 je crois) des lecteurs de flex-tutorial.fr à cette occasion (certains que je connaissais seulement par GTalk), c'était vraiment intéressant d'échanger en direct
. Un bonjour à eux
Le Hilton, c'est classe
Le séminaire s'est passé sur 2 jours, au Hilton de Bruxelles. Pour planter le décor, les 2 jours se sont passés au 27e étage du Hilton, dans une salle de réunion panoramique avec sûrement une des meilleures vue sur tout Bruxelles. Rien que pour cela, cela valait le coup. Étaient présentes, une trentaine de personne, ce qui a permis de pouvoir communiquer facilement et de poser des questions. Quelques photos sont disponibles à la fin de cet article.
Le premier soir, l'équipe de Farata Systems a invité tous les participants à prendre une tournée de binche au bar du Hilton, un geste très sympa. Rajoutez à cela le buffet à volonté le midi (et c'est pas celui du Flunch) avec de très bons vins compris dans le prix(400 euros), ce séminaire était une aubaine
.
Assez parlé du contexte, parlons maintenant du contenu.
Les présentateurs de chez Farata Systems
Ils étaient 3 pour animer ce séminaire, chacun spécialiste dans sa "branche" (compilation et optimisation, développement et aspect humains, …): Victor Rasputnis, Yakov Fain et Anatole Tartakovsky. Trois américains d'origine d'Europe de l'Est avec un accent anglais plutôt sympa ^^.
Ils sont tous consultant/développeur, venant du monde Java avec des bonnes années d'expérience derrière eux. Ils ont notamment écrit plusieurs livres spécialisés, notamment:
- Programmation Java pour les enfants, les parents et les grand-parents
- Enterprise development With Flex (disponible en achat en ligne, bientôt en imprimé)
- Flex and Java (je n'ai pas trouvé le lien mais ils me l'ont offert pendant la conférence ^^)
On a eu affaire à de vrais pros, qui ont développé des projets de grande envergure depuis des années. Ils ont tourné et modifié Flex et l'ActionScript dans tous les sens et connaissent tout sur le bout de doigts.
Ce qu'on a pu voir en 2 jours
2 jours, cela peut paraître long sur Flex mais ce fut en fait trop court pour pouvoir tout aborder. Le programme de ce séminaire était très chargé et on a pas eu le temps de tout aborder. De nombreux points sont déjà abordés dans leur blog mais il est toujours plus intéressant de les voir expliqués en live.
Voir le blog Flex de Farata Systems
Voici les points abordés qui m'ont le plus intéressé:
Tutorial – Installation de HFCD Compiler Flex
Dans ce tutorial Flex, je vais détailler les étapes de l'installation d'HFCD (HellFire Compiler Daemon). HFCD est un produit extrêmement intéressant puisqu'il vous permet d'externaliser la compilation de vos applications/librairies Flex vers un Daemon (service Java). Ce Daemon peut tourner sur votre machine ou sur une machine distante.
Grâce à ce système, vous allez pouvoir diviser vos temps de compilation, parfois par un facteur 2-3 ce qui vous permettra de vous concentrer sur le développement de votre application (et pas simplement regarder Flex Builder et son "Building Workspace…")
Téléchargement d'HFCD Flex Compiler et du fichier licence.dat
Pour télécharger le compilateur HCFD, il vous suffit de vous rendre sur la page de téléchargement de son créateur:
Page de téléchargement HFCD pour Flex 3
Page de téléchargement HFCD pour Flex 4
Sur cette page, pensez bien à télécharger le fichier licence.dat (HFCD est en Release Candidate, il sera bientôt en production). Il vous sera indispensable pour l'installation. Ce fichier ce trouve sur la page de téléchargement dans la catégorie "Evaluation License".
Téléchargez ensuite le compilateur correspondant à votre version du SDK Flex et à votre OS. HFCD est disponible pour les versions du SDK Flex suivantes:
- 3.2.0
- 3.3.0
- 3.4.1
- 3.5.0
- 4.0
Le téléchargement est terminé, vous pouvez maintenant passer à l'installation.
Installation d'HFCD Compiler
Une fois installé, HFCD va modifier le compilateur par défaut de vos applications. Si vous voulez tester sans ne prendre "aucun risque", créez tout d'abord un nouveau Workspace Eclipse/Flex Builder. Vous pourrez travailler avec HFCD dans ce workspace et faire ensuite le switch quand vous vous sentez prêt.
Lancez l'exécutable (pour les systèmes Unix-Based, vous devriez savoir vous débrouiller
).

Renseignez les différentes valeurs demandées (répertoire d'installation d'HFCD, répertoire de votre Flex Builder, répertoire de votre SDK Flex).

Quand on vous demandera le fichier de licence, pointez vers le fichier licence.dat que vous avez téléchargé plus haut.
Poursuivez l'installation.
Démarrage du service de compilation HFCD
Comme précisé plus haut, la compilation va s'exécuter sur un service Java qu'il vous faut maintenant lancer. Je vais présenter la version courte mais sachez que vous pouvez faire tourner plusieurs instances d'HFCD sur plusieurs ports différents si vous avez un server 8-core avec un maximum de RAM par exemple (plus d'informations sur cette feature).
Rendez-vous dans le répertoire d'installation de HFCD puis /server/bin/ (C:\Program Files (x86)\HFCD\3.2.0\server\bin) et lancez "hfcd.exe".

Par défaut, le serveur va utiliser les ports 50207 et 50208.





