Rss Feed

Progiciel pour Tour Opérateur – AIR / Flex

Cette application AIR/Flex permet aux voyagistes de créer et gérer les différentes options d’un séjour et les destinations en s’affranchissant du navigateur. L’interface Flex a permis de diminuer de façon significative le temps de saisie des données et ainsi augmenter la productivité des employés. Les filtres instantanés sont très appréciés.

Progiciel de gestion – Flex / AIR from Matsiya on Vimeo.

Application AIR /Flex – Progiciel de gestion d’un show room

Développement spécifique avec beaucoup de points communs par rapport à la gestion d’un catalogue e-commerce.

Cette application AIR à été développée pour un promoteur immobilier afin d’offrir à ses acquéreurs la possibilité de faire les choix d’aménagement et décoration de leur futur logement.

2 étapes sont proposées à l’acquéreur :

1 – Il doit faire le choix des matériaux pour chaque pièce de son appartement. Exemple : pour la chambre 1, il peut choisir du carrelage, de la moquette ou du parquet.

2 – Une fois les choix faits, il doit choisir quelque mois plus tard les options. Exemple : j’avais choisi la moquette dans la chambre 1, quelles sont les couleurs et textures proposées dans ma résidence ?

Cette application AIR permet donc au promoteur de gérer l’ensemble des produits catalogue, les déclinaisons et associations. Elle permet de créer une opération immobilière, de gérer l’ensemble des logements de cette dernière mais aussi les différents catalogues proposés pour chaque pièce du logement.

Une gestion des acquéreurs est incluse permettant l’attribution des logements, la gestion des différentes étapes de devis et la relation client.

 

Application AIR / Progiciel de gestion d’un showroom from Matsiya on Vimeo.

 

Loader application Flex / AIR

Nous avons développé plusieurs applications AIR / Flex. La plupart sont soumises à des clauses de confidentialité, mais heureusement quelques unes ne le sont pas, nous pouvons ainsi vous montrer le chargement.

Pour chaque application, nous réalisons un loader personnalisé à l’identité de la société qui indique l’état de chargement de l’application et le numéro de version.

En effet, au démarrage de l’application, nous pouvons être amenés à charger des modules ou des datas. Le temps de chargement et d’initialisation de l’application AIR peut prendre plusieurs secondes, il est donc important d’informer l’utilisateur de ce chargement.

load1.jpg

 

load3.png

 

load2.png

Loader AIR from Matsiya on Vimeo.

Magento e-commerce : Flash, Flex et AIR

magento_flex_matsiya.png

Si inclure une animation flash dans magento est relativement simple, la faire communiquer avec les services existants l’est nettement moins. En effet magento fournit une API basée sur le prorocol SOAP peu respectueuse des conventions et Flex/Flash n’aime pas ça …. Nous avons donc du modifier le SDK de flex afin de pouvoir utiliser simplement les services disponibles. Bien qu’il soit possible d’en créer des nouveaux, ces services sont mal adaptés à une interface de type RIA et les taux de transfert sont très faibles.

Nous avons donc décidé de prendre la voie de l’AMF, bien plus rapide et permettant le chargement de plus gros volumes de données. Magento étant basé sur Zend framework , nous avons utilisé Zend AMF présent dans la version 1.7 (possibilité de l’inclure dans des versions antérieures) et après quelques modifications de Zend AMF, nous avons réussi à exposer la totalité des méthodes de l’API existante en AMF. Il reste quelques points à régler (gestion des droits ACL de zend par exemple) pour fournir un framework installable et utilisable en quelques clicks mais il est déjà possible de développer des modules Flash/Flex pour l’administration ou pour le catalogue de vos sites e-commerce Magento.

Présentation de SOFA un ORM Air pour SQLite

Nous sommes en train de développer en interne un ORM SQLite pour Adobe AIR : SOFA. Nous avons décidé de le passer en open source prochainement. Il supporte le « nested fetching » , les delete et save en cascade , les formulas, les clefs composites, les relations one to one, one to many et many to many, l’héritage etc … Ce n’est pas une implémentation du pattern ActiveRecord : nous avons choisi de nous rapprocher plus d’un ORM comme hibernate qui même si il nécessite plus de configuration (bien plus) permet une plus grande souplesse dans de gros projets. Il n’y a pas de support pour les conventions pour l’instant mais pourquoi pas dans une prochaine release. Voilà un exemple de SofaQL :

Family family = sofaManager
  .createQuery("load Family <=> f where f.id = :id; fetch Family.people")
  .setIntegerArgument("id", 1)
  .execute();

Donnera :

Handle load : load Family
executing :
 select Family.ID as Family_0_id, Family.NAME as Family_0_name
 from FAMILY Family
 where Family.ID = 1
fetching : fetch Family.people
executing :
 select Person.ID as Person_0_id, Person.NAME as Person_0_name,
 Person.ID as Person_0_id, Person.FAMILY_ID as Person_0_familyId
 from ( ( People Person inner join  SuperPeople SuperPerson
 on SuperPerson.ID = Person.ID ) Person ) Person
 where Person.FAMILY_ID = 1
result =
 (Family)#0
  id = 1
  name = "pezel"
  people = (mx.collections::ArrayCollection)#1
   filterFunction = (null)
   length = 1
   list = (mx.collections::ArrayList)#2
    length = 1
    source = (Array)#3
     [0] (Person)#4
      familyId = 1
      id = 1
      name = "arnaud"
    uid = "A126F4E4-D083-68E2-0F34-723C76CA1A9C"
  sort = (null)
  source = (Array)#3

Ici Person est une sous class de SuperPerson. Le gros avantage comparé à un framework du type ActiveRecord c’est qu’il est possible de récupérer un objet et tous ses fils en une requête (et ceci récursivement). Dans le cas de listes cela peut s’avérer très pratique. De plus un support du batch fetching (récupération par groupe) est prévu dans la prochaine mise à jour.
Les save obéissent au même mécanisme, des cascade sont spécifiées par défaut mais peuvent être désactivées.

La dernière requête n’est pas très propre mais elle permet de supporter l’héritage à n-niveaux.

Tout ça devrait être disponible très prochainement sur google code. Stay tuned !

Adobe Air disponible avec Acrobat Reader 9

Image_6.png

Voici la bonne nouvelle du jour pour les développeurs d’applications AIR, chaque utilisateur qui télécharge le reader 9 d’Acrobat aura le runtime Adobe AIR via Acrobat.com version AIR.

L’installation de Air est très simple, mais c’est toujours une étape en moins pour le déploiement des applications AIR.

C’est par ici : Adobe Reader 9 (includes Acrobat.com on Adobe AIR)

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

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