Rss Feed

Offres d’emploi – Développeur Flex

Dans le cadre de la recherche & développement, nous recherchons 2 développeurs Flex.

Matsiya, basée à Anglet (Pays-Basque 64), est spécialisée dans le développement des RIA, nous développons exclusivement en Flex, Air.

Nombre de Poste : 2
Profil : Bonne base Java et/ou AS3
Proposition : Selon profil
Pour postuler par courrier :
MATSIYA – 3 avenue Armand Toulet – 64600 ANGLET

Pour postuler par email :
manuel AT matsiya POINT com

Un peu de Google maps dans vos projets Flex

Voici une API Google qui va faciliter certains développements Flex / Flash. En effet Google vient de lancer une API Google Maps en actionScript 3 !!!

Plus d’infos sur Google Maps API for Flash

SOAP Rails+Flex et objets typés

Ruby on Rails permet de construire des webservices SOAP en quelques lignes. Mais ruby étant un langage dynamique, il faudra alors définir les types manuellement pour les entrées et les sorties. Côté flex pas de problème pour récupérer les types simples comme String , interger, datetime etc … Mais comment récupérer un objet plus complexe ?

Dans le post précédent on a introduit SchemaTypeRegistry qui permet de récupérer des objets personnalisés côté Flex; aucun problème pour des services écrits en java ou c#, ces langages n’étant pas dynamiques les objets seront bien définis dans le wsdl et Flex les comprendra sans problème. En revanche imaginons que l’on ait un model User en ruby qui pointe vers la table users. En retournant cet objet dans le SOAP flex sera incapable de le comprendre , aucune de ses proriétées n’étant explicitement définies.

Il existe pourtant une solution à ce problème : ActionWebService::Struct. En définissant un model héritant de cette class on va pouvoir construire un « emballage » de notre model de base et y définir ses propriétés. Exemple pour un model User :

On définit le model UserStruct < ActionWebService::Struct et on y ajoute les propriétés :

class UserStruct

member :name, :string
member :pass, :string

end

et dans notre class d’api on spécifie le retour comme :

:returns => [{:answer => UserStruct}]

Ruby étant totalement dynamique on peut directement renvoyer un objet User dans le controller, celui-ci sera automatiquement transormé en UserStruct. Exemple d’une méthode dans le controller :

def getUser(id)

User.find(id)

end

L’objet reçu sera alors de type userstruct (en minuscules dans le xml) et contiendra toutes les valeurs de User pour peu qu’elles aient été bien définies.
Enfin pour plus de lisibilité rien n’empêche de nommer son objet ‘User’ aussi côté flex et de spécifier le changement de nom dans SchemaTypeRegistry (voir post précédent).

SOAP+Flex => SchemaTypeRegistry

Une nouveauté de Flex 3 qui est passé inaperçue c’est la possibilité de recevoir des objets fortement typés depuis un service SOAP comme on pourrait le faire via le protocole AMF. Tout se fait dans la class singleton SchemaTypeRegistry. Il suffit de lui fournir le nom de l’objet reçu , son namespace dans l’enveloppe SOAP et la class de destination. Un petit exemple vaut mieux qu’un long discours : Imaginons que l’on veuille maper un objet user ayant pour namespace « http://www.matsiya.fr/user » vers une class User il suffira d’ajouter dans l’application (le mapping concernera alors tous les services) :

SchemaTypeRegistry.getInstance().registerClass(new QName("http://www.matsiya.fr/user", "user"), User);

Il est aussi tout à fait possible de définir le SchemaTypeRegistry pour une opération donnée en le spécifiant au XMLDecoder :

var sr:SchemaTypeRegistry = new SchemaTypeRegistry(); sr.registerClass(new QName("http://www.mastiya.fr/user", "user"), User);op.decoder.typeRegistry = sr; //op étant notre opérationEtrange qu’adobe ne communique pas plus à ce sujet, la doc est quasi inexistante pour cette fonctionnalité et surtout tout ce qui touche au XMLDecoder. Malheureusement cette technique n’est utilisable que pour les services de type SOAP, à ma connaissance il n’est pas possible de forcer le décodage d’un XML externe ou résultant d’un service REST via le XMLDecoder.

Flex 4 – Nom de code : Gumbo

Bon, l’info n’est pas d’aujourd’hui, mais il est toujours bon de la rappeler pour ceux qui seraient passés à côté.

Plus d’informations sur Flex 4

RoR et Flex main dans la main en 2 minutes

Une petite astuce pour ceux qui se lancent dans Ruby on Rails + Flex via WebOrb. Voilà la méthode express sans Flex Data Service ni édition de service-config , remoting-config, context-root et j’en passe … Une fois votre projet ruby créé , le plugin WebOrb installé (on trouve de bons tutos sur le net) , allez dans Flex Builder et créez un nouveau Projet. Ne choisissez aucun type de serveur puis rentrez le chemin de sortie et l’url de la manière suivante :

  • Output Folder : (chemin de mon projet ruby)/public/monProjet
  • Output Url : http://localhost:3000/monProjet/

Il ne restera plus qu’à spécifier endpoint= »/weborb » dans chacun de vos RemoteObject et le tour est joué. La communication entre les deux nouveaux outsiders du web est excellente, l’envoie et la réception d’objet typé se fait sans encombre et pour ceux qui ne connaissent pas encore RoR je vous invite à découvrir avec quelle simplicité on fait des choses normalement compliquées ;-)

ActionScript 3 – Guide de référence – Adobe Flex / Adobe Air

flexAirGuide.jpg

Voici une publication PDF de l’API actionscript 3 pour le développement de vos RIA Adobe Flex et Air.

Article Devnet Adobe :

Adobe technology platform ActionScript reference for RIA development

Document PDF :

Adobe technology platform – ActionScript Reference – Rich Internet Application Development

Custom Flex Component Developpement

Voici une vidéo d’une session de Doug McCune, Flexeur reconnu pour avoir réalisé des composants bien pratiques, mais aussi bien funs (voir la flexlib.)

Il nous explique dans cette session, lors du 360 Flex de Seattle, la « customisation » des composants Flex.
Doug McCune @ 360Flex Seattle – Custom Component Development from Doug McCune on Vimeo.