Flex 4

Depuis que la future version de Flex a été annoncée (il y a un mois environ), pas mal de contenu ont été publiés par Adobe sur le site de Flex. Le passage en open source aura eu ce gros bénéfice qui est de nous donner accès au futures technologies incluses dans Flex 4 de manière très anticipée. Mike Chambers a dressé une compilation des différentes ressources et Video sur Flex 4.

Flex in a week

Petit post rapide pour vous signaler que Adobe a mis en ligne une quantité astronomique de tutoriels video concernant Flex. L'idée est de nous permettre d'apprendre Flex en une semaine, ou moins si vous êtes plus dégourdis que la moyenne. C'est plutôt très bien réalisé, avec un ton très didactique. Site Adobe Developper Connection pour ceux qui veulent aller voir.

Architecture AIR dans le détail

Lors du précédent billet sur ce thème, on a vu ce qui a amené Adobe à créer la technologie AIR. Maintenant je vous propose de rentrer un peu plus dans le détails et de voir ce que regroupe ce framework, et d'imaginer ensemble ce qu'on va pouvoir en faire. La souche technique du runtime permet en fait d’exécuter des applications AIR de deux formes différentes, soit un SWF réalisé en Flex ou en Flash, ou de l’HTML avec des ressources AJAX. Cette ouverture permet d’aller un peu plus vers les concepteurs de sites Web pour les amener à réaliser des RDA. Dans le framework SWF on a la capacité à intégrer des ressources HTML, et PDF, et dans le framework HTML au contraire on peut intégrer des ressources SWF, et PDF. Toute application AIR est définie par un fichier XML qui donne les caractéristiques du comportement vis à vis de l’OS (type de fenêtre, etc...) et du contenu utilisé pour remplir cette fenêtre, c’est donc là qu’on gère le fait d’afficher un objet SWF ou une page HTML. La compilation du fichier AIR a pour effet de créer une archive de tous les fichiers nécessaires au fonctionnement cette application. Cette archive permet de distribuer les applications et de les mettre à jour très facilement. Les API suivantes ont été ajoutées au runtime pour augmenter le niveau d’interaction de l’application avec l’utilisateur et son poste de travail : •    Network Detection •    File I/O •    Window personalisée •    Multi Window •    Menus Natif •    Drag’n’Drop et accès au presse papier •    Possiblité d’utiliser le dock et les notifications •    Signatures d’applications •    Icones personnalisées •    Enregistrement de types de fichiers personnalisés •    Gestion des mises à jour •    Support de http, de XML-RPC, des Webservices, et des Sockets Je vous propose pour la suite de voir de quelle manière ces technologies peuvent enrichir de simples applications normalement prévues pour fonctionner online.

Introduction à l'architecture AIR

Je vous ai déjà parlé à plusieurs reprises de l'architecture AIR, par le biais d'applications, mais j'ai pensé qu'il était nécessaire de remettre tout ça dans son contexte afin de mieux la comprendre L’architecture AIR d’adobe c’est l’aboutissement de la convergence de plusieurs technologies maîtresses chez Adobe. On vu ces dernières années les sites Web à interfaces riches prendre de plus en plus d’ampleur, avec une forte proportions de sites réalisés en Flash. Passé ce premier point, à l’intérêt esthétique indéniable, les ingénieurs Adobe se sont rendu compte que l’orientation métiers de la production graphique de Flash c’était quand même pas extraordinaire pour produire de véritables environnements applicatifs. Je me souviens avoir essayé de produire un configurateur de produits en Flash, rapidement l’équipe de développement était revenu vers une applet Java. C’est ce qui vu l’arrivée  de la technologie Flex donc l’objet est de produire a partir d’un environnement de développement intégré de véritables interfaces riches pour applications Web. Les applications produites sont en fait des fichiers SWF qui s’appuient sur le runtime Flash dans un navigateur pour s’exécuter. Avec cette technologie Adobe parvenait donc à faire revenir dans son giron des tas de purs développeurs qui pouvaient porter leur savoir faire vers la plateforme Flash. De nombreuses communauté on commencé à créer des API pour accéder à tel ou tel service sur le Web, et le potentiel de la plateforme est très vite apparu avec surtout une capacité à mettre en œuvre de solides scénarios de d’interaction avec l’utilisateur. La richesse de ces applications développées a fait apparaître leur principale faiblesse qu’était leur exclusive intégration dans le navigateur Web. Le modèle de sécurité du runtime Flex ne permettait pas par exemple d’accéder à des ressources locales sur le poste de travail, ou d’interagir de manière complexe avec l’utilisateur. C’est à ce moment là que le runtime AIR est apparu avec comme objectif de nous permettre de passer de RIA (Rich Internet Application) à des RDA (Rich Desktop Application). L’idée de base étant de conserver la portabilité du runtime Flash de Windows à Mac en passant par Linux et d’en faire une plateforme complète.  Toutes les fonctionnalités nécessaire à mettre en œuvre des applications sont intégrée dans le runtime, il ne reste plus qu’à déployer, enfin presque !

XML preferences files

Le sujet du jour va être de quelle manière on peut utiliser les facultés de Adobe AIR à accéder au système de fichiers pour réaliser des fichiers de préférences pour une application.Le contexte va être le suivant, on va charger un fichier dans un objet de type XML, et ensuite il n'y plus qu'à aller chercher les variables dans cet objet. Pour ce qui est du sens inverse c'est tout aussi simple, on met à jour les variables et on enregistre le tout dans un fichier XML. Commençons par quelques déclarations :
import flash.filesystem.*; //pour disposer des classes d'accès aux filesystems
public var prefsFile:File; //Le fichier dans lequel résident les préférences
public var prefsXML:XML; //L'objet XML dans lequel on va mettre nos data
public var stream:FileStream; //le flux qui sera utilisé pour lire/écrire dans le fichier
Ensuite, codons la fonction de lecture qui va voir comme faculté de créer le fichier si il n'existe pas. cette fonction doit être obligatoirement être appelée lors du cycle d'initialisation de  l'application. le fchier est placé dans le répertoire de stockage de l'application, ce qui permet de gérer facilement le portage entre les différents environnements.
private function lireprefs():void {
prefsFile = File.applicationStorageDirectory;
prefsFile = prefsFile.resolvePath("fichierpreference.xml");
stream = new FileStream();
if (prefsFile.exists) {
stream.open(prefsFile, FileMode.READ);
prefsXML = XML(stream.readUTFBytes(stream.bytesAvailable));
stream.close()
}
bon voilà tout va bien le fichier existe, donc pas de soucis, on le lit via le stream pour instancier la variable prefsXML, et le tour est joué. Là ou ça peut se compliquer c'est lorsque le fichier existe pas encore, et qu'il faut le créer au préalable. On positionne donc un else sur la condition précédemment utilisée et on gère cette situation. Dans ce cas on instancie la variable XML depuis une chaîne de texte, et on déclare chacun des noeuds à la suite les un des autres avec leur valeur par défaut :
prefsXML = new XML("<preferences/>");
prefsXML.prenom = "votre prenom";
prefsXML.nom = "votre nom";
Ensuite il faut créer le fichier depuis une chaîne de texte et y injecter le contenu de la structure, puis l'enregistrer sur le disque...
var outputString:String = '\n' + prefsXML.toXMLString();;
outputString = outputString.replace(/\n/g, File.lineEnding);
stream = new FileStream();
stream.open(prefsFile, FileMode.WRITE);
stream.writeUTFBytes(outputString);
stream.close();
C'est ce même bout de code qui sera utilisé lorsqu'il s'agira de sauvegarder le fichier de préférences par exemple lorsqu'on sortira de l'application. Une fois qu'on a fait tout ça l'application peut continuer sa petite vie tranquille et on utilisera les variables de préférences tout simplement  :
label.text = prefsXML.prenom ;
Voila finalement c'était pas si compliqué, et ça peut dépanner dans bien des situations...

Photoshop Express

Ca y est photoshop express est sorti en Beta avec une approche un peu similaire à ce qu'on a pu voir comme applications de retouches d'images en ligne. Ici le premier step commence par l'upload des images pour constituer une bibliothèque - accessoirement cette bibliothèque va pouvoir être exploitée libre de droits par Adobe mais ça changera sûrement dans le futur -  et ensuite viennent les ajustements des images à proprement parler.

Read the rest of this post »

Adobe on AIR tour à Paris

Aujourd'hui j'ai fait un petit tour sur l'événement organisé par Adobe pour la tournée de lancement de AIR. Les conférences étaient intéressantes, les orateurs plutôt intéressant et pédagogues. J'ai assisté à deux conférences, celle de Daniel DURA sur l'api AIR dans le détail, ensuite j'ai vu la conférence sur le développement d'applications AIR en HTML. un évènement très enrichissant sur le sujet et qui présage d'un futur radieux pour cette nouvelle technologie. La conférence se passait  dans l'auditorium du palais Brogniart, l'endroit était superbe ce qui n'enlève rien à la qualité de l'évènement. Je vous invite à aller voir le site du tour onAIR pour avoir toutes les informations sur le sujet, et par ailleurs le très bon blog de Michaël Chaize Dès que j'ai un peu de temps je vous reprendrai tout ça dans le détail....

Let's start

Bon c'est le grand jour, premier billet sur ce Blog. Les thématiques abordées seront multiples depuis les techno Web aux randonnées à ski, en passant par la photo, les startups, et tout ce m'aura touché... Bref pas de limites dans l'immédiat. Une grande place sera données aux technologies Adobe Flex et Air pour essayer de donner un peu de vie à cette communauté francophone. Je vous donnerai ma vision au fil des jours sur les techno web émergentes.... Et puis c'est vos réactions qui vont me donner du grain à moudre.