Interface d’échange avec les clients, outil de fluidification des opérations ou levier de développement de nouvelles sources de revenus… l’utilité des applications mobiles n’est plus à démontrer. De nombreuses entreprises l’ont bien compris et ont saisi l’opportunité. Fin 2022, on dénombrait ainsi plus de 3,5 millions d’applications sur le store Google Play et plus de 1,6 millions sur l’App Store d’Apple1.
Cependant, près d’un million d’applications2 — particulièrement sur Google Play — sont jugées de mauvaise qualité. D’où l’importance de se poser les bonnes questions en amont et de faire les bons choix technologiques. Quels sont les points qui doivent attirer l’attention ? Comment choisir la technologie la plus adaptée aux besoins de l’entreprise et des utilisateurs ? Quelles sont les étapes essentielles ? Et évidemment, comment choisir le bon partenaire ? David Hervé, Directeur du Pôle Applications Mobiles Connectées, Groupe IT Link, nous livre ses réponses et son analyse.
En B2C comme en B2B, les applications mobiles permettent de délivrer de nombreux services et sont même parfois le principal point de contact avec les clients ou usagers.
Les choix faits au lancement du projet auront des conséquences à court, moyen et long termes : sur le budget, sur le nombre de collaborateurs impliqués, sur les futures évolutions et nouvelles fonctionnalités mais aussi sur l’adhésion des utilisateurs au service rendu – et en conséquence, sur l’image de l’entreprise qui la propose. Cette étape est cruciale et ne doit rien laisser au hasard.
Les bonnes questions en amont
Au moment de lancer un projet d’application mobile, la question des usages est alors cruciale. En effet, ce sont eux qui permettront de décider des fonctionnalités disponibles, et donc de faire le choix des technologies les plus adaptées. Plusieurs questions principales vont alors orienter le choix :
- Quel est le public cible ?
- Quel est le matériel qu’il utilise (iOS / Android / Windows – Smartphone / Tablette) ?
- Quelles sont les fonctionnalités attendues ?
- L’application doit-elle avoir accès à des ressources matérielles du téléphone telles que le GPS, la caméra ou le Bluetooth ?
- Quel sera le volume de données à traiter ?
- Quel est le budget que l’on envisage d’y allouer, tant à la conception qu’au développement, mais aussi dans la durée, pour en assurer la maintenance et l’évolution ?
L’expérience utilisateur
En B2C comme en B2B, l’entreprise doit répondre à trois enjeux majeurs lorsqu’elle développe une application mobile :
- Proposer une expérience fluide et ergonomique
- Offrir rapidité et temps de navigation réduit
- Être opérationnelle sur la grande majorité – ou l’intégralité, dans le meilleur des cas – des marques et systèmes d’exploitation (aussi appelés « OS» : operating system).
Choisir une technologie
Enfin, les compétences de l’équipe de développement et de maintenance en interne sont aussi essentielles à considérer. Il vaut mieux choisir une technologie que ses équipes maîtrisent pour assurer la continuité de l’application dans le temps, tout en intégrant les spécificités de l’écosystème mobile : les environnements et langages évoluent vite, ce qui nécessite une veille technologique constante, des montées en compétence régulières afin d’éviter un immobilisme technologique qui serait fatal. Une citation empruntée à Confucius résume (encore aujourd’hui) la situation : « celui qui ne progresse pas chaque jour, recule chaque jour ».
Une fois les jalons posés, choisir la technologie de développement dépendra des réponses aux questions posées précédemment.
Le choix se fera alors entre :
- Développement en natif : un développement spécifique à chaque système d’exploitation mobile (iOS, Android) dans un langage natif (Swift pour iOS, Kotlin pour Android)3
- Technologie web : un développement en contenu web responsive (HTML, CSS, javascript, etc.), accessible via le navigateur du téléphone (lien direct ou PWA)
- Technologie hybride : une application mixte entre le natif et le web, où le développement web est encapsulé (React Native, Ionic/Angular) pour que l’app soit déployée sur les stores comme les apps natives
- Technologie cross-plateforme : un développement mobile à partir d’un socle commun permettant de générer des applications natives sur tous types de terminaux (Flutter, Unity, MAUI4).
Utiliser une technologie native est un excellent choix lorsque l’on souhaite proposer une application rapide, avec de bonnes performances, dont l’ergonomie respecte le design original du terminal… En particulier lorsqu’elle doit utiliser des fonctions internes (GPS, appareil photo, Bluetooth, etc.). Parmi celles-ci, Swift sur iOs et Kotlin sur Android font figure de premiers de la classe. Les deux technologies ont notamment en commun d’être recommandées et soutenues respectivement par Apple et Google. Cela signifie, entre autres, que les firmes assurent un support technique et des mises à jour régulières lorsqu’on utilise ces technologies. Une sécurité pour les développeurs et porteurs de projet, en cas de défaillance ou de gestion des erreurs.
Côté gestion de projet, il est toutefois important de noter que le choix d’applications natives implique, de fait, de mener deux projets de front, afin d’avoir une application compatible avec les
deux systèmes d’exploitation. Il faut donc s’attendre à mobiliser un plus grand nombre de partenaires et anticiper un temps de développement quelque peu plus long. Le choix revient donc toujours au besoin : quelles fonctionnalités sont attendues ? Quel délai avant la mise à disposition des apps ? Quel est le budget prévu, tant pour la phase de développement initial (build) que la phase d’exploitation (run) ?
Les technologies cross-plateformes ont également le vent en poupe. Parmi elles, Flutter s’est rapidement imposée comme incontournable. Développée par Google, Flutter vient challenger les technologies natives que sont Kotlin (Android) ou Swift (iOS).
Sa principale qualité, en tant que technologie cross-plateforme, est sa capacité à mutualiser une part importante du code (90 % voire l’intégralité) pour générer des applications natives déployables aussi bien sur Android que sur iOS, avec des performances très proches de celles des langages natifs (logique de l’app, UI moderne et fluide).
Second avantage non négligeable : il est aisé d’intégrer les spécificités des OS en Flutter. Ainsi, les fonctions natives sont accessibles directement depuis le SDK1 et les bonnes pratiques UX2 sont respectées pour chacune des plateformes.
Enfin, dernier avantage et non des moindres : Flutter dispose d’une grande communauté de développeurs. En 2023, plus de 6 millions de développeurs ont publié plus d’1,1 million d’applications. Flutter est notamment dans le top 3 des contributions des projets OpenSource sur GitHub3 — un statut qui permet à la technologie de vivre, d’être facile d’accès et d’utilisation (grâce à une suite d’outils moderne et fluide, e.g. hot reload), sans compter l’expertise de Google pour l’intégration rapide des services (Firebase, Analytics, etc.) dans la documentation et la conduite du changement.
Travailler sur une technologie cross-plateforme comme Flutter permet de gagner 30 % de temps de développement et de maintenance par rapport au développement de deux applications en natif ; 1 technologie pour 1 projet déployable sur 2 cibles = 1 seule équipe de développement = efficacité de production.
Développer une application interactive 3D, en réalité virtuelle ou réalité augmentée, demande une technologie spécifique, proposant une grande polyvalence et performance. Sur ce point, Unity, technologie présentée en 2005 à l’Apple Worldwide Developers Conference s’est rapidement imposée. Au-delà de sa polyvalence, elle est reconnue pour permettre une compatibilité multi-plateformes, offrant ainsi la possibilité de développer en une seule fois une application compatible sur iOS, Android, Windows, Mac ou Linux. Ses nombreuses qualités font par ailleurs d’elle un des choix préférés des développeurs de jeux. Elle fédère autour d’elle une grande communauté, particulièrement axée sur la collaboration. Un très grand nombre de ressources d’apprentissage et des plateformes d’entraide sont disponibles pour accompagner les débutants comme les expérimentés.
Nous recommandons particulièrement Unity pour des applications de type « serious game ». En revanche, pour une application plus « classique » en 2D, il vaut mieux se tourner vers une technologie native ou cross-plateforme. En effet, Unity implique plus de complexités, des temps de développement plus longs et des compétences plus rares sur le marché. Pour cette raison, il ne faut pas oublier de penser long terme : une application doit vivre, être corrigée et mise à jour régulièrement.
Un bon partenaire saura poser les bonnes questions, accompagner ses clients par la réalisation de workshops, et être force de proposition dans cette étape stratégique. Plus le partenaire possède des références dans de nombreuses technologies et plus il aura le recul et l’expertise suffisante au moment de choisir la bonne technologie. En outre, il sera préférable de choisir un partenaire qui accompagne son client dès la phase de conception, pour qu’elle soit centrée utilisateur : les questions de design et d’ergonomie se posent dès le début ! Et pour finir, le partenaire doit pouvoir proposer une vaste gamme d’outillage afin de maximiser l’automatisation et de minimiser l’erreur humaine.
1 Statista Research Department, 26 avr. 2023, « Nombre d’applications disponibles sur les principaux app stores 2022 »
2 https://www.ecranmobile.fr/Google-Play-souffre-d-applications-de-mauvaise-qualite-_a73200.html
3 Les anciennes technologies natives Objective-C pour iOS et Java pour Android ne sont plus utilisées pour de nouveaux développements mais peuvent être exploitées sur des travaux de maintenance d’anciennes apps.
4 La technologie .NET MAUI remplace la technologie Xamarin depuis novembre 2021.
Publiée le 14 août 2024 par ITR Mobiles
