23 août 2023

Développer une application : méthode, outils et bonnes pratiques

Lors de la refonte ou de la sortie d’une application, dès la phase de cadrage, une question essentielle doit être traitée : sous quelle technologie front-end vais-je développer mon application ?   

En effet, de cette question découlera le recrutement de vos équipes de développeurs front-end : Android, iOS, React Native, Flutter, Cordova… Mais également le coût de ces développements et a posteriori de la maintenance applicative. 

Côté back-end, vous pouvez développer votre application à partir de langage tel que Python, Javascript ou PHP ainsi que des frameworks spécifiques au back tels que NodeJS, Django... Pour gagner du temps sur la sortie de votre projet, vous pouvez également utiliser un service Baas (back-end as a service) tel que Firebase. 

Choix de la solution front-end 

 

Flutter versus OS native

Choix d'une solution de développement © Goweb

Nous allons comparer ici deux solutions : Flutter vs OS Native (= iOS et Android). 

Flutter est un outil qui permet de construire des applications "native cross-platform" iOS et Android à partir d’un langage de programmation (Dart) et d’un seul code source.  

Nous ne construisons pas une application web qui tourne dans le navigateur, mais bien 2 applications : une iOS et une Android.  

Flutter est la combinaison :   

  • D’un SDK (Software Development Kit) : une collection d’outils qui nous permet d'écrire un seul code source car ces outils vont compiler le code en code machine natif pour iOS et Android  
  • D'un framework : une librairie de widgets pour le langage de programmation Dart. Cette librairie donne accès à une multitude de widgets (ex : buttons, tableaux...) réutilisables et personnalisables ainsi que des fonctionnalités (ex : map).  

Dart est un langage de programmation pour le front-end. L'interface utilisateur est développée par Google tout comme Flutter. Ce langage de programmation, indépendant de Flutter permet de construire tout type d’application (site web, solution saas, appli e-commerce...) 

C'est un langage orienté "objet" et est "strongly typed". Sa syntaxe s’inspire de JavaScript, Java, C# connus par la plupart des développeurs.  

IOS et Android sont des "technologies natives" : c’est-à-dire développées avec le langage de programmation de leur système d’exploitation : iOS ou Android. 

Développer une application native demande donc des compétences spécifiques, plus rares sur le marché et donc plus coûteuses. 

Vous aurez besoin de deux équipes de développeurs dédiés, ce qui risque d’augmenter vos coûts et temps de développements. 

Développer une application : prérequis 

 Comme pour tout projet, il y a au préalable une phase de cadrage

  • Pour qui vais-je développer cette application ? (interne = application métier, externe = client final)  
  • Quel est l’objectif principal ?  
  • Quelles sont les fonctionnalités primaires (MVP)? secondaires ? 
  • Quel est mon rétroplanning ?  
  • Quel est mon budget ?  
  • Quels sont mes facteurs clés de succès ?  

La définition des KPIs en amont du projet est indispensable pour driver les développements et l’allocation des ressources aussi bien humaines que financières. 

Définition des priorités

À quoi sert mon application ? Pour quelles raisons va-t-elle être téléchargée ? À quels besoins répond-elle ? La réponse à toutes ces questions va permettre de définir un backlog et un MVP = « minimum valuable product » qui conditionnera la première version de votre application

Par exemple, pour une application de routage, il faut au minimum une map, avec une recherche et la génération d’un d’itinéraire. 

Ça y est, la V1 de votre application est testée, validée et prête à être soumise aux stores

 

Developer console google play

Soumission d'application by Google © stack verflow

La soumission de l’application est une étape obligatoire qui peut prendre de quelques heures à quelques jours. La première soumission prend toujours plus de temps, car Apple Store Connect (outil de soumission d’app iOS) et Google Play (outil de soumission d’app Android) vérifient tous les éléments fournis par le développeur sur l’application. Les éléments suivants sont passés au scanner : le contenu de l’app (= test des fonctionnalités), la description, les visuels associés, l’identité de l’entreprise garante, la gestion des données personnelles... 

À chaque release, plusieurs éléments doivent évoluer : la “versionCode” de l’application (= optimisation du code de l’application) et la description de celle-ci.  
La description de votre app représente la fiche produit de celle-ci. C’est votre levier de communication principal pour la promouvoir. Vous pouvez également y associer des visuels et/ou une vidéo promotionnelle. Plus ces visuels sont cohérents avec la charte graphique de votre marque, plus ils participeront à la notoriété/promotion naturelle de celle-ci. 

Seconde release et suivantes : doit-on faire évoluer son backlog ? 

Une fois que vous avez sorti votre MVP, votre application va continuer d’évoluer et de s’enrichir de fonctionnalités. Vous avez défini en amont un rétroplanning avec des sprints, avec la méthode agile, ou des lots, avec des cycles V, de développements. 

Cependant, un nouvel entrant peut faire évoluer ces priorités : les retours utilisateurs. 

Les commentaires laissés sur les stores sont une source d’apprentissage importante. 

Vous y trouverez des commentaires type SAV, des remontées de bugs, mais parfois aussi des suggestions à étudier… L’analyse, la prise en compte et les réponses aux commentaires utilisateurs sur votre application sont des facteurs clés de réussite. 

Des fondations bien pensées pour une appli solide

Comme pour tout projet digital, la création/refonte d’une application mobile doit être pensée dans son ensemble dès la phase de cadrage. Cette phase amont va vous permettre de dimensionner de manière cohérente, vos ressources, votre budget et votre planning. 

Le choix de la solution front-end doit être réfléchi sur le long terme. L’utilisation de solution “cross platform” permet une plus grande flexibilité dans la construction de votre/vos application(s).   

Vous avez un projet d’application mobile et cherchez à constituer votre équipe ? Nos experts fronts, back et Product Owner/Manager sont là pour en discuter ! N'hésitez pas à nous contacter.