Logo Spiria

Lithium : l’outil de portage multiplateforme pour la grande entreprise

6 février 2015.
Cet article est le premier d’une série qui expliquera comment notre plateforme de portage fonctionne et comment il se positionne parmi les solutions existantes. Chez Spiria, nous avons construit notre propre outil de portage multiplateforme : Lithium. Sa première qualité est de faciliter le développement d’applications mobiles pour la grande entreprise.

decorative

Cet article est le premier d’une série qui expliquera comment notre plateforme de portage fonctionne et comment il se positionne parmi les solutions existantes.

Chez Spiria, nous avons construit notre propre outil de portage multiplateforme : Lithium. Sa première qualité est de faciliter le développement d'applications mobiles pour la grande entreprise.

Pourquoi avoir fait Lithium plutôt que d’utiliser les outils de portage existant ?

Remontons à 2010. Steve Jobs se range formellement du côté du standard HTML5 comme un langage idéal pour le mobile. À la même époque, Spiria développait une série d’applications pour un client majeur. Le projet nécessitait de concevoir une application mobile capable de fonctionner sur la plupart des plateformes actuelles et à venir. Le client avait aussi un besoin de fonctions très avancées, propres à la grande entreprise :

  • Synchronisation malgré un réseau intermittent
  • Sécurité
  • Gestion de base de données d’envergure
  • Centralisation des données
  • Gestion de périphériques (numériseurs/imprimantes)

Les solutions sur le marché telles que PhoneGap n'étaient pas encore matures et offraient des fonctionnalités très limitées, insuffisantes pour notre client.

Pour nous, pas question de bâtir quelque chose qui serait à refaire dans deux ou trois ans ! Nous avons ainsi décidé de créer notre propre plateforme de portage.

Lithium vs PhoneGap et Cordova

Depuis leur lancement, les plateformes ont évolué. Comme elles, nous avons fait évoluer Lithium. Seulement dix pour cents des fonctionnalités de Lithium sont présentes dans Cordova ou PhoneGap. Lithium est ainsi une arme supplémentaire à ajouter à l’arsenal des développeurs plutôt qu’un remplaçant.

Lithium, techniquement : JavaScript, C++ et données pour la grande entreprise

Lithium est ce que nous appelons un « framework ». Son objectif est de faciliter le développement d’une application qui n’est pas attachée à une plateforme et donc plus facile à faire évoluer. Lithium permet la réutilisation de composantes UI, de structures de données et d’algorithmes en plus d'aider à la synchronisation lorsque le réseau n'est disponible que de manière intermittente.

Lithium, c’est :

  • Une plateforme d'abstraction (plateform abstraction layer) (GPS, caméra, etc.)
  • Un contenant pour les applis Web (web app container)
  • Des widgets et des composantes réutilisables
  • Une utilisation possible de librairies tierce (e.g. Map)
  • Une gestion de la synchronisation de bases de données
  • Une infrastruscture de clavardage (client et serveur)

Lithium offre une interface flexible JavaScript et C++. Il permet de bâtir des applications allant bien au-delà du format « vitrine » et a été conçu dans un contexte d’applications d’entreprise complexes pouvant impliquer des millions de transactions quotidiennes entre les appareils et un serveur central.

Ainsi, la gestion de la synchronisation des données entre l’appareil et un serveur fait partie intégrante de Lithium, autant du côté serveur que du côté client.

Lithium garantit également une interaction simplifiée entre le JavaScript et le C++ permettant de diriger les calculs intensifs vers un langage commun plus performant tout en transférant les résultats vers une interface JavaScript/HTML5. Cette capacité assure un plus haut degré de sécurité contre l’ingénierie inversée comparativement à du code JavaScript.

De plus, pour des applications de grande envergure, des modules intégrés à Lithium et dédiés à certains secteurs d’activité tels qu’une API d’impression, l’accès aux APIs Bluetooth ainsi que l’interaction avec des lecteurs de codes-barres complètent cette solution.

Sur le plan du contrôle de la qualité et du soutien technique, il est possible de développer et de déboguer une application mobile à l’aide d’environnements standards tels que Visual Studio, rendant ces tâches rapides et efficaces.

Le futur

Nous continuons à faire évoluer notre plateforme. Plusieurs avenues s’offrent à nous : distribuer en code ouvert, offrir en complément aux plateformes existantes ou encore distribuer commercialement.

Lithium est, et sera toujours, un complément à Cordova plutôt qu’un remplaçant. Il n’a pas la prétention d’être la réponse à tout. Il existera toujours une place de choix pour les applications natives. Il serait d’ailleurs possible d’utiliser Lithium sans HTML5 : la plateforme pourrait, par exemple, être utilisée pour effectuer de la synchronisation ou améliorer la sécurité d’une application native.