Rss Feed

Offre d’emploi : Développeur Flex

MATSIYA est spécialisée dans le développement Adobe Flex et Air. Dans le cadre du fort développement de notre activité, nous recherchons un développeur Flex.

Passionné par les RIA, dynamique et autonome, curieux de nature, vous intègrerez notre équipe R&D sous la responsabilité du directeur technique et interviendrez sur des projets motivants et novateurs.

Vos fonctions se situent à la fois dans la production et la R&D, que ce soit pour le compte de nos clients ou pour des projets internes.

Poste en CDI à pourvoir sur le site de BIARRITZ (64)

Si cette offre vous intéresse, merci d’envoyer un CV à recrutement@matsiya.com

Offre d’emploi : Développeur Java

MATSIYA est spécialisée dans le développement Adobe Flex et Air. Dans le cadre du fort développement de notre activité, nous recherchons un ingénieur d’étude sur les technologies Java J2EE.

De formation supérieure Bac +3/5, Ecoles d’ingénieurs ou universitaire, vous bénéficiez d’une première expérience réussie dans le développement de projets informatiques, vous comprenez l’architecture logicielle J2EE, et vous maitrisez parfaitement la programmation objet.

Passionné par les RIA, dynamique et autonome, curieux de nature, vous intègrerez notre équipe R&D sous la responsabilité du directeur technique et interviendrez sur des projets motivants et novateurs.

Vous serez chargé d’analyser le besoin des utilisateurs, de réaliser des développements spécifiques pour nos clients et de veiller à la qualité des développements réalisés.

Poste en CDI à pourvoir sur le site de BIARRITZ (64)

Si cette offre vous intéresse, merci d’envoyer un CV à recrutement@matsiya.com

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.

RIA Flex pour un Tour Opérateur

Voici une rich internet application développée en Flex/Flash pour un tour opérateur spécialisé dans les séjours de golf. Utilisation de web services et de la cartographie Google Maps.

RIA Flex – Agence de voyage 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 !