Vos applications métiers en Javascript avec Meteor

par Sébastien Morele, mis à jour le 05/02/2016

L'expertise d'Anybox ne se limite pas à Odoo.  C'est avant tout les deux langages de programmation Python et Javascript qui constituent notre socle de compétences : ils nous permettent de développer n'importe quel type d'application de gestion.

Nous allons voir qu'il est aujourd'hui possible d'utiliser uniquement Javascript pour construire une application métier réactive.

Javascript coté client

Javascript est un langage de programmation basé sur les événements et notamment présent dans tous les navigateurs web. Depuis les années 2000, les bibliothèques comme jQuery ou Mootools sont apparues et ont fortement contribué à la programmation coté client c’est à dire sur le navigateur de l’utilisateur. La manipulation du DOM (Document Object Model) avec Javascript pour affecter les balises HTML est donc quelque chose de répandu.

moteur V8
De gros acteurs comme Google ont eux aussi contribué au succès de ce language avec notamment V8, le moteur d’execution du navigateur Chrome qui a très largement permis d’accélérer l’execution du code Javascript. Cette considération grandissante à poussé à l’utilisation de Javascript cote serveur.

Javascript coté serveur !

Si comme nous l’avons vu, Javascript avait toujours été utilisé coté client, l’utilisation de Javascript coté serveur permet cette fois ci de générer le contenu HTML des pages à la place des languages Python, PHP ou JAVA par exemple. On passe donc de la manipulation de données à leur production.

nodejs
Node.js a su apporter un environnement de développement d’applications Javascript coté serveur. Et parce que JavaScript est un langage basé sur les évènements, Node.js est lui-même basé sur les évènements. C'est de là que Node.js tire toute sa puissance et sa rapidité.

Un exemple d’application Javascript coté serveur

Pour illustrer un exemple d'application Javascript coté serveur, nous avons tout de suite pensé à Meteor. Meteor est un framework full-stack basé sur Node.js, avec une base de données MongoDB, qui nous permet de profiter de tous les avantages de Node.js sans avoir à réinventer la roue. Meteor permet de fabriquer des application en Javascript « isomorphique », c'est à dire que le même code peut s'exécuter côté client ou côté serveur.

framework javascript meteor
Il nous à donc été facile de mettre en place cette application de gestion d’interventions dont voici le fonctionnement général:

  • l’application propose un moyen de créer un compte et de se connecter
  • l’application est disponible uniquement pour les personnes connectées
  • il est possible d’ajouter, éditer et supprimer des clients
  • il est possible d’ajouter, éditer et supprimer des interventions associées à ces clients

En plus de ces fonctionnalités, Meteor nous apporte un confort d’utilisation. Ainsi, l’application est par exemple pleinement fonctionnelle en mode déconnecté, c’est à dire quand le réseau est temporairement coupé. En effet, en temps normal, les applications Meteor échangent les informations avec le serveur de données. Si celui-ci n’est pas accessible, alors les données enregistrées par l’utilisateur sont conservées en cache puis publiées vers le serveur une fois celui-ci de nouveau accessible.
Il s’agit la d’une application basique afin de démontrer les possibilités qu'il est rapidement possible de mettre en place. Les sources sont disponibles, n'hesitez donc pas à les consulter et proposer des améliorations / suggestions.

 

Gestion d'interventions avec Meteor

L'application étant responsive, elle s'adapte à une utilisation sur mobile :

Gestion d'interventions avec Meteor (responsive)

Est-ce que je dois remplacer mes applications Odoo par des applications Javascript ?

Javascript tend à apparaitre comme un socle d'avenir. Il est possible de faire les mêmes applications qu'avec Odoo et chacune des technologies a ses avantages et ses inconvénients. Une application pleinement fonctionnelle sur Odoo n'a donc pas directement d'intéret à être transformée en une application  Meteor. Pour les nouveaux projets, la réponse peut être différente mais il n'y a pas de réponse type, contactez-nous, nous en discuterons et trouverons la solution la mieux adaptée.