Comment appréhender les crashs de mon application mobile ?

Que vous soyez en plein développement d’application mobile ou que celle-ci soit déjà lancée, il vous faudra assurer un suivi rigoureux pour assurer à vos utilisateurs une expérience optimale. Ce suivi passera par des mises à jour régulières de votre application et par la prévention des crashs.

Ainsi, comment faire en sorte que les crashs d’application mobile ne surviennent plus aussi régulièrement ?

Dans cet article, vous trouverez des conseils pour mieux appréhender et gérer les dysfonctionnements de vos applications.

Téléchargement d'application mobile : développer une relation de long terme avec vos utilisateurs

1. Qu’est-ce qu’un crash ?

1.1. Crash d’application mobile : définition

Le crash d’application mobile correspond à un dysfonctionnement technique par lequel une application se fige pour une action ou fonctionnalité donnée et nécessite la fermeture et un éventuel redémarrage. Un crash peut avoir pour origine un bug ou un défaut de codage de l’application, mais aussi un problème provenant des serveurs.

Les crashs d’applications sont beaucoup plus courants que les « plantages » de navigateurs web, car l’application doit souvent être développée pour plusieurs systèmes d’exploitation mobile (Ios, Android, Windows Phone, etc.) et peut être utilisée sur un très grand nombre de modèles de smartphones différents.

1.2. Exemples de crashs

Une application peut crasher à tout moment, que l’utilisateur soit ou non en train de naviguer sur celle-ci.

Quand l’utilisateur est en train de naviguer sur l’app, les crashs surviennent la plupart du temps après une action spécifique, comme le clic sur un bouton d’une page. Quand l’application crash, celle-ci se ferme immédiatement.

S’il s’agit d’une application sur iOS, le mobinaute sera simplement redirigé vers le menu principal.

S’il s’agit d’une application sur Android, le mobinaute sera redirigé de la même façon, mais recevra également une alerte informative.

 

En cas de crash sur Android, un message d'information apparaîtra

Exemple de message post-crash d’une application sur Android

1.3. Les conséquences d’un crash pour une marque

Le crash d’une application n’a, naturellement, que des impacts négatifs pour vous et vos mobinautes. Par ordre de gravité, les conséquences peuvent être :

  • Une expérience utilisateur détériorée : celui-ci ne comprendra pas pourquoi l’application s’est éteinte, et, ne pouvant accéder au service voulu, pourra ressentir une certaine frustration  
  • Un taux d’ouverture en baisse : à la suite d’un crash, l’utilisateur aura tendance à relancer immédiatement l’application et pourra le faire plusieurs fois de suite, si le crash intervient à l’ouverture de celle-ci. Cependant, s’il rencontre un trop grand nombre de crash sur une période prolongée, il se lassera et utilisera beaucoup moins votre application
  • La désinstallation de l’application : un utilisateur victime d’un crash pourra tout simplement désavouer votre application, en considérant qu’elle n’est pas viable
  • Une image de marque affaiblie : l’utilisateur ayant subi des crashs à répétition aura une image négative de votre marque, ce qui affaiblira votre réputation auprès de votre communauté et sur les stores
  • Une perte de business : si un trop grand nombre de mobinautes expérimentent des crashs, se plaignent ou désinstallent l’application, votre business model sera fortement compromis… et vous direz adieu à votre retour sur investissement ! Cette perte de revenu sera d’autant plus importante sur des applications d’e-commerce ou transactionnelles

Il est donc primordial d’être en mesure de déployer des plans d’actions pour les crashs dès le développement de l’application, même si ceux-ci seront, malheureusement, inévitables.

2. Pourquoi une application crash-t-elle ?

Le plantage d’une application mobile peut avoir plusieurs origines.

2.1. La raison n°1 des crashs : une application trop gourmande en mémoire !  

Certains développeurs choisissent de sortir le grand jeu pour l’UX et l’UA de leur application. Sur le papier, tout ceci paraît formidable, mais ces excès de zèle auront un effet secondaire redoutable : ils draineront de façon conséquente les ressources du smartphone.

De plus, une application ne pourra jamais attirer 100% des faveurs de son utilisateur, qui en installera et en utilisera d’autres (en moyenne, les mobinautes installent 30 applications et n’en utilisent que 5). Ainsi, si un développeur bâtit une app sans prendre en considération cet état de fait, il court droit à la catastrophe.

 

Les crashs d'applications les plus courants sont causés par un problème de stockage sur le smartphone de l'utilisateur

 

Une mauvaise gestion de la mémoire de l’application est la raison de crash la plus citée par les développeurs et les utilisateurs. Ce sera d’autant plus vrai pour les smartphones et tablettes disposant de peu de mémoire interne…

2.2. Une application trop peu ou pas testée au préalable

Une application non testée ou insuffisamment testée pourra être victime de problèmes de stabilité et de performance. Elle pourra aussi contenir des bugs liés à des parcours spécifiques dans l’app, ou situés dans les parties de l’app les moins utilisées.

Toutes ces raisons ne feront qu’augmenter la probabilité de crash de votre app.

Malheureusement, avec la multiplication des devices et des versions d’OS, il devient de moins en moins évident d’effectuer des tests couvrant l’ensemble des scénaris de l’écosystème mobile, permettant de considérer que l’application est omni-fonctionnelle.

2.3. Une application mal optimisée en termes de connectivité à internet

Aujourd’hui, les applications sont très dépendantes des accès à internet pour le transfert des données aux serveurs.

Malheureusement, si vos développeurs ont généralement accès à une connexion très haut débit, ça ne sera pas forcément le cas de vos mobinautes.

En effet, ces derniers peuvent être amenés à utiliser leurs applications dans une zone de faible réception à internet (zone géographique éloignée des réseaux, tunnels, ascenseurs…). Leur connexion internet peut également être exploitée par d’autres applications, ou par des chargements/téléchargements sur des pages web.

Ainsi, l’une des causes de crash les plus importantes résulte dans le manque de réactivité de l’app à la suite d’une requête de l’utilisateur.

Si vous concevez une application qui nécessite une puissance de transfert trop importante et qu’elle n’a pas accès au débit suffisant, elle pourra être amenée à subir un brouillage ou une perte de paquets, ce qui entraînera généralement sa fermeture et sa relance.

La gestion des transferts de données d’une application est donc un élément majeur à prendre en compte lors de sa conception.

2.4. Une application mal codée

Et oui, le code de l’application reste central dans son bon fonctionnement et dans la survenance possible des crashs !

 

Merci Captain Obvious !

Un crash pourra être causé par :

  • Une erreur de code concernant l’affichage d’une page
  • Une erreur de code concernant la redirection vers une autre page
  • Un problème de compatibilité avec l’OS/le device utilisé
  • Un problème de compatibilité d’un SDK externe intégré dans l’app

2.5. Une mauvaise gestion du cycle de vie de l’application

Si l’application est trop vieille et n’a pas été mise à jour, elle pourra ne plus être compatible avec les nouvelles versions d’iOS et d’Android. Cela pourra causer des problèmes de navigation voire, dans le pire des cas, l’impossibilité d’ouvrir l’app.

De plus, la pratique de certaines formes de développement d’application, comme la méthode RAD (Rapid Application Development) utilisant un cycle itératif, peuvent causer des bugs non anticipés et des crashs en plus grand nombre.

3. Comment réagir à un crash d’application ?

3.1 Identifier la source du problème et le résoudre

Dans le meilleur des cas, un crash d’application pourra être résolu dans les minutes qui suivent. Dans le pire des cas, ce seront plusieurs jours qui seront nécessaires pour déceler d’où vient le problème, ce qui pourrait instaurer une situation de crise au sein de votre équipe.

Quoi qu’il en soit, la première règle d’or, en cas de crash, est de ne pas paniquer.

« Ne cherchez pas un coupable, mais une solution. »  

Donnez vous le temps de l’analyse et de la qualification précise du problème, et solidarisez vos équipes autour de sa résolution.

Dans la mesure du possible, toutes les parties prenantes au projet doivent être réunies (développeurs, exploitants, équipes techniques et fonctionnelles, testeurs…) autour d’une table pour avancer sur un plan d’action commun.

 

Ne cherchez pas un coupable, mais une solution !

 

Quand vous identifierez la raison du problème, faites un bilan général et construisez une feuille de route pour la phase de résolution. Des conclusions devront être tirées pour améliorer :

  • La phase de développement et de recette de l’application avant le lancement/les mises à jour
  • Les circuits de communication entre les équipes
  • La gestion de crise / les ressources
  • Le plan de communication associé à chaque crash afin de re-onboarder vos utilisateurs

 

Revenons ainsi aux causes les plus courantes de crash mentionnées plus haut. Comment y faire face ?

3.1.1 Allégez votre application

La règle la plus importante à retenir est de concevoir son application comme une entité faisant partie d’un écosystème plus large. Gardez à l’esprit que vos mobinautes ne possèdent pas tous un smartphone avec une capacité de mémoire identique, et que les problèmes de gestion de mémoire sont courants. De plus, ils utilisent généralement d’autres applications et services sur leur smartphone, qui viennent à leur tour occuper cet espace si précieux.

Les éditeurs l’ont bien compris et sont de plus en plus nombreux à sortir une version Lite de leur application. Attention cependant à ne pas alléger l’application au point de la rendre inutile. Récemment, la version Lite de l’application Spotify a notamment été jugée trop réduite dans ses fonctionnalités par la critique.

Si vous souhaitez réellement optimiser l’UX et l’UA de votre application, trouvez le juste équilibre entre une application peu volumineuse qui gardera néanmoins assez de substance pour offrir à son utilisateur une expérience riche.

Il est intéressant de noter que l’écosystème Android propose des outils de gestion de mémoire assez puissants, permettant aux développeurs d’avoir plus de liberté pour gérer la mémoire de leur application. Pour iOS, les langages de programmation Swift et Objective-C offrent des outils très efficaces pour la gestion de la mémoire, souvent automatisés.

 

Conception d'une application : pensez à anticiper les crashs autant que possible !

 

De plus, certains autres actions permettent d’alléger davantage votre application.

La gestion de l’apparition des fichiers images/vidéos est notamment cruciale car ce sont les fichiers les plus volumineux. Faites donc en sorte que ces fichiers ne soient chargés qu’aux moments les plus opportuns dans le parcours de navigation. Pensez également à adapter la taille des fichiers pour qu’ils puissent être réduits à ce qui est uniquement nécessaire sur l’affichage des écrans.

Quand vous développez des parties de l’application en format hiérarchique, comment des listes ou des tableurs, optimisez l’affichage sur l’écran et définissez bien les parties visibles et masquées.

De nombreuses autres astuces vous permettront d’alléger la taille de vos applications, toujours dans le but d’améliorer l’expérience utilisateur.

Si vous avez vous-même expérimenté un crash en raison d’un manque d’espace sur votre téléphone, voici quelques conseils à suivre :

  • Désinstallez les applications que vous n’utilisez plus (cette option peut être gérée automatiquement sur iOS si vous l’avez autorisé dans la partie “Stockage” de vos réglages)
  • Déplacez vos fichiers sur le Cloud pour libérer de l’espace en local
  • Installez une application qui scanne l’utilisation de votre mémoire et optimise l’espace utilisé
  • Utilisez une carte SD externe si votre téléphone vous le permet
3.1.2 Testez vos applications de la bonne façon, plus régulièrement

Il sera important d’accroître la fréquence des tests et particulièrement avant le lancement d’une nouvelle mise à jour incluant des fonctionnalités supplémentaires. N’oubliez pas de vérifier également la compatibilité de votre app avec les différents SDK intégrés.

Des outils existent pour aider les testeurs dans leurs recettes, comme les simulateurs, mais ils souffrent d’un problème majeur : ils fonctionnent sur des serveurs qui n’ont pas les mêmes limitations de performances que les smartphones et tablettes. Ils ne peuvent pas non plus prendre en compte l’effet des batteries presque déchargées ou qui sont en surchauffe, les interruptions en raison d’un appel sur le device ou l’interaction avec la caméra.

C’est la raison pour laquelle il est essentiel de tester l’application sur au moins un appareil.

D’autres outils, comme Bugfender, permettent aux testeurs de tester les applications sur de vrais devices avec de vrais utilisateurs. Cela leur permet de trouver plus facilement les éventuels bugs et de les corriger dans un temps très court.

Si vous n’avez pas assez de temps ou les ressources humaines à disposition à accorder aux tests de vos applications, certaines entreprises en ont fait leur métier et s’occupent de cette phase à votre place. C’est notamment le cas d’B-Acceptance, Stardust Testing

De façon générale, la partie test devra être combinée à un benchmark des standards du secteur et des attentes des utilisateurs, afin que les développeurs puissent être au fait des contraintes techniques et pratiques pouvant impacter leur application.   

3.1.3 Connectivité, simplicité et cycle de vie de l’application

D’autres aspects seront à prendre en compte pour éviter la survenance de crashs : 

  • Optimisez la connectivité de l’application : commencez par tester la première version de votre application sur des devices avec différents débits : 4G, 3G, 2G… Notez pour chaque type de débit les moments du parcours les plus lents ou bien ceux qui bloquent la navigation. En fonction des résultats, ajustez les phases de chargement de votre application. Dans la mesure du possible, optimisez la de telle sorte qu’elle puisse rester fonctionnelle dans les zones où la couverture réseau est assez faible.
  • Construisez une application avec un parcours simple, intuitif et avec le moins de code possible : si les recettes de cuisine les plus simples sont souvent les meilleures, il en est de même pour les applications. Ne tentez pas d’ajouter trop “d’ingrédients” superflus, qui pourraient dénaturer l’UX et l’UA de votre app. Allez à l’essentiel !
  • Améliorez le cycle de vie de votre application : opter pour une gestion de projet en mode “agile” a ses avantages, mais il ne faut pas négliger l’aspect test et optimisation de l’app. Il vaudra toujours mieux prendre du temps supplémentaire pour optimiser son app, quitte à reporter la date de sa sortie, que de sortir une application en un temps record mais truffée de bugs. N’oubliez pas que vos utilisateurs vous laisseront rarement une seconde chance s’ils sont déçus de la première version de votre application.

 

Il existe de nombreuses manières de réduire les chances de crash sur une application mobile

3.2 Ré-engagez vos utilisateurs !

Le Marketing Mobile sera votre meilleur allié pour réactiver vos mobinautes dormants.

Dans un temps 1, commencez par communiquer sur tous les canaux possibles la raison du crash et votre plein engagement à sa résolution. Excusez-vous et informez votre communauté à intervalle régulier sur vos avancements, et sur le temps estimé avant la reprise du service.

Lorsque le crash sera entièrement corrigé, préparez une phase de re-onboarding de vos utilisateurs. Celle-ci peut prendre plusieurs formes :

  • Envoi d’un Push Notification informant de la résolution du problème
  • Envoi d’un Push informant d’une offre commerciale destinée à compenser le préjudice subit par l’utilisateur (abonnement gratuit, réduction du prix de certains articles, cadeaux…)
  • Sur les réseaux sociaux ou par email : promotions sur d’autres services proposés par votre marque

Soyez créatifs et n’hésitez pas à engager de gros moyens pour faire revenir vos utilisateurs !

4. Best practices pour ré-engager ses mobinautes à la suite d’un crash

Voici quelques exemples de messages Push et In-App pouvant être envoyés aux personnes ayant subi un crash.

Cas n°1 Informer l’utilisateur d’une maintenance sur une application de type serviciel

Exemple de message informatif de l'application My Allianz

Message In-App informant d’une maintenance de l’application Allianz (cas fictif)

 

Cas n°2 : Re-onboarding suite à une interruption de service sur une application de streaming

Push Notification pour re-onboarder ses utilisateurs Message In-App pour reonboarder ses utilisateurs

Push Notification avec Deeplink vers un message In-App de l’application Netflix, proposant une offre commerciale pour réparer un préjudice (cas fictif)

 

Cas n°3 : Informer sur une nouvelle mise à jour destinée à corriger des bugs ou améliorer des services

Push Notification de l'application Louis Vuitton City Guide

Push Notification de Louis Vuitton City Guide informant de la disponibilité d’une mise à jour corrective (cas fictif)

Les 4 points à retenir

  • Un crash d’application est un dysfonctionnement technique par lequel une application se fige, nécessitant la fermeture et un éventuel redémarrage
  • Concevez votre application en suivant certaines règles, de manière à diminuer au maximum le risque de crash de votre application, quitte à rallonger la phase de développement
  • En cas de crash, réunissez votre équipe technique et cherchez la source du problème, identifiez la et prévoyez un process de correction étape par étape
  • Gardez un contact constant avec vos utilisateurs pour vous excusez, les informer sur la résolution du crash et les réengager à travers des campagnes de message Push / In-App, sur vos réseaux/médias sociaux ou via l’emailing

Téléchargement d'application mobile : développer une relation de long terme avec vos utilisateurs