Logo Spiria

Tout savoir sur le développement d’applications pour mobile

25 mai 2021.

Lorsqu’on a une idée de projet d’application mobile, on a souvent l’impression que la réalisation sera simple, mais au fur et à mesure que l’on avance dans le processus, on se rend bien compte que ce n’est pas si aisé que ça. En sachant à quoi s’attendre à l’avance et en connaissant les points délicats pour lesquels il faut être vigilant, vous mettrez toutes les chances de votre côté pour que votre projet soit couronné de succès.

Ce petit guide vous explique tout ce que vous devez savoir sur le développement mobile, toutes les étapes qui vont vous mener de l’idée initiale à une application téléchargeable sur l’App Store et/ou sur Google Play.

Au sommaire :

Qu’est-ce qu’une application mobile ?

What exactly is a mobile application

Une application mobile est un logiciel spécifiquement développé pour fonctionner sur un périphérique mobile à interface tactile. Cette définition prise au sens large inclut les tablettes et les montres intelligentes. Mais si l’on n’apporte pas de précision supplémentaire, tout le monde comprend que vous parlez d’une application développée pour les téléphones intelligents.

Dans de nombreux cas, une application mobile développée pour les téléphones peut aussi fonctionner sur des tablettes, puisque ces dernières utilisent généralement des systèmes d’exploitation dérivés de ceux des téléphones. Dans l’univers Apple, il est même possible de faire tourner une application iOS sur un ordinateur Macintosh (s’il est équipé au moins de la version 11 de macOS). Mais cela reste “expérimental” et les interfaces prévues pour le téléphone sont souvent inadaptées à un fonctionnement dans un environnement non tactile.

Quelles applications pour le mobile ?

Il existe une myriade d’applications pour mobile, autant pour téléphones Android que pour les iPhone. Le système d’exploitation qui est livré avec le téléphone comporte déjà un assortiment d’applications de base, comme un navigateur web, un logiciel de courriel, un gestionnaire de calendrier, un gestionnaire de contacts, une application de prise de vues pour utiliser la ou les caméras, etc. Vous pouvez ensuite compléter cette collection d’applications selon vos besoins par d’autres, à télécharger sur l’App Store d’Apple ou le Google Play Store (anciennement l’Android Market). Certaines applications sont gratuites, d’autres doivent être achetées.

Les applications se classent en 3 principales catégories dépendant des choix technologiques faits pour les produire : les applications natives, les applications multiplateformes et les applications web.

Applications natives

Les applications développées spécifiquement pour une plateforme mobile particulière sont connues sous le nom d’applications natives. Elles utilisent toutes les technologies offertes par le système d’exploitation (Android ou iOS) et par la plateforme matérielle. Elles offrent donc en théorie les meilleures performances possibles et le plus de possibilités en matière de fonctionnalités. Les applications iOS natives sont généralement écrites en langage Swift ou en Objective-C et les applications Android natives sont écrites en Java ou en Kotlin. Le revers de la médaille de l’application purement native, c’est qu’une application native destinée à un appareil Apple ne pourra pas fonctionner sur un appareil Android, et vice-versa.

Applications multiplateformes

Si l’on veut proposer une même application sur iOS comme sur Android, il existe des alternatives au développement de deux applications techniquement entièrement distinctes. Les équipes de développement ont l’option plus économique d’utiliser une base de code commune pour produire les deux versions nécessaires, ce qu’il est possible de faire grâce à certains outils comme Xamarin et Flutter. À l’arrivée, il y aura toujours deux applications produites (chacune est compilée pour sa plateforme), mais cela aura pris moins de temps à les développer. Cependant, ces applications ont certaines limitations et sont souvent plus exigeantes en matière de stockage, de puissance de calcul et de mémoire vive que des applications purement natives.

Applications web

Une application web est mise en œuvre avec les technologies du web, c’est-à-dire APIs natives, c’est-à-dire aux fonctionnalités de l’appareil). Leur principal avantage souvent avancé est un plus faible coût de développement comparativement aux apps natives et multiplateformes, mais cela n’a rien de systématique.

Il existe différents formats d’applications web. Citons parmi les plus courantes les applications hybrides qui sont encapsulées dans une application native de visualisation web (UIWebView sur iOS et WebView sur Android) et les Progressive Web Apps qui sont un format d’application en ligne poussé par Google.

Pourquoi créer une application mobile ?

C’est bien évidemment une question à se poser au préalable : pourquoi dois-je créer une application mobile ? Ai-je même vraiment besoin d’une application mobile ? Mais si vous lisez ces lignes, c’est probablement que vous avez déjà une idée assez précise du pourquoi vous avez besoin d’une application pour téléphone intelligent.

Aujourd’hui, en Amérique du Nord, 97 % des adultes possèdent un téléphone mobile et 85 % ont un téléphone intelligent (selon une étude du Pew Research Center de 2021). Chez les plus jeunes, les chiffres tendent à être encore plus forts. Le taux de pénétration des téléphones intelligents atteindrait les 89 % chez les 13-19 ans aux États-Unis (selon une étude de Common Sense de 2018). Et dès l’âge de 11 ans, plus de la moitié des enfants ont un téléphone intelligent (53 % selon la même étude).

Ainsi, le téléphone intelligent est devenu un outil de communication omniprésent, qui touche pratiquement toutes les catégories sociodémographiques. Pour beaucoup de gens, c’est aussi le seul moyen d’accès à Internet. De cet état de fait, il est le meilleur support pour atteindre la plus large population possible et accéder à des millions de nouveaux clients potentiels. Mais pour ce faire, il faudra toutefois réussir à développer l’application efficace qui répondra à un ou des besoins existants.

Il existe trois principaux types d’applications mobiles :

L’application produit : l’application est en elle-même le produit et elle est généralement vendue à l’utilisateur. Il peut s’agir d’une application grand public ou professionnelle. Elle remplit un besoin de l’utilisateur et sa manière de répondre à ce besoin conditionne son succès. Elle peut éventuellement être gratuite et se financer, par exemple, par la publicité ou par un abonnement qui permet de bénéficier de fonctionnalités additionnelles.

L’application service : généralement gratuite, elle est offerte par une entreprise en complément de son offre de services. C’est aussi un puissant outil de marketing pour entretenir le lien avec le client et lui présenter de nouvelles offres. Comme exemple typique, on citera l’application bancaire qui est offerte par toutes les banques aujourd’hui. Ces applications rendent de multiples services aux clients comme la consultation de leurs relevés de compte, le virement de sommes d’argent et la gestion de différents produits financiers. Une application de gestion de comptes bancaires réussie est utile pour l’acquisition de clients (par le bouche-à-oreille par exemple) et surtout leur rétention (puisque l’application est devenue de nos jours la principale interface d’échange entre le client et sa banque).

L’application vente : elle sert essentiellement à vendre des produits physiques et peut être accompagnée de services pour mieux fidéliser la clientèle. Elle est non seulement une “boutique en ligne” qui facilite la prise de commandes, mais aussi un important vecteur pour le marketing et la publicité. L’entreprise l’offre pour augmenter ses ventes, maintenir le lien avec sa clientèle, accroître la fidélité à la marque et accéder à de nouveaux publics dans le cadre d’une stratégie multicanale.

Les bonnes questions à se poser avant de se lancer

Après l’idéation initiale, il y a beaucoup de questions à se poser : comment puis-je créer un avantage unique pour mes futurs utilisateurs ? Quels problèmes souhaitent-ils résoudre ? Comment mon application mobile va-t-elle changer leur vie et la rendre meilleure ? Qu’est-ce qui est attrayant pour eux ? Quelle(s) fonction(s) mon application proposera-t-elle ? Est-il vraiment pertinent de se lancer dans ce projet ? Qu’offre la concurrence ? Est-ce qu’une application similaire existe déjà ? Le cas échéant, comment démontrer que votre projet sera rentable auprès des investisseurs ? Quelle stratégie marketing envisager ? Etc.

Apporter des réponses à ces questions est essentiel pour garantir le succès du projet et vous éviter d’errer en cours de route. Si vous devez faire appel à un financement externe pour le développement, répondre à ces questions est même une obligation, car les investisseurs vous les poseront.

Vous devez examiner 3 questions de base sous toutes leurs coutures : Quoi ? Pour qui ? Comment ?

Quoi : Quelle est l’idée de base de l’application et à quel besoin répond-elle ? Quelle sera sa valeur ajoutée par rapport au marché actuel ? Pourquoi maintenant ? Quelles sont les fonctionnalités de base minimales à implanter à court terme ? Quelles sont celles qui sont souhaitables à moyen terme ?

Il est important d’avoir une idée claire de ce que vous désirez créer comme application, il n’est pas nécessaire de savoir exactement le détail de toutes les fonctionnalités, mais plutôt de bien cerner à quel(s) besoin(s) cette application répondra ? En quoi se différenciera-t-elle de ce qui existe déjà… sinon, pourquoi refaire ce qui existe déjà ? Pour aller chercher le maximum de clients, vous devrez vous démarquer de vos compétiteurs.

Pour qui : Qui est votre public cible ? Des particuliers ? Des entreprises ? Et dans ce cas, les employés ou les dirigeants ? En fonction du public cible de votre application, les stratégies de vente-marketing-communication seront très différentes. Le contenu de l’application doit aussi être adapté à votre public, d’où la nécessité de définir à l’avance, et le plus précisément possible, à qui s’adressera le “produit fini”.

Comment : Quel est votre budget ? Quel est le bénéfice attendu ? Qui sont vos investisseurs ? Quels périphériques doivent-ils être compatibles ? Qui fera le développement de cette application ? Comment rentabiliser/monétiser cette application ? Quel est votre plan de communication/marketing ?

Building a mobile app

Budget alloué : Comment savoir combien coûtera votre projet d’application mobile ? C’est une question qui mérite d’être bien étudiée… Tout d’abord, quels sont le bénéfice et les retombées que vous attendez de ce projet ? Est-ce un bénéfice financier ou un bénéfice qualitatif ou les deux ? Est-ce que l’application vous permet d’automatiser des processus ou encore de générer de nouveaux revenus ? Tous ces éléments vous permettront de mieux évaluer combien vous serez prêt à investir.

Partenaires : Assurez-vous de vous entourer de vrais professionnels pour le développement de votre application. Faire le mauvais choix peut mettre en danger l’ensemble de votre projet. Faites des recherches approfondies avant de commencer. Trouvez plus un “partenaire” qu’un “fournisseur de services”, un qui vous impliquera tout au long du développement, réduisant donc les risques inhérents à tout projet.

Format de l’application : Natif, hybride, application web ? Quelles plateformes sont-elles ciblées ? Etc. Il faut répondre le plus tôt possible à ces questions et choisir le format et les technologies en ayant en tête votre vision à long terme ; vos partenaires sauront vous guider à ce stade. Si vous n’avez pas le budget nécessaire pour tout faire en même temps, il est toujours possible de prioriser et faire le projet par étapes, une version/plateforme à la fois par exemple.

Plan de communication et/ou de commercialisation : Le plan de communication ne doit pas être négligé, surtout dans le cadre d’une demande de financement ; c’est une des parties les plus importantes de votre préparation. Il aura un rôle à jouer afin de séduire les investisseurs au moment de présenter votre projet. Plus votre plan est clair et bien structuré, plus il sera convaincant.

Quand : Quel est votre échéancier ? À quelle date désirez-vous avoir votre première version ? Il vaut toujours mieux être un peu en avance qu’un peu en retard. Cela vous évite d’être forcé de prendre des décisions trop rapides, souvent à votre désavantage.

Le processus de développement d’une application mobile

1. La planification

C’est arrivé à la phase de planification que l’on s’assure d’avoir apporté des réponses à toutes les questions traitées dans le chapitre qui précède. La planification est une phase fondamentale du développement d’une application, basée essentiellement sur des rencontres exploratoires et d’analyse avec l’équipe multidisciplinaire chargée du développement. Elle vise à atténuer les risques et à partir sur de bonnes bases. Il ne faut pas la bâcler ou l’esquiver, car c’est souvent là que se décide le futur succès ou l’échec. Elle sert à définir le concept, à préciser les contours du produit, à identifier le public cible et à jauger la pertinence de chaque fonction offerte.

2. Les requis

Cette étape reprend le travail effectué à l’étape de planification et ajoute un niveau de précision supplémentaire pour faire un inventaire le plus exhaustif possible des besoins et des objectifs de l’application mobile. La transcription de ceux-ci se détaille en fonctionnalités applicatives qui pourront être priorisées en équipe (par “sprints”) pour le design et le développement. À la fin de cette tache, vous avez normalement tous les éléments pour évaluer les coûts du projet.

3. Le design et le prototypage

Une fois les requis bien définis, une schématisation de l’architecture de l’application est faite lors de cette phase. Elle peut prendre différentes formes. Elle peut décrire l’architecture technologique (matérielle et logicielle), les interfaces exposées à différents services ou à des sources de données, par exemple.

Aussi, une analyse de l’expérience usager (User Experience) permet de bâtir des maquettes fonctionnelles (Wireframes) pour valider la fonctionnalité visuelle (User Interface), l’ergonomie et l’usage efficient de navigation au sein de l’application. L’objectif de la conception UX/UI d’une application mobile est de créer d’excellentes expériences utilisateur via des interfaces interactives, intuitives, fluides, efficientes et conviviales. Le succès d’une application mobile repose en grande partie sur la qualité de son design qui influe sur la façon dont les utilisateurs adoptent et utilisent toutes les fonctionnalités.

Diverses preuves de concepts peuvent donner lieu à des prototypes fonctionnels. Elles sont ainsi validées et testées du côté frontal (Front-End) avec des utilisateurs représentatifs du public cible avant de pouvoir se lancer dans la prochaine étape.

Spiria offre un service de “processus Découverte” qui inclut ces trois premières phases. Son l’objectif est de planifier tout futur produit logiciel et d’offrir en fin de parcours des prototypes fonctionnels et une feuille de route claire et complète.

Process

4. Le développement logiciel

Comme le nom l’indique, c’est l’étape où les développeurs écrivent le code de l’application (Front-End et Back-End) et connectent les interfaces pour atteindre les objectifs définis. Suivant la plateforme (iOS ou Android) et le genre d’application, les développeurs sont appelés à utiliser différents langages de programmation et outils logiciels. Tout ceci est développé en détail dans la section “Piles technologiques” que vous trouverez plus bas.

Dans le cadre de la méthodologie Agile-Scrum, c’est un processus itératif. Le client est en mesure de suivre, tester et approuver les fonctionnalités déjà codées et à venir. Ceci permet de livrer une solution opérationnelle en fonction des besoins priorisés par cycles de développement (les “sprints”).

5. Les tests et l’assurance qualité

Pendant la phase de développement, divers tests mettent à l’épreuve l’application afin de valider son comportement, sa sécurité, ses performances et son fonctionnement sur différents modèles de téléphones (réels ou virtuels). Il s’agit de contrôler une grande quantité d’aspects : les interfaces s’affichent-elles correctement sur différents formats d’écrans en dans différentes orientations, sont-elles suffisamment réactives ? L’application a-t-elle est un trop fort impact sur la charge de la batterie ? Gère-t-elle correctement la bande passante du réseau si elle est amenée à communiquer ? Est-ce que les détails des comptes-utilisateurs sont stockés de façon suffisamment sécurisée ? Etc.

Les équipes suivent des plans de tests et les résultats sont passés en revue. Durant ce travail d’assurance qualité (AQ), il y a une rétroaction continuelle entre les analystes qualité et les développeurs pour supprimer tout dysfonctionnement, erreur ou non-conformité aux attentes. Une fois que tous les problèmes relevés par les analystes qualité ont été résolus, l’application est prête à être déployée.

La réalisation de tests d’assurance qualité approfondis pendant le processus de développement est le seul moyen de s’assurer que l’application mobile sera stable, utilisable et sûre dès son premier jour.

6. Le déploiement

Le déploiement marque la fin des développements et des tests sur l’application mobile et le moment où vous pouvez mettre une bouteille de champagne au frais. Cette phase est constituée pour la plupart des applications mobiles de la mise à disposition de l’application sur une plateforme de diffusion, comme l’App Store d’Apple pour les applications iOS ou Google Play pour les applications Android.

La procédure pour iOS est la plus complexe. Il faut soumettre l’application, accompagnée de métadonnées (descriptif, catégorie, mots clés pertinents, icône de lancement, déclaration de confidentialité, etc.), à l’App Store et passer par un processus de validation qui peut prendre de quelques jours à quelques semaines. Le délai varie en fonction de la qualité de votre app, de sa complexité et de son degré de conformité aux directives de développement iOS d’Apple. Si votre application nécessite que les utilisateurs se connectent, vous devrez fournir à Apple un compte utilisateur de test.

Du côté d’Android, il n’y a pas de processus de validation de la part de Google. Tout va ainsi beaucoup plus vite : votre application est disponible au téléchargement sur le Play Store après quelques heures seulement.

(Notez qu’à partir de 2022, à l’image ce qui se pratique déjà chez Apple, les applications présentes sur Google Play devront afficher des détails sur les données qu’elles collectent, ainsi que d’autres informations sur leurs pratiques en matière de confidentialité et de sécurité.)

Les deux plateformes offrent des outils statistiques qui permettent de mesurer le succès de votre application. Les premiers téléchargements par des utilisateurs se produisent-ils ? Il est temps de déboucher le champagne.

7. La maintenance

C’est une phase où, typiquement, une autre équipe prend la relève. Cette nouvelle équipe est en quelque sorte un service à la clientèle post-déploiement. À la suite d’une période de stabilisation de la solution déployée, l’équipe de support et maintenance reste en alerte face aux demandes du client, aux rapports de plantages et aux problèmes signalés par les utilisateurs finaux. C’est elle aussi qui s’assurera que l’application restera compatible avec de nouvelles générations d’appareils mobiles et de nouvelles versions des systèmes d’exploitation.

Notez qu’une assistance rapide aux utilisateurs finaux et la mise en production fréquente de correctifs pour améliorer l’application sont essentielles pour maintenir l’engagement des utilisateurs. Encouragez aussi les utilisateurs à vous faire part de leurs commentaires et suggestions concernant votre application. Ils peuvent être une aide majeure dans l’amélioration de votre application.

Les piles technologiques populaires pour le développement d’applications mobiles

Tech Stack

Une pile technologique (“Tech Stack”) est un choix d’outils de développement qui est fait parmi l’offre de langages de programmation et d’aides logicielles disponibles pour une plateforme (iOS, Android ou multiplateforme) afin de développer le plus efficacement possible une application. Le choix de la bonne pile est dicté par la plateforme et les spécificités du projet. Certaines fonctionnalités ou performances attendues peuvent imposer un certain langage par exemple. Mais il n’y a pas en soi de bonne ou de mauvaise pile. Il y a celle qui sera le plus adaptée aux exigences de votre projet. Nous listons ci-après composants les plus communs d’une pile techno, par plateforme.

Composants de la pile technologique pour les applications iOS

Langages de programmation

Il existe deux principaux langages de programmation qui sont couramment utilisés pour le développement d’applications iOS : Objective-C et Swift.

Depuis la naissance de macOS X, Objective-C a été le langage de programmation privilégié par Apple pour écrire des logiciels autant pour les Macintosh que pour les iPhone. Il s’agit d’un surensemble du langage de programmation C, qui offre des fonctionnalités orientées objet et un moteur d’exécution dynamique. L’Objective-C est encore assez populaire, notamment dans le cadre du développement de produits complexes où il fait toujours autorité.

En 2014, Apple a introduit un nouveau langage dédié à son écosystème. Baptisé Swift, il est plus moderne, plus lisible et plus simple qu’Objective-C et il a vite suscité l’adhésion des programmeurs d’applications. En adoptant une syntaxe et des modèles de programmation modernes, il limite les erreurs les plus fréquentes et simplifie la vie des développeurs. Aussi, il est interopérable avec Objective-C. Utilisant la librairie de moteur d’exécution (runtime library) d’Objective-C, il autorise à faire coexister du code C, Objective-C et Swift dans une seule et même application.

Outils de développement

Les environnements de développement (IDE) les plus populaires sont Xcode et Appcode. Les deux sont puissants et conviviaux.

Xcode est développé par Apple et donne accès à toutes les fonctionnalités essentielles requises pour créer une application mobile iOS native. Cet outil fournit aux développeurs tous les outils nécessaires à la conception de l’interface utilisateur, au codage et aux tests. Étroitement intégré aux frameworks Cocoa et Cocoa Touch, Xcode est un environnement incroyablement productif pour créer des applications pour Mac, iPhone et iPad. Il a en outre le bénéfice d’être gratuit.

Appcode est un environnement de développement intégré pour le développement en Swift, Objective-C, C, C++ et JavaScript, construit sur la plateforme IntelliJ IDEA de JetBrains. Il offre de nombreuses fonctionnalités qui permettent d’augmenter grandement la productivité des développeurs. Contrairement à Xcode, Appcode n’est pas gratuit et il faut payer une licence annuelle pour l’utiliser.

Outils de création d’interfaces

Pour réaliser des interfaces utilisateur, les développeurs utilisent couramment UIKit et SwiftUI.

UIKit est le framework de base d’Apple pour élaborer et gérer les composants graphiques dans les applications pour iOS (iPhone), tvOS (Apple TV) et watchOS (Apple Watch).

SwiftUI est un ensemble d’outils plus moderne et sophistiqué, qui propose une approche complément différente, mais il n’offre cependant pas encore toutes les fonctionnalités d’UIKit, le framework qui a accompagné presque toute l’histoire du iPhone. De ce fait, son adoption est encore limitée, mais SwiftUI est certainement promis à un bel avenir, gagnant chaque année en maturité.

Composants de la pile technologique pour applications Android

Langages de programmation

Les développeurs d’application pour les téléphones Android ont massivement recours à deux langages de programmation : Java et Kotlin. On notera qu’il est aussi tout à fait possible de développer en C# et C++.

Java est un langage orienté objet apparu à la fin du siècle dernier, en même temps que le web. Développé à l’origine par Sun Microsystems, il est aujourd’hui la propriété d’Oracle. Naturellement portable et multiplateforme, il a vite trouvé sa place sur Android (qui est basé sur un noyau Linux) et il a été longtemps le langage en faveur de la plateforme.

Kotlin est plus léger et moins verbeux que Java, et a été créé par la société JetBrains. Largement adopté par les développeurs, il est devenu le langage le plus populaire sur la plateforme. Un état de fait entériné en 2019 par Google qui recommande Kotlin comme le langage à préférer pour le développement d’applications Android. Notons que Kotlin ne se limite pas à cette plateforme, puisqu’il permet aussi de développer pour Linux, iOS, macOS, watchOS et tvOS. Avec le SDK Kotlin Multiplatform Mobile (KMM), vous pouvez utiliser une base de code unique pour la logique métier des applications iOS et Android. Vous ne devez écrire du code spécifique à la plateforme que lorsque cela est nécessaire, par exemple pour mettre en œuvre une interface utilisateur native ou lorsque vous travaillez avec des API spécifiques à la plateforme.

Outils de développement

Android Studio est l’environnement de développement intégré (IDE) officiel du système d’exploitation Android. Construit sur la plateforme IntelliJ IDEA de JetBrains, il fonctionne sur Windows, macOS, Chrome OS et Linux. Sa fonction principale et d’éditer le code Java, Kotlin ou C# ainsi que les fichiers de configuration XML d’une application Android. Il permet également de construire l’interface de l’application. Android Studio vient avec un kit de développement logiciel (SDK) qui contient toute une panoplie d’outils nécessaires aux développeurs, notamment un compilateur, un débogueur, un émulateur basé sur QEMU, des exemples de code, des bibliothèques, des utilitaires, etc. Le SDK prend également en charge les anciennes versions de la plateforme Android, de sorte que nos développeurs peuvent corriger et améliorer des applications anciennes ou dépassées.

Outils de création d’interfaces

Jetpack Compose est une nouvelle boîte à outils moderne qui simplifie et accélère le développement de l’interface utilisateur native. Basé sur le langage Kotlin, il offre un puissant modèle de programmation déclarative, de sorte que vous pouvez simplement décrire ce à quoi votre interface utilisateur doit ressembler, et Compose s’occupe du reste.

Outils pour les développements multiplateformes

Dans de nombreux cas, une application pour téléphones intelligents vient en deux saveurs : iOS et Android. Il s’agit de ne pas laisser sur le bord de la route des clients qui n’auraient pas la bonne plateforme et de couvrir tout le marché du téléphone intelligent. Mais cela signifie devoir développer et maintenir parallèlement deux applications natives, ce qui a bien évidemment un coût loin d’être négligeable. Même si les deux versions semblent visuellement tout à fait similaires et offrent des fonctionnalités identiques, ce sont en fait deux logiciels différents avec leur propre architecture et leur propre code peu ou pas portable.

De ce problème est née l’idée de concevoir des outils qui permettent d’avoir une base de code commune pour les deux applications, et donc une seule équipe de développement. Les deux outils historiquement les plus connus pour le développement mobile multiplateforme sont Xamarin et React Native, mais une nouvelle option très séduisante a été rendue disponible en 2019 par Google : le kit de développement logiciel (SDK) à code source ouvert Flutter.

Xamarin est une solution de développement multiplateforme proposée par Microsoft. Elle permet de réutiliser pour l’essentiel le même code C# sur plusieurs plateformes : Android et iOS, mais aussi tvOS, watchOS, macOS et Windows. Cependant, vous devrez toujours écrire une couche de code spécifique à chaque plateforme en utilisant les API natives. Xamarin s’intègre parfaitement dans Visual Studio, ce qui fait que tout développeur C# reste en territoire connu. Il produit des applications compilées aux performances proches des applications purement natives.

React Native est un framework à code source ouvert utilisant JavaScript ou TypeScript pour la création d’applications mobiles. Créé par Facebook, il permet des développements accélérés et bénéficie d’une large communauté de programmeurs. React Native utilise les composants d’interface du système, ce qui donne aux applications une apparence tout à fait native. Ce framework n’est toutefois pas recommandé pour les applications qui font un usage soutenu des capacités de calcul ou qui ont certaines exigences en matière de latence.

Flutter repose sur le langage de programmation Dart lancé par Google en 2011 et conçu dès le départ pour le développement mobile. La particularité de ce SDK est d’inclure dans l’application mobile un moteur de rendu graphique ; l’affichage de l’interface ne dépend donc pas des composants du système. L’un des avantages d’une application Flutter est d’offrir une vraie compilation 32/64 bits pour les processeurs ARM, et donc d’excellentes performances.

Outils pour développer des applications web hybrides

Multiplateformes par nature, généralement rapides à développer (des outils permettent de bâtir des prototypes en un temps record), les applications hybrides peuvent beaucoup, mais elles ne peuvent pas tout, notamment en matière de performance. Elles sont cependant un choix tout à fait acceptable dans nombre de cas de figure. Pourquoi déployer toute une artillerie lourde quand une solution rapide et éprouvée se présente ? Ces applications reposent sur les technologies du web, à savoir HTML5, CSS3 et JavaScript, tout en ayant un accès plus ou moins limité aux APIs natives via des plug-ins (Cordova, Capacitor, Native Ionic). Elles sont en fait un genre d’application web en local qui est encapsulée dans une application native de visualisation web (UIWebView sur iOS et WebView sur Android).

Apache Cordova (anciennement Phone Gap) est un framework open-source qui permet d’exécuter des applications basées sur HTML/CSS pour l’aspect visuel et sur JavaScript pour la logique, et qui peuvent avoir accès à certaines fonctions matérielles matérielles telles que l’accéléromètre, la localisation (GPS), l’appareil photo, etc.

Ionic est basé sur Apache Cordova et le framework AngularJS. Également open-source, il offre plusieurs fonctionnalités additionnelles pour le développeur d’applications hybrides et offre des composants d’interface (Mobile UI Toolkit) qui permettent à l’application de sembler native.

Outils pour développer les Progressive Web Apps

Il n’y a pas d’outils spécifiques pour développer les Progressive Web Apps. Les développeurs ont un large choix d’éditeurs pour écrire les fichiers HTML, CSS, JavaScript et JSON nécessaires. Une PWA s’appuie sur des APIs web (interfaces de programmation d’applications web) pour accéder aux fonctionnalités matérielles. De ce fait, l’accès au matériel dans les PWA est très limité et différent suivant les environnements, car tous les navigateurs ne sont pas identiques.

Combien coûte le développement d’une application mobile ?

Le coût de développement d’une application mobile est bien sûr extrêmement variable. Chaque application est unique et répond à des besoins spécifiques qui varient en nombre et qui peuvent être plus ou moins complexes.

Tech Stack

Portée et complexité du projet

La vraie réponse à la question du coût de développement est aussi réaliste que peut-être décevante. Elle est : “Ça dépend”. De nombreux facteurs entrent en ligne de compte, mais les principaux sont la portée et la complexité du projet qui vont se traduire en temps de développement, et donc, en argent. Si une application simplissime peut revenir à 20 000 $, une autre offrant de nombreuses fonctions et ayant à traiter des données sensibles peut en coûter 500 000, et même bien plus, et demander plus de 10 mois avant d’être livrée.

Plus l’application comporte de fonctionnalités, plus elle prend de temps à développer et plus elle sera donc coûteuse. Il est toutefois possible de dire que la plupart des projets d’application mobile sont dans la fourchette 120 000-200 000 $ pour leur première version et qu’il faut en général de 4 à 6 mois pour le développement.

Si vous n’avez pas le budget nécessaire pour le développement de votre application, la réduction de la portée et la complexité est votre principal levier d’action. Commencez par définir ce que serait votre produit minimum viable (PMV), c’est-à-dire l’application qui répondra aux besoins essentiels de ses utilisateurs, sans aucune fonction superflue ou dont l’utilité n’est pas parfaitement validée.

Les avantages du PMV sont multiples :

  • En mettant rapidement et à moindre coût l’application sur le marché, le PMV peut permettre de commencer à générer des revenus qui serviront à financer les futurs développements.
  • Une application fonctionnelle qui a déjà des utilisateurs aide à aller chercher l’appui d’investisseurs.
  • Vous pourrez améliorer itérativement l’application en répondant à de réelles attentes exprimées par vos premiers utilisateurs et éviterez de dépenser de l’argent sur des fonctions qui ne seront dans les faits pas utilisées.

Le choix de qui va développer l’application

C’est également un facteur important dans le coût global d’un projet. La palette des options est très large, et chaque option vient avec ses propres avantages et inconvénients que nous ne détaillerons pas ici. Vous pouvez choisir une agence de développement d’applications généraliste comme Spiria, une société spécialisée dans le mobile, des travailleurs indépendants. Vous pouvez même faire le choix d’embaucher des développeurs pour assurer le travail en interne, ce qui peut être une bonne alternative dans certains cas de figure. Pour rajouter un degré de complexité à l’équation, il faut prendre en considération la qualité du ou des développeurs amenés à travailler sur votre projet, c’est-à-dire leurs compétences et expériences. Entre un développeur sénior à 130-150 $ de l’heure qui réussi à faire en une heure ce qu’un autre à 40 $ mettra cinq heures à faire, quel le choix le plus économique ? Lequel vous épargnera du temps et des maux de tête ? Ensuite, le marché est mondialisé. Vous pouvez faire développer près de chez vous, en Australie, en Ukraine, en Indonésie, en Inde, ou à peu près partout dans le monde à l’exception de l’Antarctique.

Chacune de ces multiples options vient avec son propre coût, principalement la rémunération horaire des développeurs. Un développeur indien est payé au moins cinq fois moins qu’un nord-américain, ce qui a forcément un impact sur la facture finale. En bout de ligne, la question qui doit orienter le choix est : en aurais-je pour mon argent ? Et comme pour tout autre produit ou service, la bonne réponse n’est souvent pas de sélectionner l’option la moins onéreuse, le prestataire le moins-disant.

Il faut aussi garder à l’esprit qu’une application est en quelque sorte un “objet vivant” et qu’elle continue à coûter de l’argent tout au long de son cycle de vie. Son coût se limite rarement au montant de la facture finale au jour de sa sortie. Il y a ensuite les opérations de maintenance, les mises à jour, les améliorations de fonctionnalités, d’éventuels frais pour l’hébergement de données, des licences logicielles et d’autres services externes, etc.

Les erreurs les plus fréquentes dans le développement mobile

Error

Absence de planification et de stratégie

Parmi les principales raisons de l’échec précoce d’une application mobile sur le marché, il y a la mauvaise planification et le manque de stratégie. Pour construire une appli réussie, il est impératif d’avoir un concept bien élaboré et une solide stratégie de développement dès le départ. Reportez-vous au chapitre précédent “Les bonnes questions à se poser avant de se lancer”.

Si vous ne voulez pas errer lors du processus de développement, ce qui coûte du temps, donc de l’argent, voire vous perdre en chemin, il est important d’avoir apporté des réponses précises et détaillées aux questions : quoi, pour qui et comment. Ce sont ces réponses qui vous donneront une feuille de route méthodique et de solides bases garantes d’un futur succès et de la minimisation des risques.

Absence d’étude de clientèle

Vous n’avez pas fait d’étude du marché de votre application ? Vous vous basez uniquement sur une intuition ? Vous n’avez pas les étudié les besoins, les motivations, ainsi que les comportements actuels et futurs de vos clients ? Il en résultera très souvent une application qui ne répond pas vraiment aux attentes des utilisateurs, qui ne propose pas de solution à leur problème. Si elle n’offre aucun bénéfice clair, vous aurez beau avoir le meilleur design, la meilleure interface et un développement impeccable, votre application sera jugée sans utilité et rencontrera l’échec.

Les études de clientèle permettent de concevoir et de développer chaque aspect de l’application en fonction des réels besoins et motivations de vos clients, ce qui favorise l’engagement et la fidélisation à chaque étape de son parcours. En mesurant les attentes, en en découvrant de nouvelles et en sachant la force de chacune, vous pouvez facilement prioriser les initiatives de développement et vous concentrer sur les fonctions essentielles, celles qui conditionneront le succès.

Mauvaise interface = utilisateurs insatisfaits

Les utilisateurs attendent d’une application mobile des interactions simples, fluides et efficaces. Ils ne veulent pas avoir à chercher comment atteindre leur objectif et apprécient des mécanismes intuitifs. Parfois, on veut être original et on développe des interfaces au comportement différent de ce que l’utilisateur attend, de ce qu’il a l’habitude de rencontrer dans les autres applications. C’est généralement une erreur qui peut engendrer de la frustration et de l’irritation.

Et vous ne voulez définitivement pas exaspérer vos clients au risque de les perdre. Alors, faites en sorte de lui proposer une expérience positive basée sur une hiérarchie compréhensible de l’information et des éléments de design prévisibles, ce qui leur permet de naviguer avec aisance dans votre application. C’est là qu’interviennent les tests d’utilisation qui permettent de relever d’éventuels points de friction et de s’assurer que l’interface suscitera l’adhésion de son public cible.

Mauvais choix technologique

Le mauvais choix technologique est un grave écueil aux conséquences coûteuses. C’est aussi une erreur pernicieuse, parce que ses effets peuvent se révéler bien après la mise en production initiale de l’application, par exemple au moment de faire évoluer l’application, de la porter sur un autre système initialement non-prévu ou au moment de gérer une montée en charge. Et il y a malheureusement des cas où il faut tout reprendre à zéro, ou presque. Les choix technologiques se font en début de parcours, avant d’avoir écrit la moindre ligne de code. Il faut donc y accorder toute son attention avant qu’il ne soit trop tard pour faire marche arrière. Il est capital de prendre le temps de se poser les bonnes questions, notamment sur l’avenir, sur les perspectives de potentielles évolutions futures.

Pauvre exécution

Le public de votre application mobile ne vous laissera pas une seconde chance de faire bonne impression. Interface confuse, comportements irritants, bogues de fonctionnement, plantages, etc. autant de raisons qui vont faire que votre application ne sera pas utilisée et probablement supprimée du téléphone. Le meilleur moyen de ne pas faire souffrir vos clients/utilisateurs est de leur fournir une application qui a été mûrement réfléchie, dont le design a été réalisé par des professionnels des interfaces, dont le développement a été fait dans les règles de l’art par des programmeurs aguerris et dont la qualité vérifiée par tout un arsenal de tests. Rogner sur certains postes, par exemple le design ou l’assurance qualité, n’est jamais une bonne solution. Il y a des moments où il vaut mieux ne rien faire du tout que de sortir une application bancale qui souffre d’une pauvre exécution, ce qui revient en fin de compte à jeter de l’argent par les fenêtres.

Prêt à vous lancer ?

Mobile app success

Vous avez un projet d’application mobile ? Spiria peut vous aider à la transformer en un produit qui rencontrera son public. Nous avons une riche expérience en développement mobile, des équipes multidisciplinaires et nous maîtrisons toutes les étapes, de l’affinage de l’idée initiale jusqu’au support de l’application terminée. Vous vous posez des questions ? N’hésitez pas à contacter nos équipes de développement.