Ce blog dédié au développement android "en français" se voudrait être un blog participatif... communautaire... pas celui d'un seul homme en tout cas. Alors si vous aussi le système au petit robot vert vous donne des envies de coder, devenez membre et proposez des articles !

jeudi 29 avril 2010

Mon application plante ?

La remontée de bugs sous Android

Une des grosses interrogations des développeurs d'applications Android est de savoir si leurs applications fonctionnent correctement. On a beau tester, entre les différents terminaux et les différentes versions d'Android, difficile d'être fiable à 100%. Rien de plus angoissant alors que d'imaginer qu'une partie de ses utilisateurs rencontre un bug qui n'aurait pas été décelé lors des tests.

La sanction peut alors être rapide : notes mauvaises et commentaires désobligeants sur le market, sans que l'on comprenne forcément pourquoi.

La plateforme de développement Android ne propose pas d'outils standard pour envoyer aux développeurs les informations lors du plantage d'une application.

Les alternatives étaient jusqu'alors :
  • attendre patiemment qu'un utilisateur vous contacte pour vous faire part d'un plantage et lui demander d'installer une application de collecte de logs (aLogCat, LogCollector...) pour vous envoyer les logs par mail...
  • intégrer un Thread.UncaughtExceptionHandler qui envoie les détails du plantage à un script php (ou autre) sur un serveur... mais quel serveur ? Tout le monde n'a pas forcément un hébergement sous la main...
  • utiliser la même technique pour envoyer un mail, cf. AndroidBlogger, et prier pour que l'utilisateur accepte d'envoyer ce mail...
  • utiliser une librairie comme Flurry analytics qui parmi des tonnes de fonctions de suivi de l'activité des utilisateurs permet également de recevoir les stack traces... mais là c'est sortir l'artillerie lourde et on peut avoir des réticences (vie privée, poids de la librairie, économie de la batterie...)

Comment faire alors ?

Avec AndroidBlogger et sur la base de son UncaughtExceptionHandler envoyant des mails, nous avons mis au point une librairie simplissime pour le développeur dénommée ACRA (Application Crash Report for Android). Son principe : envoyer les rapports d'anomalie sur... un formulaire GoogleDocs !

Avec ACRA, on atteint l'objectif d'envoyer discrètement un maximum de rapports de crash sans nécessiter d'intervention de l'utilisateur tout en s'affranchissant de toute problématique d'hébergement du script de réception des rapports.

Par ailleurs, les tableaux GoogleDocs intègrent une fonction de notification sur modification, du coup le développeur bénéficie également d'une possibilité de recevoir par mail soit une notification pour chaque rapport, soit une notification quotidienne regroupant l'ensemble des rapports.

Pffff ça va être compliqué...

Mais non ! Pour résumer, il suffit de :
  1. Importer un fichier .xls fourni dans le zip de la librairie dans son compte GoogleDocs
  2. Le transformer en formulaire (3 clics)
  3. Récupérer son identifiant
  4. Ajouter le .jar d'ACRA dans son projet (13ko)
  5. Créer une classe Application héritant de la classe ACRA CrashReportingApplication
  6. Implémenter 1 méthode d'une ligne de code retournant l'id du formulaire GoogleDocs
  7. Modifier le manifest de l'application pour pointer vers la nouvelle classe d'application et utiliser la permission INTERNET
C'est tout ! Pour une version plus précise au click près, direction le Wiki du projet sur Google Code : http://code.google.com/p/acra/wiki/ACRAHowTo (en Anglais pour le moment....)

Évidemment, pour que la librairie soit utilisable au maximum, que ce soit dans des applications gratuites, payantes, libres ou non, elle est publiée sous Licence Apache 2.0. Le source est également disponible sur http://acra.googlecode.com

Aucun commentaire:

Enregistrer un commentaire