Depuis un peu moins de 10 ans, le monde du développement de logiciels à destination du grand public subit une transformation sans précédent. Historiquement réservé aux ordinateurs de bureau et personnels comme l’IBM PC ou le Macintosh, tout change avec l’avènement du téléphone intelligent (smartphone) à la fin des années 2000. Suivi de près par l’apparition des tablettes, phablettes, liseuses et aujourd’hui des smartwatch, ce nouveau marché des petits appareils transforme en profondeur les usages des consommateurs.

Aujourd’hui en 2014, ces appareils sont au centre de toutes les attentions. Le développement d’applications mobiles est devenu un marché florissant qui est sujet à une concurrence acharnée et à des innovations de toutes sortes. Pour avoir une chance de voir ses applications fonctionner et atteindre un seuil de rentabilité intéressant, celles-ci se doivent d’être multi-plateformes, c’est à dire de pouvoir être installées sur le plus de systèmes d’exploitation possible.

Systèmes d’exploitations

On compte aujourd’hui 3 grands systèmes d’exploitation pour mobile :

  • iOS d’Apple qui équipe l’iPhone et l’iPad avec ~11,7 % de parts de marché.
  • Windows 8 de Microsoft qui équipe le Windows Phone, la Surface et les mobiles de Nokia avec ~2,5 % de parts de marché.
  • Android de Google qui équipe presque totalement le reste de la concurrence avec ~84,7 % de parts de marché.

À cela se rajoute quelques acteurs moins importants :

  • BlackBerry OS pour les smartphones BlackBerry avec ~0,5 % de parts de marché.
  • Firefox OS de Mozilla Corporation qui vient de sortir et commence à équiper des smartphones low-cost. Bien qu’encore trop récent pour estimer son importance, Strategy Analytics estime qu’il aurait atteint ~1 % de part de marché en 2013.
  • Ubuntu Edge par Canonical qui est encore en développement.

Cette multiplication des systèmes engendre un problème : la multiplication du temps de développement. Chaque système requiert d’utiliser des pratiques, méthodes et outils différents. En somme, le temps de développement du logiciel est directement proportionnel au nombre de plateformes sur lequel il devra fonctionner.

En voyant les chiffres ci-dessus, vous seriez tenté de vous dire qu’avec presque 85 % de parts de marché, limiter son application à Android n’est peut-être pas si problématique que ça. À priori vous auriez raison, mais dans les faits et en moyenne, une application iOS est plus rentable qu’une application Android (5 fois plus au troisième trimestre 2013).

Heureusement pour résoudre ce casse tête il existe des solutions.

Framework

Dans le développement de logiciels en général, il existe une catégorie d’outils que l’on appelle des frameworks. Il s’agit d’un ensemble d’outils et de composants qui servent à définir les fondations et la structure d’un projet en imposant aux développeurs une architecture spécifique. Il existe de très nombreux frameworks pour toutes sortes de besoins.

Leurs intérêts sont multiples ; cette architecture commune permet de faciliter la maintenance par des acteurs externes au projet, bien utilisés ils accélèrent parfois considérablement le temps de développement et facilite le débogage. Les gros frameworks disposent souvent d’une communauté de développeurs qui publient des astuces, aides et techniques avancées sur le framework.

Dans le cas du développement d’applications mobiles, certains frameworks offrent la possibilité de ne développer qu’une seule fois l’application et de la déployer pour plusieurs systèmes d’exploitations.

Cordova

Le framework Cordova édité par la fondation Apache est un outil dont le rôle est de servir de couche intermédiaire entre le système d’exploitation et l’application.

Schéma de comparaison avec et sans Cordova.

Il permet aux développeurs de ne pas développer une application par système d’exploitation visé, mais plutôt de développer une seule application qui pourra être déployé sur n’importe quel système pris en charge par Cordova. De plus, ce code unique doit être développé en utilisant des technologies du web (HTML, CSS, JavaScript) qui en plus d’être légères et faciles à entretenir, sont testable directement dans un navigateur, sur un ordinateur.

Après que l’application ai été installée sur un appareil, il est très difficile pour l’utilisateur de dire si l’application a été développée avec ou sans framework. Concrètement, Cordova s’occupe juste d’afficher correctement notre application et de transmettre les informations entre celle-ci et le système d’exploitation de l’appareil.

Contrepoint

Malgré ces nombreux avantages Cordova ne représente aujourd’hui qu’un peu moins de 6 % des applications Android sur le marché. Cela s’explique par les limitations qu’impose le framework ; bien qu’il soit très pratique pour construire des applications classiques, ces performances laissent à désirer et pour cette raison, presque aucun jeu-vidéo (+20 % du marché) n’utilise cette technologie. De plus, en août 2014, une faille de sécurité dans Cordova a été découverte par des chercheurs d’IBM Security X-Force et bien que vite corrigée, elle en a refroidi plus d’un.

En conclusion, c’est une technologie qui peut vous faire économiser beaucoup d’argent, mais limitera de fait votre application. Ne prenez pas la décision d’utiliser ou non un framework sans l’avis éclairé de votre agence de communication préférée 😉 Et oui, Here We Com fait aussi des applications mobiles !

 

Pour aller plus loin