GraphQL expliqué simplement en 5 minutes

Logo de GraphQL

2012.

Les statistiques du web mobile commencent à exploser.

Les entreprises de la tech flairent le filon des applications web responsives design accessibles via les navigateurs web.

Parmi elles, Facebook.

Sa première web app pour iOS est créée la même année. Sauf que les experts de l’expérience utilisateur du réseau social remarquent vite un gros problème : l’interface-utilisateur n’est pas fluide.

Les ingénieurs de la firme se creusent les méninges… et décident de créer une application mobile native pour iOS.

Et là encore, nouveau problème, leurs APIs REST renvoient trop d’informations et ne sont pas adaptées aux spécifications du développement mobile.

Les APIs REST consomment beaucoup trop de bande passante. Ralentissent la version mobile du réseau social. Et surtout, surchargent les serveurs en back-office pour rien.

De là, vient l’idée à Lee Byron et à deux de ses collègues de créer un nouveau langage de requêtes : GraphQL.

Publié pour la première fois en 2012, il devient open-source en 2015, et depuis, il ne cesse de séduire les développeurs web et mobiles.

Et aujourd’hui, on va parler de GraphQL, quels avantages vous pouvez en tirer et comment il fonctionne.

Let’s go.

Qu’est-ce que GraphQL ?

Pour comprendre GraphQL, vous devez savoir ce qu’est une API (si si, c’est important). Une API, ou “Application Programming interface”, est un ensemble de protocoles qui permettent à deux composants logiciels de communiquer.

Elles sont énormément utilisées dans les architectures client-serveur pour permettre à l’utilisateur de récupérer des données depuis une base de données.

C’est au concepteur-développeur de l’application de choisir et de concevoir l’interface de programmation qui sera utilisée.

GraphQL, ou Graph Query Language, est un langage de requêtes et un environnement d’exécution côté serveur pour API.

Sa particularité ? C’est la requête du client qui définit la structure des données qu’il veut.

Particularité qui a déjà séduit plusieurs entreprises, dont :

  • PayPal ;
  • Coursera ;
  • Dailymotion ;
  • GitHub ;
  • Meta.

Vous en trouverez plus en vous rendant sur le site de la fondation GraphQL (voici une partie de la liste).

Entreprises utilisant les API GraphQL

Et cette nuance est importante. Car les autres APIs les plus utilisées sont les APIs REST (Representational State Transfer).

Et elles vous renvoient des informations prédéfinies par le développeur qui a conçu l’architecture serveur. Même si elles ne correspondent pas aux besoins de l’utilisateur.

Parfois, elles envoient trop de données, et côté client, on ne sélectionne que celles qui nous intéressent. On parle d’over-fetching.

Parfois, à l’inverse, elles n’envoient pas toutes les informations, ce qui oblige à faire plusieurs appels sur la base de données. On parle d’under-fetching.

Ces deux problèmes peuvent être évités grâce à une API GraphQL.

Comment fonctionne une API GraphQL ?

Au sein d’une API GraphQL, toutes les requêtes sont des requêtes POST avec, en attribut, une structure de données.

Et c’est la structure de données passée en paramètre qui contient les noms des attributs que l’on souhaite recevoir en retour.

À l’intérieur du code de l’API, vous trouverez deux catégories de données :

  • les données « Types » ;
  • les données « Champs ».

Et parmi les objets, vous trouverez 3 types d’objets différents :

  • les objets « Requêtes », qui contiennent toutes les requêtes acceptées par l’API et qui vérifient que les formats reçus sont autorisées ;
  • les objets « mutation » qui définissent toutes les actions possibles et qui permettent de faire des modifications sur les modèles définis ;
  • les objets « abonnement », qui définissent les modèles de la base de données.

Bon, ok, tout ça, c’est un peu théorique.

Alors voici un exemple de code-source.

On va définir, en GraphQL, une structure de données représentant un concessionnaire automobile (juste son nom et son emplacement). Ensuite, on va récupérer son emplacement.

Voici ce que ça donne.

type Concessionnaire {
 nom: String
 emplacement: String
 voitures: String
}

Définition du graphe de données.

Vous voyez à quel point c’est simple ? Let’s go pour un appel en javascript.

const { ApolloClient, InMemoryCache, gql } = require('@apollo/client');
// Remplacez l'URL par l'endpoint de votre serveur GraphQL

const graphqlEndpoint = 'https://votre-serveur-graphql.com/graphql';

// Initialisez le client Apollo

const client = new ApolloClient({
 uri: graphqlEndpoint,
 cache: new InMemoryCache(),
});

// Définissez votre requête GraphQL
const GET_EMPLACEMENTS = gql`
 query {
   concessionnaires {
     emplacement
   }
 }
`;
// Effectuez la requête

client.query({ query: GET_EMPLACEMENTS })
 .then(result => {
   const emplacements = result.data.concessionnaires.map(concessionnaire => concessionnaire.emplacement);
   console.log('Emplacements des concessionnaires (GraphQL) :', emplacements);
 })
 .catch(error => {
   console.error('Erreur lors de la récupération des données (GraphQL) :', error);
 });

Prêtez bien attention à la définition du schéma de requête.

const GET_EMPLACEMENTS = gql`
 query {
   concessionnaires {
     emplacement
   }
 }
`;

Clairement, on fait comprendre au serveur qu’on ne veut que l’emplacement et rien d’autre.

Ainsi, pas besoin de filtrer le résultat qu’il retourne.

Si on fait la même chose avec une API REST, voici ce que ça donne :

const axios = require('axios');

// Remplacez l'URL par l'endpoint de votre API REST
const restEndpoint = 'https://votre-api-rest.com/concessionnaires';

// Effectuez une requête GET pour récupérer les données
axios.get(restEndpoint)
.then(response => {
const concessionnaires = response.data;
const emplacements = concessionnaires.map(concessionnaire => concessionnaire.emplacement);
console.log('Emplacements des concessionnaires (REST) :', emplacements);
})
.catch(error => {
console.error('Erreur lors de la récupération des données (REST) :', error);
});

Vous voyez la nuance sur les lignes :

const concessionnaires = response.data;

    const emplacements = concessionnaires.map(concessionnaire => concessionnaire.emplacement);

Ici, on récupère toutes les informations des concessionnaires. Et après ça, on extrait le champ qui nous intéresse.

Imaginez un peu si on avait plus d’informations sur les concessionnaires :

  • Des images de plusieurs centaines de voitures au format .png ;
  • Des vidéos de présentations ;
  • Des dizaines d’informations textuelles supplémentaires, etc.

Devinez quoi ? On aurait dû tout transférer depuis les serveurs avec une API REST pour, au final, ne garder qu’une seule colonne.

Bon, c’est un peu exagéré, généralement, on définit une API spécifique qui ne renvoie que des données précises pour chaque cas. Mais vous voyez l’idée.

Pourquoi GraphQL est (parfois) un meilleur choix qu’une API REST ?

Quel API choisir pour concevoir vos logiciels ? À quels protocoles allez-vous faire confiance pour le transfert de vos données ?

Le cabinet Postman a posé la question à plusieurs développeurs dans le monde. Et voici les résultats qu’ils ont obtenus :

Statistiques sur les architectures des API, Postman Report 2023

source : 2023 State of API Report, Postman

Dans les faits, 89 % des devs utilisent des APIs Rest dans leur pile technique contre à peine 29 % pour les APIs GraphQL (ils pouvaient choisir plusieurs réponses).

Qu’est-ce qui explique ces choix ?

1ʳᵉ Réponse : vos besoins applicatifs (ceux que vous avez listés dans votre cahier des charges).

Et pour être sûr de tirer un maximum d’avantages de GraphQL, incluez-la comme critère lorsque vous composez votre équipe de développeurs.

 2ᵉ réponse : les avantages et les inconvénients de GraphQL.

Et justement, voyons-les tout de suite.

3+1 Avantages de GraphQL

GraphQL a 4 avantages majeurs comparé à REST.

1 – Vous évitez l’under-fetching

L’under-fetching se produit lorsqu’une requête ne retourne pas toutes les données dont le programmeur a besoin.

En conséquence, il doit encore faire un appel serveur et initier un autre transfert de données pour avoir toutes les informations qu’il veut. 

Vous sentez la dégradation des performances de votre app venir ?

Du moins, ça se passe comme ça dans une API Rest.

Dans une API GraphQL, vous n’avez pas ce problème. Vous demandez des données, et le serveur vous les retourne, un point c’est tout.

2 – Vous évitez l’over-fetching

L’over-fetching est l’autre face de l’under-fetching.

Il se produit lorsque vous avez besoin d’une information, mais que l’API vous retourne tout un tas d’autres données dont vous n’avez pas besoin.

Sur les APIs REST, c’est fréquent.

On fait un appel à la base de données via une API dont les champs retours sont déjà spécifiés. Ensuite, après avoir consommé la bande passante du serveur et du client, on jette tous les champs qui ne nous intéressent pas.

Du gaspillage pur.

Et ça empire si vous avez besoin de données sur le même serveur, mais accessibles via des API différentes.

Heureusement, avec GraphQL, ça ne se produit pas.

Le développeur précise clairement les champs qu’il attend et le back-end lui fournit uniquement ceux-là.

Vous vous souvenez de l’extrait de code qu’on vous a fourni plus haut avec le concessionnaire ? C’est exactement ce qui s’y passe.

const concessionnaires = response.data;

    const emplacements = concessionnaires.map(concessionnaire => concessionnaire.emplacement);

Avec l’API Rest, malgré le fait que l’on ne souhaite avoir que l’emplacement, on télécharge d’abord toutes les données renvoyées par le serveur.

L’over-fetching est particulièrement énervant pour les applications mobiles et web car elle les ralentit fortement.

3 – Gérer les versions n’a jamais été aussi simple

Vos applications évoluent. Les versions se succèdent et parfois ne se ressemblent pas.

Très souvent, vous ajouterez ou retirerez des fonctionnalités de l’app.

Problème : vos équipes de dev vont devoir modifier les champs retournés par l’API.

Si vous utilisez REST, apprêtez-vous à de longues journées à chercher exactement quelles fonctions dépendent de quelles APIs.

Essayez de retirer un champ dans une API alors qu’il est critique pour une fonction utilisant cette API… et une pluie de bugs informatiques et de crash vont vous tomber dessus.

À l’inverse, rajoutez trop de champs dans vos APIs pour faire tourner vos nouvelles fonctions, et vos systèmes informatiques vont ralentir. Sans compter les risques de vulnérabilité accrus aux cyberattaques.

(Si vous vous reconnaissez dans l’un de ces cas, notre chef de projet informatique peut vous aider à éviter que vos applications explosent. Faites-lui un message).

Bref, la gestion des versions d’un logiciel va vous obliger à aller toucher à vos APIs et aux requêtes serveurs qui les utilisent.

Sauf si vous utilisez GraphQL.

Alors non, les APIs GraphQL ne sont pas immuables. Mais elles ont une meilleure rétrocompatibilité, sont plus simples à faire évoluer et à adapter à vos nouveaux besoins.

4 – GraphQL vous facilitent l’accès aux données éparpillées dans plusieurs bases de données relationnelles

Voici ce à quoi ressemble l’architecture des bases de données typiques des grands groupes :

Architecture typique d'une base de données distribuée

Source : Oracle https://docs.oracle.com/cd/A58617_01/server.804/a58227/ch21.html

Les silos représentent ici des bases de données.

Vous voyez où je veux en venir ? Les informations peuvent être contenues dans différents serveurs situés à des emplacements géographiques différents.

Et c’est logique : si votre entreprise ouvre une branche à Paris, vous voudrez très probablement stocker les informations de vos clients de Paris à proximité de Paris. Question de simplifier l’accès aux données de vos collaborateurs qui gèrent ces clients.

Par contre, vous n’avez pas besoin de dupliquer les informations de votre département Ressources Humaines sur place. Vous les garderez donc près de votre siège.

Et si, comme tous les GAFAM, vous décidez d’installer votre siège européen à Dublin, devinez quoi ? Vous allez assurément y stocker les informations sur vos ventes, vos finances, etc.

Pourquoi je vous parle de ça ?

Pour vous faire comprendre que vos données peuvent facilement être éparpillées dans des data centers aux 4 coins du monde.

Et il n’est pas rare que vous ayez besoin, dans une seule requête, d’informations situées dans plusieurs data centers différents.

Vos équipes de développement vont devoir faire appel à plusieurs APIs. Ensuite faire des JOIN/Merge en SQL entre les clés primaires et secondaires de leurs retours.

C’est fastidieux. Ça consomme énormément de ressources (électricité + bande passante). Enfin, ce flux de SELECT, JOIN et de MERGE diminuent la durée de vie de votre infrastructure informatique.

Pour au final ne récupérer que peu d’informations.

Avec une couche GraphQL, les performances de telles requêtes vont considérablement s’améliorer, car il s’appuie sur des technos web.

C’est ce qu’a fait Netflix lors de la création de son système de gestion des publicités Monet. En effet, ses pages devaient charger des informations éparpillées sur ses différents serveurs.

Grâce à l’ajout d’une couche de GraphQL, les pages qui chargeaient 10 MB de données n’avaient plus besoin que de 200 KB. Et les performances globales du système ont fait un boost de x8.

API REST vs API GraphQL

Les 4 inconvénients majeurs de GraphQL

Après tout ce qu’on a dit plus haut, on peut être tenté de se dire que GraphQL est la solution technique à tous vos problèmes.

Attendez.

Parce que les API GraphQL ont aussi leurs défauts.

1 – Pas de mise en cache côté serveur (ou trop complexe)

Avec une API Rest, vous savez exactement quelles informations le client va vous demander.

Et si le même client demande les mêmes informations plusieurs fois, vous pouvez les mettre en cache côté serveur pour gagner en vitesse.

C’est impossible ou très peu envisageable avec une API GraphQL.

La raison : la structure des données retours n’est pas définie côté serveur.

Une tactique utilisée par les développeurs GraphQL est de mettre les informations dans le cache du client. C’est moins efficace, mais ça marche.

2 – La courbe d’apprentissage du langage de requête peut être abrupte

REST est une norme d’échanges d’informations créée en 2000.

Ça fait 24 ans qu’elle est enseignée par défaut aux geeks et autres passionnés d’informatique par défaut.

Tous ceux qui s’intéressent aux codes informatiques et à la gestion des données doivent maîtriser par cœur la formule CRUD des API REST. (CRUD = CREATE READ UPDATE DELETE).

En conséquence, la transition du modèle CRUD vers les schémas, résolveurs, souscriptions et graphes de GraphQL peut s’avérer difficile.

3 – Il y a peu de développeurs spécialisés sur cette technologie (comparée aux API REST)

Si vous ne voulez pas, ou n’avez pas le temps de faire une montée en compétence, l’autre solution est d’embaucher un expert maîtrisant cette technologie.

Sauf que, vous vous en doutez, ils sont moins nombreux que ceux maîtrisant les interfaces de programmation d’applications REST.

En écrivant ces lignes, je suis allé faire un tour sur Fiverr, l’une des marketplace de freelance les plus populaires au monde.

J’ai fait une recherche sur le terme « Développeur API GraphQL » et ensuite, j’ai filtré les prestataires parlant français et/ou anglais.

Requête "Développeur GraphQL API" sur Fiverr

Bilan : 1.444 prestataires ( et à peine 75 qui parlent au moins le français)

À l’inverse, les développeurs d’API REST parlant français et/ou anglais sont  15.180 ! (et 656 quand je ne prend que ceux qui parlent français).

Requête "Développeur API REST" sur Fiverr

Je vous laisse faire les calculs vous-mêmes pour voir la différence de taille dans le vivier de talents disponible sur la technologie GraphQL. 

4 – Sécuriser les serveurs est plus compliqué

Sécuriser un serveur utilisant une API GraphQL présente des défis en termes de cybersécurité plus importants qu’avec une API REST.

La raison ? les réponses des points terminaux (les clients) ne sont pas statiques comme dans une API REST.

Bien sûr, il y a des moyens pour les sécuriser, sinon Facebook et tous les autres géants de la tech ne l’utiliseraient pas 😉

Et hop, transition parfaite pour le prochain point.

Comment sécuriser son API GraphQL ? (4 méthodes)

Logo de GraphQ

On est d’accord, GraphQL a ses avantages, si ça fait de votre système informatique une passoire pour hacker, hors de question de l’utiliser.

Heureusement, il existe une myriade de techniques pour transformer vos API GraphQL en coffres-forts anti-hackers.

1 – Restreindre les autorisations

Oui, GraphQL permet à l’utilisateur de demander les données qui l’intéressent.

Mais encore faut-il qu’il ait l’autorisation de lire tous les champs de données qu’il demande.

Raison pour laquelle, l’un des moyens les plus sûrs pour diminuer le risque d’attaque informatique est de limiter les autorisations.

Couplé à une politique d’authentification robuste et le chiffrement des données et vous êtes presque invulnérable.

Enfin, une autre technique consiste à surveiller les activités de l’API pour identifier et neutraliser les menaces. Ainsi, même si les identifiants d’un utilisateur sont compromis, vous pourrez rapidement repérer la source de l’attaque et la bloquer.

2 – La validation des requêtes de l’API

L’API peut être une source d’attaque.

Comment ? Il suffit que l’attaquant demande des informations sensibles ou injecte du code malveillant via un appel-serveur.

Évitez ça.

Pour cela, rien de plus simple : pensez à toujours vérifier les inputs/outputs de l’API et à les nettoyer au besoin.

Ça vous évitera notamment des attaques par injection.

3 – Gérez la complexité des requêtes avec soin

Vous vous souvenez de ce que l’on disait que GraphQL permet de limiter l’under-fetching en récupérant directement toutes les données ?

Ça aussi, ça peut être une source de vulnérabilités informatiques.

Si un individu malveillant parvient à faire une requête profonde, il peut récupérer un lot d’informations sensibles. Ou pire, il peut surcharger les serveurs qui hébergent vos données via une attaque par déni de service DDoS.

Pour parer à ça, une seule solution : limitez la profondeur et l’étendue des requêtes.

4 – Soyez vigilant sur les demandes d’introspection

L’introspection est une fonctionnalité de GraphQL qui permet au développeur de connaître le schéma de votre base de données. 

Elle révèle absolument tous les champs… ce qui peut vite devenir problématique si un individu malveillant utilise cette fonction.

Raison pour laquelle il est nécessaire de toujours restreindre et gérer soigneusement les données exposées via les points de terminaison.

Comment faire pour implémenter une API GraphQL ou une API REST sur votre projet ?

Ok.

À ce stade, vous savez ce qu’est GraphQL (et REST, vu que j’en ai beaucoup parlé). Et vous voulez savoir si ça peut booster les performances de votre application web/mobile ou de votre logiciel.

Alors comment faire ?

J’aimerais bien vous donner une réponse type faite A puis B puis C, seulement, votre projet est unique. Et les solutions techniques dont vous avez besoin le sont aussi.

Alors, j’ai une autre réponse à vous donner : venez en discuter avec notre chef de projet informatique.

En lui exposant votre projet, il pourra alors mieux vous conseiller et vous dire que faire.C’est par ici pour le rencontrer.

Combien de temps pour développer votre application mobile ? (full guide)

726 heures, 59 minutes et 43 secondes.

Je sais, vous auriez aimé avoir une réponse aussi précise.

Sauf que voilà, votre application est unique, elle est différente de toutes les autres.

Et son temps de développement l’est aussi.

Par conséquent, à défaut de pouvoir vous fournir une réponse exacte montre à la main, on a mieux à vous proposer : une estimation très précise de chaque étape de la création de votre application mobile.

Allez, on y va.

Pourquoi est-ce que la taille de votre application mobile compte ?

Saviez-vous que la première version d’Instagram a nécessité uniquement huit semaines de travail à ses développeurs ?

Interface de la première version d'Instagram
Interface de la première version d’Instagram

Vous pouviez poster des images, les partager, commenter et suivre d’autres utilisateurs. Il n’y avait pas encore certaines des fonctionnalités phares de l’app :

  • pas de réels ni de stories Instagram ;
  • aucune vidéo
  • pas de fil d’actualité algorithmique ;

À l’inverse, Spotify a pris presque deux ans pour (enfin) sortir sur les boutiques d’applications.

Pourquoi je vous parle de cela ? Pour vous rappeler que le premier paramètre dont dépend la durée de développement d’une application, c’est sa complexité.

Voici un petit guide (très) résumé pour vous aider à savoir dans quelle catégorie votre idée d’application se trouve :

  • Les petites applications mobiles : elles proposent des fonctionnalités simples et limitées, à l’instar de votre application de réveil ou la calculatrice de votre smartphone ;
  • Les applications moyennes : ce sont des apps qui ont des fonctionnalités plus élaborées, à l’instar des réseaux sociaux, des jeux et des lecteurs de musique. Comment les reconnaître ? C’est simple : elles raffolent des interactions avec les utilisateurs, de l’intégration des services externes (API) et s’appuient souvent des bases de données vastes ;
  • Les grandes applications : il s’agit d’applications proposant un très vaste panel de fonctionnalité – paiements, géolocalisations, capteurs, notifications push, design personnalisé, etc. Les applications d’e-commerce en sont les meilleurs exemples.

Fun fact : plus votre application est complexe, plus vous devrez prévoir du temps pour des aspects non-techniques et souvent oubliés.

Communication, gestion d’équipe, planification et gestion entre autres.

Maintenant que c’est dit, intéressons-nous aux différentes étapes du processus de création d’une app.

Les 5 phases typiques du processus de développement d’une app mobile (+ leurs temps respectifs)

Étape 1 : Rédiger le cahier des charges de votre application mobile

Avant de coder votre application, encore faut-il savoir avoir une idée précise du service digital à créer.

Quelles fonctionnalités doivent être présentes au sein de l’app ?

Qui seront les clients cibles ?

Quel problème allez-vous résoudre ?

Quel est l’état du marché dans lequel vous souhaitez vous lancer ?

Quelles sont les contraintes et les spécifications techniques auxquelles votre application devra faire face ?

Quelle sera la stratégie de lancement de votre application ?

Sur quel système d’exploitation mobile allez-vous la déployé ? iOS ? Android ? Les deux ?

Bref, comme tout projet, vous allez devoir consacrer beaucoup de temps à la planification de votre app.

Comptez entre 2 et 6 semaines au moins pour cette étape.

Et si vous voulez aller plus vite, alors lisez notre guide détaillé sur la rédaction d’un cahier des charges.

Étape 2 : Designer toutes vos futures interfaces (et n’essayez pas de prendre des raccourcis)

L’une des meilleures décisions que vous puissiez prendre pour réussir votre projet, c’est d’engager des UI/UX designer dès le début.

Pourquoi ? Pour au moins 3 raisons :

  • ils vous permettront d’avoir des wireframes et des prototypes rapidement, ce qui vous permettra de tester votre idée d’application avant d’avoir codé 1 ligne ;
  • ils repèrent les erreurs d’UX, notamment dans les flux utilisateurs et les parcours utilisateur ;
  • enfin, des experts en UX/UI sont les seuls à pouvoir vous créer une interface belle, ergonomique et tendance.

Et si vous croyez qu’on exagère ou que l’on prêche pour notre paroisse, détrompez-vous : le marché des applications mobiles se base surtout sur le visuel.

Si votre UI design est moche, les utilisateurs vont déguerpir moins de cinq secondes après l’avoir téléchargé.

Pareil si l’expérience utilisateur est bancale et/ou ponctuée de points de friction.

Que l’architecture de l’information est incompréhensible.

Ou qu’il faut un tutoriel pour comprendre quel élément graphique fait quoi.

Pour revenir à notre sujet, la création de vos maquettes, mockups et autres prototypes va vous prendre entre 2 et 4 semaines.

Il y a deux facteurs principaux ici :

  • Le nombre d’interfaces (pages) à produire ;
  • Et encore une fois la complexité de votre idée – qui se répercute sur les interactions et la quantité de contenus.

Et surtout : n’essayez pas de commencer à programmer avant d’avoir fini cette étape.

Car sans vos prototypes finaux, la documentation de votre projet sera incomplète.

Étape 3 : Développer l’application mobile

C’est à ce moment que vos talents en programmation (ou ceux de vos équipes) entrent en jeu.

Le codage de l’application est clairement l’étape la plus longue.

Elle dure entre 4 et 24 semaines.

Pourquoi cet écart ? Eh bien pour plusieurs raisons :

  • L’OS mobile sur lequel vous allez déployer votre app : sachez que les applications hybrides faites sur React native ou Flutter prennent moins de temps que les app natives programmées en Swift/Kotlin ;
  • Votre choix de développer soit une application hybride, soit une progressive web app (PWA) soit une application native pour Android et iOS : si vous faites une app pour chaque os, vous allez devoir créer deux applications mobiles distinctes (et ça prend plus de temps).

Bien sûr, le nombre de fonctionnalités et leur complexité comptent aussi pour beaucoup.

Étape 4 : Tester l’application mobile

L’une des erreurs à ne pas commettre, c’est de lancer votre application sans l’avoir testée.

Négligez l’importance des tests utilisateurs et vous devrez passer plus de temps en maintenance pour corriger les bugs.

Dans l’idéal, vous avez construit un MVP lors de la phase précédente et l’avez amélioré à chaque itération selon les feedbacks utilisateurs.

Mais si ce n’est pas le cas, alors armez-vous d’un groupe de testeurs qui vont… tester votre app.

Chaque fonctionnalité.

Chaque élément de l’UI.

Tous les boutons.

Le flow utilisateur.

Tout doit être passé au crible, sinon gare aux retours négatifs qui vous accueilleront sur l’App Store et le Google Play Store.

Pour que vos testeurs puissent valider tous les scénarios, prévoyez entre 2 et 4 semaines.

Étape 5 : Lancer l’application mobile

Avez-vous déjà entendu parler de l’ASEO (App Store optimization) ?

Si votre réponse est non, sachez qu’il s’agit des techniques à utiliser pour que votre application soit mieux classée sur les boutiques d’applications.

Car le marché des applications mobiles est un marché féroce et concurrentiel, vous ne pouvez pas vous permettre d’être mal référencé.

De plus, vous allez aussi devoir investir du temps et de l’énergie pour faire la communication autour de votre produit.

Idem pour engager et fidéliser une audience autour de votre écosystème.

Enfin, votre équipe de modération devra anticiper (et gérer) les feedbacks négatifs des utilisateurs mécontents.

Autant dire que cela vous prendra beaucoup de temps.

Comptez entre 1 et 3 semaines pour rendre vos applications téléchargeables depuis les magasins d’applications.

3 facteurs qui vont ralentir le développement de votre app mobile (voire le faire échouer)

Sans transition, voici trois éléments que vous devez à tout prix éviter sous peine de rallonger le délai de développement.

1 – les changements imprévus (ou pourquoi un cahier des charges précis est capital)

2011.

Si je vous parle d’un réseau social destiné au partage massif de photos et de vidéos, à quelle app pensez-vous ?

Probablement à Instagram de Meta.

Oui, mais Instagram a été une réussite.

Ce qui n’a pas été le cas d’une startup rivale qui visait le même créneau : Color Labs.

Logo de l'application color Lab
Logo de l’application color Lab

Color Labs a été fondé par Bill Nguyen en 2010 à Palo Alto.

Silicon Valley Bank, Sequoia Capital, Bain Capital et d’autres mastodontes du capital-risque ont investi 41 millions de dollars dans le projet.

Et deux ans plus tard, Color Labs a été revendu à Apple pour « à peine » 7 millions de dollars.

Comme quoi, même avec 41 millions de dollars en poche, une équipe IT composée de la crème de la crème de la Silicon Valley… le succès n’est pas garanti.

Alors pourquoi je vous en parle ?

Tout simplement parce que la raison du fiasco de cette startup tech n’était ni technique ni financière.

Elle résulte à des changements trop fréquents de la part de son chef de projet et fondateur, Bill Nguyen.

Tantôt réseau social de partage de photos entre utilisateurs géographiquement proches.

Tantôt plateforme de live streaming.

Affiche publicitaire pour Color
Affiche publicitaire pour Color

Color Labs n’a jamais vraiment été compris par ses utilisateurs (ni par ses investisseurs).

Et de l’incompréhension au bouton de désinstallation, il n’y a qu’un pas qu’ils ont vite franchi.

Alors s’il vous plaît, fixez-vous un cap et un cahier des charges et tenez-vous-y.

Pour en apprendre plus, lisez cet article un brin moqueur de TheVerge.

2 – Des développeurs inexpérimentés et une équipe IT à la ramasse

Vous vous en doutez, même le cahier des charges le plus précis restera une vue de l’esprit sans équipe qualifiée.

Si ça vous intéresse, je vous montre comment créer une équipe de rockstars du code ici.

(Ou alors, vous pouvez prendre un raccourci et directement écrire à notre chef de projet informatique😉).

3 – Des deadlines irréalistes

On l’a vu, construire une application peut prendre en quelques semaines et un an.

Alors lorsque l’on tente de raccourcir les délais en se fixant des objectifs irréalistes… le dépassement de délai et l’explosion de budget ne sont jamais loin.

Au final, combien de temps devez-vous prévoir pour la création de votre app

Ok.

Une fenêtre d’estimation entre trois mois et un an ne vous avance pas beaucoup.

Et impossible de faire un guide détaillé qui vous fournira une réponse précise à la minute près.

Par contre, on peut faire mieux : venez discuter directement avec notre chef de projet informatique.

Parlez-lui de votre projet d’application mobile – c’est gratuit et sans engagement – et il pourra vous donner une estimation réaliste.

Alors qu’est-ce que vous attendez ? C’est par ici pour transformer votre idée d’app en une application téléchargeable.

 

[Guide] Convertir un site web en app mobile en 7 étapes

Laptop posé à côté d'une tablette et d'un smartphone

Après avoir hésité entre une web app ou une application mobile, vous avez finalement opté pour la seconde option.

Maintenant que votre décision est prise, vous vous heurtez à une question plus technique : comment convertir votre site web en une application mobile ?

Bonne nouvelle : c’est exactement ce que nous allons vous montrer aujourd’hui.

C’est parti.

Sommaire

Pourquoi votre entreprise a besoin d’une application mobile ?

Cher Lecteur,

Soyons honnêtes : votre site web remplit très bien sa fonction, n’est-ce pas ?

Il est beau, ergonomique, mobile-friendly et parfaitement responsive, alors pourquoi reproposer vos contenus via une app ?

Avant de répondre à cette question, sachez que plusieurs entreprises l’ont fait (et le feront). À titre d’illustration, le New York Times, Canva ou encore Société Générale France pour ne citer que ceux-là.

Application mobile de Canva
Application mobile de Canva

Pourquoi ces entreprises ont-elles converti leurs sites web en application mobile ? Pour au moins l’une des 6 raisons suivantes.

1 – toucher son audience plus facilement

C’est sans nul doute la raison n°1 pour laquelle les entreprises créent des logiciels pour terminaux mobiles.

La raison ? Les mobinautes passent 83 % de leur temps sur les applications déjà installées sur leurs appareils mobiles.

Cher Lecteur,

Vous vous en doutez, être absent de la vie de vos clients 9 heures sur 10 est loin, très loin, d’être une bonne idée. Surtout lorsque vos concurrents les régalent avec leurs contenus via les icônes de leur app placées sur leurs pages d’accueil.

2 – Améliorer l’expérience utilisateur

Imaginez un instant que vous ayez un site web qui répertorie les restaurants dans les villes d’Europe.

Naturellement, vos clients cherchent des informations sur des restaurants proches d’eux. Pour cela, ils doivent spécifier leurs villes, ce qui fonctionne parfaitement.

Seulement, c’est exactement ce que font tous vos concurrents.

Pour rester compétitif, vous devez vous démarquer.

Et pour y parvenir, vous avez une idée de génie : anticiper les heures où vos utilisateurs vont faire rechercher une table pour dîner le soir pour leur proposer une liste de restaurants selon leurs préférences.

D’entrée de jeu, sachez-le : offrir une fonctionnalité pareille via votre site web sera tout simplement impossible.

Pourquoi ? Car vous ne disposez pas d’assez d’informations, notamment leurs positions GPS et leurs heures de connexions.

Par contre, en transformant votre site web en une application mobile, vous aurez accès à toutes ses informations et bien plus.

Mieux encore, vous pourrez offrir plus de services à vos clients, ce qui a tendance à les fidéliser davantage.

3 – Activer les notifications push

Téléphone avec des notifications push
Téléphone avec des notifications push

Pour les marketeurs, les notifications push représentent le nouveau Saint Graal, loin devant l’emailing.

Grâce à elles, vous pouvez envoyer des messages à vos prospects directement dans leurs barres de notifications. Y compris lorsqu’ils sont déconnectés du réseau internet.

Bien sûr, vous pouvez utiliser des notifications push via votre site web, mais vous risquez d’être déçu par les résultats.

Sceptique ? Combien de fois cliquez-vous sur les boutons “autoriser les notifications” qui inondent votre écran lorsque vous naviguez sur le web ?

Probablement très peu.

Raison pour laquelle les marketeurs en quête de performance (et de ventes) préfèrent activer les notifications push via une application.

4 – Étendre la présence en ligne de votre entreprise sur les boutiques d’applications

Si vous êtes désireux de vous créer un nouveau canal d’acquisition, alors vous devriez songer aux boutiques d’applications.

Faciles d’accès, elles permettent aux internautes de trouver rapidement un logiciel qui répond à leurs besoins.

Dans ce cas, pourquoi ne pas vous assurer que vos prospects tombent directement sur votre application ?

Pour cela, créez une application mobile et optimisez son référencement naturel sur les app stores et le tour est joué.

5 – Améliorer le référencement naturel SEO de votre site web

Une méthode simple pour acquérir encore plus de trafic est de capter l’attention de votre audience via une application.

Dit comme cela, ça a l’air très abstrait. Mais c’est exactement ce que font les plateformes journalistiques comme le New York Times, Fox News, The Guardian ou encore Al Jazeera pour ne citer qu’eux.

Techniquement, vous pouvez accéder à leurs contenus sur leurs sites web.

Mais n’êtes-vous pas ravi d’être alerté des dernières nouvelles directement sur votre smartphone via une notification (oui, encore elles) ? N’êtes-vous pas heureux·se de consulter ces précieux contenus directement via une application à l’ergonomie soignée ?

Concrètement, comment est-ce que les applications impactent le référencement des éditeurs de sites ?

La réponse vient encore une fois de Google : le moteur de recherche a tendance à mettre en avant les sites web avec des applications. Du moins, ceux ayant des applications avec des avis positifs.

La logique étant que si les mobinautes notent positivement votre app, alors vos contenus sont sûrement attractifs.

6 – Récolter plus de données-utilisateur

Cher Lecteur, vous savez certainement à quel point les données-utilisateurs sont indispensables pour optimiser vos parcours-clients.

Seulement, lorsqu’un internaute accède à votre site web via son navigateur, vous ne contrôlez jamais son expérience à 100 %.

La dernière mise à jour de son navigateur web est incompatible avec l’un de vos widgets ? À vous les problèmes de design.

Son browser est équipé d’un VPN ainsi que d’un bloqueur de publicités et de pop-ups et ? Oubliez toute possibilité de collecter ses données personnelles.

Dernier coup de grâce pour votre marketing : votre site web mobile ne vous donne pas accès aux données de son smartphone. Exit donc des possibilités de tracking, de segmentation, de reporting, etc.

Maintenant que vous êtes convaincu des avantages de proposer vos contenus aussi bien sur votre site web que via une app mobile, entrons dans le vif du sujet : comment convertir votre site web en application mobile ?

Adapter votre site web en application mobile en 7 étapes

Cher Lecteur,

Sans plus tarder, voici comment passer d’un site web à une application en 7 étapes.

1 – Définissez l’objectif de votre application

Avant de vous lancer dans la création de votre application mobile, posez-vous cette question : est-ce qu’elle doit être identique à mon site web ou offrir plus de fonctionnalités ?

Si vous choisissez de proposer exactement les mêmes services sur mobile, alors votre application sera un clone de votre site.

C’est ce qu’a fait Canva avec son application mobile en offrant exactement les mêmes fonctionnalités. La seule différence – et la raison de l’adoption massive de l’app – étant qu’elle est avant tout pensée pour les mobiles. Aux yeux des créatifs et des designers, ça fait toute la différence.

L’autre option, c’est que vous utilisez votre application pour fournir des fonctionnalités impossibles à implémenter avec votre site web. C’est le choix fait par IKEA avec son application IKEA Studio.

Elle utilise la réalité augmentée pour vous permettre de visualiser directement les meubles dans votre salon.

D’ailleurs, si vous avez créé votre site d’e-commerce sous Shopify et que vous cherchez à vous différencier, voici comment vous pourriez tirer parti de la RA.

2 – Choisissez le ou les système(s) d’exploitation mobile(s) de votre future app

Sur quel(s) OS mobile(s) allez-vous distribuer votre (future) application ?

En plus d’être l’un des facteurs les plus importants du budget de développement d’une app, cette décision impactera votre rentabilité.

Pour vous donner une idée, Android accapare 62.12 % du marché des smartphones contre 37.29 % pour iOS en France (chiffres de décembre 2022). Pourtant, côté rentabilité, Apple est réputé pour générer plus de revenus.

De plus, chaque éditeur vous impose des conditions à remplir pour accéder à son magasin d’applications. Ainsi, le Google Play Store est facilement accessible tandis que l’Apple Play Store rejette 40 % des demandes de publications d’applications.

Toutefois, ne vous faites pas de cheveux gris : nous vous avons préparé un guide pour braver haut la main les tests de l’équipe App review de la firme de Cupertino 😉

Pour choisir sur quel système distribuer votre app, analysez les données de navigation de vos clients sur votre site web. Vous devriez trouver cette information sur Google Analytics.

3 – Listez les futures fonctionnalités de votre site

Vous l’aurez compris, il s’agit de déterminer le périmètre des fonctionnalités de votre app mobile.

Si vous avez décidé de cloner celles déjà présentent sur votre site : recopiez-les et ajustez-les pour un usage sur mobile.

Dans le cas contraire, choisissez une agence web diablement efficace et demandez à votre chef de projet de vous définir un cahier des charges.

4 – Créez les maquettes des interfaces-utilisateurs

Saviez-vous que la raison majeure pour laquelle Apple rejette des applications vient de la mauvaise conception de leurs interfaces ?

Au moindre bug ou widget horrible esthétiquement discutable, Apple rejettera votre demande de publication.

Sceptique ? Lisez les conditions draconiennes mentionnées par la firme de Cupertino dans son guide.

Hormis Apple, ce seront surtout les utilisateurs qui crieront aux scandales si votre application n’est pas ergonomique. De plus, si vos interfaces-utilisateurs ne sont pas belles, vous aurez le combo gagnant pour déclencher une pluie d’avis négatifs.

Heureusement, vous pouvez éviter cette situation en collaborant avec un webdesigner professionnel et en suivant quelques règles :

    • optez si possible pour un menu hamburger ou fixe ;
    • créez l’UX design en reprenant les codes du design minimaliste pour les sites web ;
    • retirez tous les éléments superflus de vos interfaces.

Une fois que votre designer aura terminé la création des maquettes de l’app, il sera temps de passer à l’étape suivante.

Astuce : pour être capable de fournir des feedbacks à votre designer, voici une liste des 10 raccourcis clavier indispensables de Figma, le logiciel préféré des graphistes web 😉

5 – Choisissez le type d’application mobile à créer

Lorsqu’il s’agit de proposer les contenus de votre site web à des mobinautes via une app, 2 choix s’offrent à vous :

    • développer une Progressive Web App ;
    • créer une application native ou hybride.

Voyons-les plus en détail.

Les Progressives Web App, peu coûteuses mais peu performantes

Propulsées par Google, les PWA sont des pages web de votre site internet compilées au format .apk ou .ipa et optimisées pour les mobiles. Elles utilisent exactement les mêmes technologies et les mêmes langages de programmation (HTML5/CSS, JavaScript…) que les sites web classiques.

Vous pouvez y accéder de deux manières :

    • via une URL ;
    • en la téléchargeant depuis le Google Play Store.

Côté Apple, sans surprise, la firme maintient son lucratif marché d’applications opposé au PWA. Ce qui a 2 conséquences sur vous :

    • vous ne pourrez pas proposer votre PWA sur l’App store ;
    • Safari, le navigateur maison de la pomme, va automatiquement retirer le bouton de téléchargement de votre app.

Pire encore, Apple limite grandement l’usage des fonctionnalités de son hardware aux progressives web app : Bluetooth, détecteur de positions, notifications push, etc. Autant dire que vous serez limité auprès des utilisateurs d’iOS.

Pour résumer.

Les avantages des PWA
    • elles sont faciles à mettre en place via des builders et des plateformes No-Code ;
    • elles ne nécessitent pas de maîtriser les technologies spécifiques aux mobiles telles que React Native et Flutter ;
    • vos prospects peuvent y accéder via une URL ;
    • elles ont des coûts de développement très bas.
Les inconvénients des PWA
    • elles sont beaucoup plus lentes que des applications natives ou hybrides ;
    • vous ne pouvez pas contrôler le rendu des interfaces à 100 % ;
    • vous n’avez pas accès à toutes les fonctions du hardware ;
    • l’expérience utilisateur des usagers sous iOS sera de piètre qualité.

Sans plus tarder, passons à la prochaine solution.

Développer une app mobile custom

Cher Lecteur,

Si vous êtes en quête d’une application performante, au rendu professionnel et sur laquelle vous avez le plein contrôle, ne cherchez plus : développez une application mobile sur mesure.

Ici aussi, deux choix s’offrent à vous :

      • créer une application native qui ne fonctionnera que sur une plateforme spécifique (iOS, Android, etc.) ;
      • développer une application hybride qui prendra en charge Windows, Android et iOS.

Sachez-le, le type d’application sur laquelle vous jetterez votre dévolu va grandement impacter le coût de développement de votre app.

Les avantages des applications mobiles développées sur-mesure

Pour les marques souhaitant offrir une expérience utilisateur optimale, développer une application mobile est le choix le plus efficace. Et ce, pour plusieurs raisons :

    • elles offrent un meilleur accès aux composants des terminaux mobiles (détecteur de position, notification, accéléromètre, text to speech, SMS, etc.) ;
    • leurs performances sont de loin supérieures à celles des PWA ;
    • leurs interfaces graphiques sont parfaitement prises en charge par tous les appareils mobiles ;
    • elles fonctionnent hors-ligne.

Cerise sur le gâteau : vous n’avez pas besoin de développer intégralement une app mobile dans ce cas-ci.

À la place, faîtes appel à un prestataire spécialisé qui va développer un front-end pour mobile tout en réutilisant votre back-end.

Les inconvénients des applications sur mesure

Cher Lecteur,

Avant de vous ruer sur la page de contact de votre agence de développement web préférée, sachez que les app custom ont aussi des défauts. Notamment :

    • le temps de développement pour créer une application mobile est plus long que celui d’une PWA ;
    • elles coûtent plus cher que les PWA ;
    • leur qualité dépend grandement de votre prestataire, si vous choisissez pour une agence douteuse… gare à vous.

Hormis ces points, cette solution reste la meilleure si votre entreprise a atteint – ou veut atteindre – un certain stade de croissance.

6 – Faites tester votre app

Durant la phase de développement, votre prestataire vous a sans doute fait tester votre produit durant les cérémonies agiles.

Vous avez ainsi pu fournir des feedbacks constructifs pour corriger les défauts de l’app. Mais êtes-vous certain·e que vous avez détecté tous les défauts de conception ?

Probablement pas. Raison pour laquelle vous devriez toujours effectuer des tests utilisateurs sur toutes vos verticales.

Selon Jakob Nielsen, l’inventeur de “l’ingénierie de l’utilisabilité”, vous découvrirez 75 % des bugs de votre app rien qu’avec un panel de 5 testeurs.

7 – Optimisez votre application pour les boutiques d’applications et publiez-la

En vous lançant dans le marketing mobile, vous allez devoir lutter contre des millions d’autres applications.

Dans cette jungle de logiciels dédiés aux terminaux mobiles, vous ne serez qu’une petite icône parmi tant d’autres.

Heureusement, vous pouvez maximiser vos chances de voir votre compteur de téléchargements exploser. Et cela, grâce aux techniques d’optimisation pour les boutiques d’applications ou ASO (App Store Optimization).

En voici quelques-unes :

    • faire la promotion de votre app avant son lancement ;
    • donner un nom à votre application en lien direct avec votre activité et/ou votre marque ;
    • sélectionner les bonnes catégories primaires et secondaires lors de votre inscription sur les magasins d’applications.

Maintenant, vous avez toutes les clés en main pour convertir efficacement votre site web en application mobile.

D’ailleurs, que dîtes-vous d’en discuter avec quelques-uns de nos spécialistes ? Contactez-nous, c’est gratuit et on aime discuter avec vous !

 

App mobile ou web app : quel type d’appli choisir ?

App mobile ou web app : laquelle choisir ?

Si vous êtes ici, c’est que vous souhaitez faire développer une application pour mobile.

Seulement, vous hésitez : devez-vous opter pour le développement d’une application mobile, ou pour une application web ?

Ne vous inquiétez pas, après avoir lu ce guide, vous saurez exactement quel type d’application mobile choisir afin d’atteindre vos objectifs.

Que sont les applications mobiles et les applications web ?

Interfaces web app et mobile App de yelp.com. Source : careerfoundry.com
Interfaces web app et mobile App de yelp.com. Source : careerfoundry.com

Avec des interfaces responsive design quasi-identiques et un fonctionnement similaire, les applications mobiles et les applications web sont parfois difficiles à distinguer. Surtout pour les non-développeurs.

Et pourtant, vous le verrez, il s’agit de deux types d’applis mobiles totalement différents.

Qu’est-ce qu’une application mobile ?

Une application mobile est un logiciel spécialement conçu pour être exécuté sur un système d’exploitation mobile (Android, iOS, Windows Phone, pour ne citer qu’eux)

Pour l’utiliser, vous devez obligatoirement la télécharger et l’installer via le magasin d’applications officiel du fabricant. Chez Google, la boutique d’applications est plus connue sous le nom du “Google Play Store”. Chez Apple, on parle d’”Apple Store”.

Une fois installée sur le smartphone de vos clients, votre application mobile vous donne les pleins pouvoirs sur l’ergonomie et la conception des interfaces utilisateur.

Vous pouvez déchaîner votre créativité (ou celle de votre webdesigner) sans aucune contrainte en termes de rendu visuel.

Mieux encore, vous n’aurez pas non plus à développer des composants natifs : vous les trouverez prêts à l’emploi dans les SDK fournies par les constructeurs.

Autant de possibilités que vous pouvez utiliser pour offrir un parcours d’achat optimal à vos utilisateurs (et augmenter vos ventes).

Côté programmation informatique, développer une application mobile native nécessite de maîtriser plusieurs technologies :

  • les langages de programmation Swift/Objective-C pour iOS et Kotlin/C++/Java pour Android ;
  • un environnement de développement, Android Studio (Android) ou Xcode (iOS)

Attention toutefois : en optant pour la création d’applications mobiles, vous allez devoir développer une application pour chaque plateforme.

Qu’à cela ne tienne, vous pouvez contourner cette limite en développant des applications mobiles hybrides avec Flutter ou React Native. Contrairement à celles développées avec des langages natifs, elles peuvent être déployées sur les plateformes Android et iOS via un seul code.

Les avantages d’une application mobile

Les voici :

  • elles sont parfaitement optimisées pour les mobiles ;
  • elles ont des temps de chargement bas ;
  • elles peuvent fonctionner hors-ligne ;
  • elles offrent des fonctionnalités avancées pour le marketing mobile, notamment pour l’e-commerce ;
  • elles offrent des capacités de personnalisation de l’expérience utilisateur avancées.

Les inconvénients d’une app mobile

Les voici :

  • elles ne sont pas compatibles avec toutes les distributions des systèmes d’exploitation mobile ;
  • elles sont coûteuses à maintenir et à mettre à jour ;
  • à chaque modification, même mineure, elles doivent être approuvées par le propriétaire de l’OS afin d’être publiées sur les boutiques d’application ;
  • elles peuvent être rejetées des magasins d’applications (surtout celui d’Apple), vous empêchant ainsi de pouvoir distribuer votre app ;
  • elles offrent peu de possibilités d’améliorer leur visibilité sur les app stores.

Maintenant, passons aux web apps.

Qu’est-ce qu’une application web ?

Aussi appelées « sites mobiles », les applications web sont des sites web pensés et conçus uniquement pour les terminaux mobiles.

À mi-chemin entre le site web responsive design et l’application mobile, une web app à trois particularités :

  • elle s’exécute sur le navigateur du smartphone et n’a pas besoin d’être téléchargée ;
  • ses interfaces utilisateur ne sont conçues que pour les périphériques mobiles, pas pour les desktop ;
  • elles sont accessibles exclusivement via internet et ne peuvent pas être téléchargées via des app stores.

Vous vous en doutez, ces particularités des applications web ont leurs lots d’avantages et d’inconvénients.

Les avantages d’une web app

Voici les avantages que vous gagnerez à développer une application web :

  • vous toucherez une audience beaucoup plus large, car elle fonctionnera sur toutes les plateformes mobiles ;
  • vous n’aurez pas à faire approuver votre application par les éditeurs des apps stores ;
  • vous aurez un coût de développement de loin inférieur à celui d’une appli mobile ;
  • vous pourrez effectuer des tests utilisateurs et mettre votre application à jour à en temps réel ;
  • vous aurez accès à plus d’outils de marketing, tel que le SEO, pour promouvoir votre appli face au nombre croissant d’applications sur les app store.

Néanmoins, les web apps ont aussi des inconvénients.

Les inconvénients d’une application mobile

Les voici :

  • vous n’avez pas accès à toutes les fonctionnalités natives des OS mobiles (oubliez les notifications push) ;
  • votre application stockant ses bases de données sur des serveurs web, elle sera plus lente qu’une application mobile ;
  • vous n’aurez pas accès à certaines fonctionnalités natives fournies par les OS mobiles ;
  • vous ne pourrez pas personnaliser l’expérience utilisateur dans ses moindres détails ;
  • vous ne pourrez pas vendre le téléchargement de l’application.

Voilà, maintenant que vous connaissez tout de ces deux types d’applications, il est temps de répondre à votre interrogation : quel type d’application développer ?

Pour répondre à ces questions, armez-vous d’un bloc-notes et répondez aux 5 questions suivantes.

5 questions pour choisir entre développer une app mobile ou une web app

Développeur d'application avec IDE sur son PC

À ce stade, vous l’avez sans doute remarqué : il n’existe pas un type d’application supérieur à l’autre.

Tout dépend de votre objectif marketing, de votre entreprise… de vous.

Et pour déterminer quel type d’application développer, les questions suivantes vous seront utiles.

1 – Souhaitez-vous atteindre tous vos utilisateurs potentiels ou juste une niche ?

À partir de quels périphériques vos clients utilisent vos services digitaux ?

C’est une question cruciale à vous poser. Et ce, même si vous n’avez pas encore de client  : elle vous permet de savoir sur quel type de produit digital lancer votre offre.

Ainsi, si vos clients accèdent majoritairement à vos services sur PC, alors la meilleure option est de développer une application web. Pourquoi ? Car les CMS vous permettent de convertir votre site web en web app via un builder intégré !

Ainsi, une fois que vous aurez créé votre site d’e-commerce sous Shopify, vous pourrez demander à l’agence web de votre choix de le transformer en web app.

A contrario, si vos clients utilisent des périphériques mobiles, alors faites développer une application mobile hybride. Et pour cause, dans ce cas, leur expérience utilisateur sera la plus importante à leurs yeux, alors autant l’optimiser autant que possible.

2 – À quelle fréquence vos utilisateurs vont utiliser votre application ?

Imaginez un instant…

Il est à peine 12 heures.

C’est la septième fois de la matinée que vous vous connectez à votre messagerie professionnelle. Et pour la septième fois, vous devez aller fouiller dans votre gestionnaire de mots de passe pour retrouver vos identifiants.

Cela vous semble pénible n’est-ce pas ? Suffisamment pour chercher un concurrent plus facile à utiliser.

Si vos services sont utilisés plusieurs fois par jour, alors, il vaut mieux simplifier au maximum son utilisation : développez une application mobile et assurez-vous que votre utilisateur la télécharge.

Par contre, si vos services sont très rarement consultés, une application web fera parfaitement l’affaire.

3 – Vos services peuvent-ils supporter la latence ?

La latence est un terme informatique pour désigner le délai de transmission des données entre les différentes entités nécessaires au fonctionnement de votre appli.

Selon votre secteur d’activité, vos utilisateurs ont des degrés de tolérance différents envers celle-ci.

Si votre application est une application d’email, alors un léger décalage entre l’envoi et la réception de message est tolérable. Une app web fera parfaitement l’affaire.

A contrario, si vous créez un jeu mobile multijoueur ou une appli de trading, la moindre seconde de retard vous vaudra des avis négatifs. Et éventuellement des procès. Dans ce cas-là, développez une application mobile.

4 – quelle est la complexité de votre application ?

Cher Lecteur,

Sachez que certaines fonctionnalités natives sont inaccessibles via les applications web. Et même celles qui le sont ont des rendus visuels totalement différents des app natives.

Si votre application nécessite des fonctions complexes, par exemple la géolocalisation, optez pour une application mobile.

5 – En combien de temps voulez-vous faire développer votre application mobile ?

Interfaces de Google Analytics sur Mobile et sur son application web.
Interfaces de Google Analytics sur Mobile et sur son application web. Source : brainhub.eu

En développant une application web, vous épargnez à votre développeur d’applications et à votre chef de projet beaucoup de tâches. En voici quelques-unes :

  • La programmation d’une version pour chaque système d’exploitation mobile, voire de distributions spécifiques.

Pourquoi nous vous parlons de cela ? Car cela fait considérablement baisser le temps nécessaire pour créer votre application !

De plus, vous pourrez allouer un montant au développement de loin inférieur au budget d’une appli mobile.

Si vous souhaitez savoir avec précision quel type d’application répondra le mieux à vos exigences, venez discuter avec nos spécialistes de développement mobile.

7 facteurs pour définir le budget d’une app mobile

Combien vous coûtera votre application mobile ?

Au moment de vous lancer une nouvelle application, impossible pour vous de ne pas vous poser cette question… À part si vous disposez d’un budget illimité et de délais infinis (ce qui n’est probablement pas le cas).

En parfait Homo sapiens du 21e siècle, vous avez demandé à votre moteur de recherche : « Comment définir mon budget pour la création d’une application mobile ? ».

Et là, surprise : tous les sites de développement mobile vous donnent des fourchettes de prix larges. De 5 000 à 600 000 € voire 1 million d’euros.

Autant dire que vous n’êtes pas plus avancé 😥.

Heureusement pour vous, nous vous avons préparé ce guide grâce auquel vous aurez une estimation (précise) du coût de votre application mobile.

Quelles sont les fourchettes de prix de développement d’une application ?

Main tenant un lot de billets de dollars

Vous vous en doutez, développer une application mobile peut vous coûter extrêmement cher selon l’ampleur de vos fonctionnalités.

Ainsi, Angry Birds est connu pour avoir nécessité 100 000 € (140 000 $ de l’époque) de budget uniquement pour son développement.

Heureusement, toutes les applications ne nécessitent pas des budgets aussi élevés qu’Angry Birds. Voici les prix de développement d’une application mobile en 2022 en France selon une étude de HubSpot :

  • application basique (par exemple pour un évènement ou type vitrine) : entre 3 000 € et 10 000 € ;
  • application de type e-commerce : de 15 000 € à 35 000 € ;
  • application de type marketplace : de 20 000 € à 60 000 € ;
  • application type réseau social : entre 20 000 € et 35 000 €, mais il peut facilement atteindre les 100 000 €.

Alors oui, ces fourchettes de prix sont extrêmement larges.

Mais elles sont loin d’être inutiles.

En effet, sachant quels sont les 7 postes de dépenses qui les font varier autant, vous pouvez affiner votre budget.

Et justement, les voici.

7 postes de dépenses phares du budget de votre application mobile

Cher lecteur,

Comme tout produit ou service, le coût final d’une application dépend de nombreux facteurs. Ainsi, pour définir votre budget “création d’application”, vous n’avez qu’à jouer sur ces différents éléments.

Armez-vous d’un crayon et d’une feuille (ou ouvrez un fichier Excel) et notez les postes de dépenses suivants :

  1. la phase pré-projet ;
  2. la phase de conception des interfaces et de l’UX design ;
  3. la phase de développement et de tests utilisateurs ;
  4. la maintenance et les coûts des évolutions de votre app ;
  5. les frais de web-marketing ;
  6. les frais liés à l’OS de votre application ;
  7. les dépenses annexes.

Sans plus tarder, voyons ensemble ce qui se cache derrière ces catégories de dépenses.

1 – La phase pré-projet

Cette phase représente entre 10 et 15 % du coût d’une nouvelle application mobile.

Il s’agit du moment où le chef de projet de votre équipe agile va répondre à plusieurs questions :

  • Quelles seront les fonctionnalités de l’application ?
  • Intégrera-t-elle un back-end natif ou sera-t-elle faite en headless ?
  • Sur quelle boutique d’application sera-t-elle publiée ? Play Store ? Apple Store ? Windows Store ? Les 3 ?
  • Combien de temps sera nécessaire pour développer l’application ?
  • Quelles technologies seront utilisées par vos développeurs (Java, Swift, React Native, Flutter, un builder, etc.) ?
  • S’agira-t-il d’une application native ? hybride ?

Une fois ces réponses en poche, votre chef de projet mènera deux études indispensables pour la création de votre application :

  • l’étude technique et de faisabilité (est-ce que votre idée d’application est techniquement viable) ;
  • l’analyse marketing et concurrentielle, ou benchmarking (est-ce que votre idée d’application est commercialement viable).

Toutes ces réponses vous seront livrées sous la forme d’un cahier des charges fonctionnel. Grâce à ce document, vous pourrez choisir entre faire appel à un freelance ou plutôt à une agence web.

Côté budget, vos besoins étant parfaitement formalisés, vous pourrez déterminer s’il vaut mieux opter pour un développement en régie ou au forfait.

2 – La phase de conception

Elle représente habituellement entre 10 et 15 % du budget nécessaire à la création d’une application mobile.

C’est à ce moment que vos webdesigners dévoilent toute leur créativité pour dessiner des interfaces-utilisateurs à couper le souffle (et responsive design).

En prime, ces derniers vont aussi peaufiner l’UX design de votre app afin d’optimiser le parcours-client offert par celle-ci. Et ce, sans oublier l’expérience utilisateur.

Afin de visualiser le design de votre future application telle que la verront les mobinautes, vous recevrez régulièrement des wireframes.

3 – La phase de développement et de tests

Cette phase compte généralement pour 60 % du coût de développement de votre logiciel.

C’est à ce moment que les développeurs d’applications entrent en jeu : ils vont coder l’application grâce aux langages de programmation.

À la fin de chaque sprint – un sprint = 1 semaine chez Poyesis – vous recevrez une nouvelle version fonctionnelle de votre app mobile. Grâce à vos retours et aux données récoltées lors des tests utilisateurs, votre application sera progressivement affinée.

4 – La maintenance et les évolutions

Ici, le montant est difficile à évaluer.

Et pour cause : il dépend grandement de l’agence à qui vous avez confié le développement de votre application.

En effet, s’il s’agit d’une agence à la moralité douteuse, elle ne mentionnera pas les coûts de maintenance durant la phase de négociation. Ce n’est qu’après la livraison de votre projet que vous risquez d’être (désagréablement) surpris par une facture de maintenance salée.

Pire encore si votre application est rejetée de la boutique d’application à cause d’un bug que vous devez impérativement corriger. Elle sera en position de force et en abusera.

Notre conseil pour éviter de voir ces frais exploser est le suivant : choisissez votre prestataire avec soin et discutez dès le départ des frais de maintenance.

5 – Les frais de web-marketing

Au moment où nous écrivons cet article, nous sommes en mars 2023.

Selon Statista, 31 500 applications mobiles ont été publiées sur l’Apple store en février 2023. Côté Android, 87 000 applications ont fait leur apparition sur les écrans de téléchargement du Google Play Store.

Pourquoi nous vous donnons ces statistiques ?

Pour vous rappeler une vérité souvent oubliée du marché des applications : il est concurrentiel. Une fois votre application mobile développée, vous devrez lutter face à une myriade d’autres applications mobiles pour gagner des utilisateurs.

Par conséquent, nous vous recommandons sincèrement de prévoir des frais de publicités et de web-marketing.

Sinon, vous risquez d’être désagréablement surpris par des frais de marketing digital à la fin du développement.

6 – Le système d’exploitation

Téléphone avec le logo de l'OS Apple

Cher Lecteur,

Êtes-vous surpris d’apprendre que développer une application native iOS coûte beaucoup plus cher que de la développer pour Android ?

Accéder au marché des applications iOS peut vite s’avérer coûteux (et rentable).

De manière générale, le choix du système d’exploitation sur lequel votre app va fonctionner impacte le prix.

Premièrement, vous devez acheter une licence de développeur pour pouvoir publier votre application sur la boutique d’applications de l’éditeur. Voici les tarifs des licences chez les principaux éditeurs :

  • Google Play Store : 25 € pour une licence à vie ;
  • Apple Play Store : 99 € par an ;
  • Windows Store : entre 19 € (comptes personnels) et 99 € (comptes d’entreprise) pour une licence à vie.

Mais ce n’est pas tout.

Selon le système d’exploitation mobile que vous visez, vous devrez aussi acquérir un environnement de développement spécifique. À titre d’illustration, xCode est l’IDE indispensable pour développer une application native iOS.

Heureusement, il existe un moyen simple de faire chuter ces frais : créer une application hybride pour iOS et Android via les frameworks React ou Flutter.

7 – Les dépenses annexes

Cher Lecteur,

Les dépenses annexes désignent toutes les dépenses qui ne rentrent ni dans le développement mobile, ni dans les frais de publicités. Sans surprise, ces postes de dépenses sont fréquemment oubliés par les personnes souhaitant créer une application.

Les voici :

  • les frais de stockages de vos données sur un service cloud ;
  • les coûts d’intégration des API de services tiers à l’instar de la géolocalisation et des notifications push ;
  • les dépenses d’infrastructures informatiques (serveur, CDN, etc.) ;
  • les frais d’utilisation des IA telles que ChatGPT.

Voilà !

En jouant sur ces différents paramètres, vous pourrez définir le coût de votre application de manière précise.

Si vous voulez avoir un devis au centime près, que dites-vous de discuter de votre projet de création d’application mobile avec nos équipes ?