article-votre-projet-mobile-2-etape

Votre projet mobile : quels choix techniques ?

Vous avez cadré et défini les besoins fonctionnels de votre projet mobile avec votre équipe ? La prochaine étape consiste à envisager les solutions techniques pour le développer… et ce n’est pas forcément une chose aisée. En effet, les contraintes de réalisation sont nombreuses, les choix techniques multiples et les moyens de réalisation variés…Et si on vous faisait profiter de notre expérience pour vous aider à faire votre choix ☺.

QUELLES SOLUTIONS TECHNIQUES POUR VOTRE
APPLICATION MOBILE ?

Les contraintes

Avant de sélectionner les solutions les plus adaptées au contexte de votre application mobile ainsi qu’à votre situation, il vous faut tenir compte de nombreux paramètres, que nous vous avons listés :

  • Le budget et ressource disponible
  • Les délais de mise en œuvre (deadlines imposées)
  • Le volume d’utilisateurs attendus
  • La sécurité des données et les contraintes légales
  • La maintenance évolutive (OS, Apis, data privée…)
  • La fréquence des MAJ
  • Le backoffice mobile (CMS, marketing, monitoring…)
  • Etc.

Essayez de définir de façon la plus précise chacun de ces paramètres, car ils seront la ligne directrice des choix techniques et des ressources utilisés pour le développement de votre application mobile.

Les spécificités inhérentes aux ressources et contraintes techniques dont vous disposez sont d’autant plus importantes qu’il y a de terminaux mobiles (smartphone, tablette, IoT, OS…) différents auxquels vous devrez vous adapter.

L’architecture du projet applicatif

Nous entrons dans la partie la plus « polémique » de la réflexion, car chaque développeur et chef de projet auront a priori leur petite idée sur les choix techniques envisagés…

Le sujet de la maîtrise technique apparaît souvent, soit par exemple car le développeur mobile pense mieux gérer son projet applicatif s’il développe tout (absolument tout !) en natif; soit à l’extrême opposé car le chef de projet issu d’une « culture Web » sera rassuré si l’app reprend les technologies « ouvertes » et « universelles » HTML5, pour gérer facilement le développement et l’aspect multiplateformes…

Sur la partie « front » des applications, c’est-à-dire le logiciel que vous téléchargez sur votre smartphone ou tablette, différents types de développement sont possibles. Fort de nos années d’expérience et de projets variés dans le monde mobile, voici nos différents retours sur la question, avec pour chacun leurs avantages et limites :

dev-mobile

Ensuite, vous devrez choisir comment construire la partie « back » ou « Mobile Backend » de votre app, c’est-à-dire la partie « invisible » qui lui permet d’interagir avec d’autres solutions connectées. Voici différentes possibilités :

  • Pas de backend : dans ce cas tout le code lié au projet mobile est embarqué dans l’application. L’avantage, c’est que le développeur n’a pas de problématique backend à gérer… mais les équipes (marketing, production etc.) ne pourront pas non plus gérer l’app dans sa phase d’exploitation.
    Autres inconvénients, l’intégralité du code est dans l’app, ce qui génère des problématiques de performances selon les terminaux (surtout avec les Android bas de gamme), des problématiques de sécurité (tous les codes d’accès aux infrastructures sont « en dur » dans l’app…), la nécessité de republier les apps pour chaque petite modification du code, et enfin la difficulté de maintenir le même périmètre fonctionnel des apps sur plusieurs OS mobiles avec plusieurs langages de développements différents…

  • Backend partiel : dans ce cas, certaines fonctionnalités sont gérées avec des solutions maisons réalisées ad hoc, ou avec des solutions tierces comme par exemple Batch pour les notifications, Flurry pour l’analyse… L’avantage, une bien meilleure maîtrise de l’app par les équipes qui géreront son exploitation.
    Cependant, il leur faudra également maîtriser plusieurs outils, et varier entre ces différentes plateformes, ce qui au quotidien peut faire perdre beaucoup de temps.

    https://media.licdn.com/mpr/mpr/AAEAAQAAAAAAAAjgAAAAJDdlMjI2NTg1LWM0YmItNDc3Ny1iMTQ3LWQyYWFkOTBkOGI0Mw.png

  • Backend complet (ou « 360° ») : dans ce cas il est possible de limiter les développements à l’affichage des informations sur l’app et de permettre au Mobile Backend d’intégrer un maximum de développements logiciels. L’avantage, une optimisation UX sur les apps qui auront le même périmètre fonctionnel, une facilité de mise à jour du code, une meilleure sécurité du système d’information des entreprises, une meilleure capacité à gérer la scalabilité, et une totale maîtrise de l’exploitation des apps par les équipes de management… Cependant, l’intégration d’un backend mobile nécessite une vraie réflexion en amont du projet pour bénéficier pleinement de ses outils.
    Exemples de solutions : Firebase.io (Google), Kinvey ou Apps Panel.

Vos préférences entre les choix techniques sur les parties « front » et « back » définiront l’architecture de votre projet applicatif.
Il est par exemple possible de choisir avec un petit budget de réaliser des apps POC limitées pour tester Cordova, avec des backends partiels (cf. notifications, analytics). Mais il faudra après validation « jeter » ce prototype et recoder l’ensemble de l’app « au propre », pour un véritable déploiement en production…Ou bien, vous pouvez au contraire développer d’emblée le projet avec un Mobile Backend complet qui permettra d’offrir une grande agilité d’évolution durant la phase de POC. Vous pourrez ensuite déployé votre projet en production sans le redévelopper de zéro.

En règle générale, mieux vaut partir tout de suite sur une application V1/MVP avec un Mobile Backend complet comprenant peu de fonctionnalités, puis en rajouter au fur et à mesure, plutôt que sur une « app jetable » sous Cordova avec plus de fonctionnalités testables mais qui sera à redévelopper complètement pour sa mise en production. Cela finira par vous coûter plus cher sur la globalité du projet d’application mobile.

Enfin, n’oublions pas que cet arbitrage sur l’architecture d’une application dépendra aussi des ressources disponibles au début du projet.

Quelles ressources pour développer votre app ?

En dehors des problématiques de budget, nous pouvons identifier trois façons d’appréhender l’aspect « ressources »
de votre projet mobile :

  • Ressources Internes : équipe de développeurs, stagiaires…La spécificité des outils et problématiques de développement mobile rend cette option toutefois plus complexe à gérer qu’avec un projet Web.
  • Externaliser onshore (en local) : indépendants Freelance, agences mobiles, SSII « généralistes » …Cela consiste à faire appel à des ressources externes pour compléter le savoir-faire ou la disponibilité des ressources internes.
  • Externaliser offshore : nearshore (Europe de l’Est, Ukraine, Maghreb…) Même base que l’Onshore mais avec une notion de low cost dans les coûts de développement. Mais cela s’accompagne souvent d’une qualité altérée.

En pratique, il est possible de mixer ces différentes ressources pour répondre à ses besoins, par exemple : se faire conseiller onshore par une agence mobile locale pour optimiser l’UX, faire réaliser le « front » des apps en nearshore pour compenser l’absence de ressources en interne, et enfin développer en interne le « backend » des apps pour gérer les interactions (contenu, notifications…) quand les langages nécessaires sont maîtrisés par ses équipes (NodeJS, PHP, Java…).

Dans tous les cas nous vous recommandons fortement d’avoir un chef de projet/produit qui aura le rôle de superviser et de valider chaque étape de la réalisation de l’app. Cette tâche sera d’autant plus nécessaire que si l’externalisation est conséquente et éloignée, les incompréhensions mutuelles peuvent vite être importantes et faire grimper le budget.

Le mobile étant un univers vaste et complexe, si vous souhaitez concevoir un premier projet applicatif, nous vous conseillons de vous rapprocher d’une agence mobile qui vous guidera sur les nombreuses spécificités du mobile. Vous aurez ainsi de précieux conseils adaptés à vos besoins ainsi qu’un œil averti sur ce qui deviendra nous l’espérons votre app à succès.

Vous êtes prêts pour la prochaine étape ? Découvrez le circuit de développement de votre app en 5 points clés.

Laisser un commentaire