App templating : créer plusieurs applications à partir d'un socle commun

Par Thê-Minh Trinh, le 03.04.2015

Depuis 2010, nous créons divers services mobiles pour le compte de clients aux profils variés. Un besoin a peu à peu émergé chez nos partenaires de longue date : celui de pouvoir répliquer de façon optimale les applications que nous avions développées pour différents pays, filiales ou marques. Cependant, ces déclinaisons n’avaient pas forcément la même apparence et ne présentaient pas toutes les mêmes fonctionnalités.

Le nombre croissant de déclinaisons à produire nous a alors encouragé à formaliser un concept, l’app templating, qui nous permet de créer plusieurs applications basées sur le même cœur, rapidement et pour un coût réduit, tout en conservant notre qualité de service ainsi qu’une certaine flexibilité.

Différentes manières de réaliser des app templates sont envisageables et nous en avons analysé plusieurs. Nous avons opté pour une solution basée sur les outils proposés par Apple et Google pour deux raisons :

  • La qualité d’un développement natif est ainsi conservée
  • Ce sont des outils que nous maîtrisons

Ce choix nous semble donc pertinent et naturel.

Comment concevoir un app template ? Comment en tirer profit ? Nous aborderons ces sujets dans la suite de l’article, où nous admettrons que vous êtes un client souhaitant réaliser plusieurs déclinaisons d’une application.

Le concept d’app template

La conception et l’implémentation d’un app template dépendent de vos besoins. Celui-ci peut être très simple et être constitué d’un seul coeur embarquant différents éléments pour chaque application, mais également beaucoup plus sophistiqué et flexible.

Analysons donc les variables d’ajustement principales pour votre projet.

Fonctionnalités

Si vous envisagez de réaliser un app template, c’est que vous avez un ensemble de fonctionnalités partagées par vos différentes applications, potentiellement quelques-unes optionnelles. Ces dernières peuvent servir de guide lors de la conception de votre app template et son architecture.

Pour les applications du Groupe CANAL+, nous avons par exemple choisi de recourir à un menu “hamburger” pour avoir une bonne flexibilité selon le nombre de fonctionnalités disponibles pour chaque déclinaison.

De plus, ces différentes fonctionnalités évoluent rarement séparément, mais ont plutôt tendance à s’entremêler. Dans une application de transport en commun par exemple, on peut imaginer d’aller de la partie horaires vers la recherche d’itinéraire ou l’information trafic. Il faut également garder à l’esprit que certaines fonctionnalités peuvent ne pas être disponibles dans certaines villes.

C’est pourquoi un app template doit être pensé de manière très modulaire : les parties personnalisables, les différents cas de figure sont à déterminer pendant la conception. On peut ainsi éviter des réalisations maladroites en détaillant et en prototypant différentes configurations.

Apparence

L’apparence joue un rôle capital dans l’appréciation de vos applications par les utilisateurs et l’identification de votre marque. Un app template ayant pour but de mutualiser les développements, l’allure globale des applications ne différera pas sans développements spécifiques, qu’il vaut mieux anticiper.

Ce n’est pas pour autant que toutes les déclinaisons seront graphiquement identiques. En effet, les pictogrammes et les couleurs sont faciles à changer et portent une partie non négligeable de l’identité d’une application. On peut ainsi obtenir des applications semblables pour créer un univers et des codes propres à une marque, tout en ayant une identité unique pour chacune.

Contrôle du contenu

Le format d’applications (logiciel compilé installé sur des appareils) introduit une certaine inertie ainsi qu’une fragmentation, comparé au web : l’utilisateur doit installer une mise à jour pour disposer de la dernière version et plusieurs versions peuvent coexister. Ainsi, le contrôle des contenus comme les URL, les images, les textes et autres données requiert une réflexion pendant la phase de conception :

  • Embarqués dans l’application ? Cela ne nécessite pas de communication avec un serveur, mais une mise à jour est nécessaire en cas de changement et elle peut ne pas être installée par les utilisateurs. Cela peut donc entraîner une certaine fragmentation logicielle.
  • Récupérés depuis un serveur ? Le contenu sera toujours à jour, après un temps de chargement. De plus, les opérations complexes de traitement des données sont alors faits sur serveur plutôt que sur smartphone. En revanche, cela implique un travail plus important pour prévoir les cas de connectivité limitée.

Les deux approches présentent leurs avantages et leurs inconvénients, mais elles ne sont pas forcément incompatibles.

Après la mise en place d’un app template

Une fois passées la conception, l’implémentation et la mise en place d’un app template, vous souhaitez maintenant l’exploiter et préparer la suite. Comment vous y prendre ?

Analysons donc les différentes façons de tirer pleinement profit de cet outil.

Exploitation

Une fois la phase d’initialisation de l’app template terminée, vous souhaitez bien entendu créer vos applications.

Selon le niveau de personnalisation proposé, il peut y avoir un nombre de paramètres important à gérer. Une erreur de manipulation pouvant vite survenir, on cherchera à les limiter au maximum. Il est aussi possible d’abstraire la complexité technique du déploiement des applications via une interface chargée d’automatiser autant d’actions que possible : avec un peu d’imagination (et quelques scripts) il est envisageable de mettre en place un formulaire qui valide la configuration d’une application, la compile et la déploie automatiquement sur une plateforme de téléchargement.

Nous pouvons ainsi séparer le travail autour des applications en deux :

  • D’une part, une équipe technique en charge d’améliorer l’app template et d’y incorporer des nouveautés.
  • D’autre part, une équipe opérationnelle dédiée à la partie exploitation en s’occupant de la recette, de la génération, de la publication et des retours utilisateurs.

Ainsi, en découpant le travail autour de l’app template en deux, on favorise une meilleure focalisation des équipes. À noter qu’il est tout à fait envisageable de travailler sur les évolutions du produit pendant que se prépare la mise en production ou l’exploitation des applications.

Vie du produit

Un app template est un socle qui donne un cadre pour ajouter des fonctionnalités, étant donné qu’il est modulaire. Les mauvaises surprises étant généralement écartées dès la conception, une bonne intégration des nouvelles fonctionnalités est donc assurée au sein des applications.

Il assure aussi la répercussion des améliorations et correctifs sur plusieurs applications. Il est alors possible de tester des modifications sur une seule application, puis de toutes les mettre à jour. On bénéficie donc de l’expérience accumulée sur chaque application et on mitige ainsi les risques.

Les efforts d’amélioration continue étant mutualisés au sein du socle, le produit obtenu est extrêmement stable. Cela est d’autant plus important que les utilisateurs sont très peu tolérants aux bugs.

De plus, cette approche réduit fortement le temps de mise sur le marché pour une déclinaison, puisqu’il suffit de configurer la nouvelle application et de la tester pour qu’elle soit prête. L’investissement initial est donc non seulement vite amorti, mais il aide également à gagner ensuite en réactivité de réplication des applications.

En résumé, un app template vous permet en un seul développement de faire bénéficier d’évolutions ou d’améliorations à plusieurs applications, mais également de créer des applications en un temps et un coût record.

Retours d’expérience

La phase de conception est nécessairement plus longue que sur un projet d’application unique. En effet, celle-ci nécessite un temps plus important pour faire les bons choix au regard de toutes les applications cibles. Une autre conséquence du format d’app template est que la modularité souhaitée nécessite également plus d’efforts de développement. Cependant, ce temps passé est ensuite amorti selon le nombre de déclinaisons.

Nous avons de plus identifié quelques points de vigilance en phase de conception, après avoir conçu et réalisé plusieurs app templates. Voici les enseignements que nous avons pu tirer de nos expériences :

  • Les spécificités fonctionnelles et graphiques devraient être minutieusement envisagées bien en amont des développements. Après coup, des intégrations spécifiques peuvent être sources de complications.
  • Ces spécificités devraient uniquement relever d’une configuration. Celle-ci peut d’ailleurs être en dur ou dynamique, au même titre que le contenu.
  • Il vaut mieux que les API soient cohérentes pour toutes les applications. Chaque cas spécifique pourrait induire une complication dans la logique, plus de tests et donc plus de bugs potentiels.

En résumé, les différences majeures apportent avec elles une complexité dont on peut souvent se passer. Elles n’empêchent pas pour autant d’arriver à un niveau de personnalisation des applications très satisfaisant.

Conclusion

Inscrit dans une vision Produit à long terme, un app template donne la possibilité de réaliser plusieurs applications natives et d’assurer leur bonne évolutivité. Cette approche accélère également la résolution des bugs et des crashs qui font partie de la vie des logiciels. Le tout en bénéficiant de l’expérience accumulée sur les multiples déclinaisons.

Enfin, tous les projets ne se prêtent pas forcément au format d’app template. Il faut un minimum de similitudes entre les applications à créer pour que l’investissement initial en vaille la peine. Voici quelques rappels sur les éléments principaux de réflexion autour des différentes applications :

  • Quel est l’ensemble de fonctionnalités partagées ? Quel est le ratio entre celles nécessaires et celles facultatives ?
  • Les rendus graphiques visés peuvent-ils être assez proches pour être mutualisés ?
  • Les contenus sont-ils du même type ?
  • La couche logique peut-elle être la même ?

Les applications mobiles sont le canal privilégie de la relation client et se doivent donc d’être à la pointe. Dans cette optique, la prise en compte des enjeux d’industrialisation des applications mobiles est nécessaire. L’app templating répond à cette nécessité, tout en favorisant la mise en place d’une démarche Produit globale.

Vous avez apprécié cet article ? Vous avez des suggestions ? N’hésitez pas à nous contacter : [email protected] et à nous suivre sur Twitter : @applidium