Missing
L'app de signalement de disparitions : iPhone, Android, site et back-office repris en main après le départ de son développeur
Le contexte
Missing est une application de signalement de disparitions : des personnes et des animaux. Elle est en ligne, elle a des utilisateurs, et son développeur est parti. J'ai trouvé une application iPhone en retard sur l'Android, une connexion par téléphone cassée, une carte qu'on ne pouvait plus recompiler, des paiements qui n'auraient pas passé la revue d'Apple, un site qui n'affichait plus aucune disparition, et des notifications qui ne partaient plus. Aucune mise à jour ne pouvait sortir.
Mon approche
J'ai commencé par rétablir ce qui empêchait de publier : la connexion, les plantages, la cartographie, la conformité App Store. Puis j'ai remis l'iPhone au niveau de l'Android, écran par écran, en recette sur de vrais téléphones. Ensuite sont venus les chantiers neufs, à la demande de la dirigeante : création d'un mandat en sept étapes, fiche de recherche refaite, affiche d'avis de recherche à imprimer, parrainage, abonnement de protection d'un animal, et tous les paiements rangés au bon endroit. En parallèle, j'ai refait le site et le back-office, remis en service les notifications et construit un tableau de bord de pilotage pour la dirigeante.
Ce que j'en retire
Quatre versions iPhone ont été acceptées par Apple, l'Android a suivi avec les mêmes fonctions, le nouveau site est en production et les alertes repartent. Ce projet m'a appris ce qu'aucun projet démarré soi-même n'apprend : travailler dans le code d'un autre, sans pouvoir lui poser de questions, sur une application que des gens utilisent le jour même, et accepter de passer du temps à comprendre avant de produire quoi que ce soit de visible.
Les écrans
À quoi ça ressemble

La carte des disparitions autour de soi

Le bouton SOS et le mode alerte

La déclaration d'une disparition

Les recherches suivies sur la carte

Le réseau des bénévoles

Les objets et animaux trouvés
Le site
En direct
Sous le capot
Comment c'est construit
Comprendre avant de toucher
Le développeur précédent était parti sans passation. Avant la moindre correction, j'ai relu le code, fait tourner l'app et rapproché les cent trente-six écrans Android des écrans iPhone un par un, pour savoir ce que l'app fait vraiment plutôt que ce que le dépôt laisse croire.
Deux applications remises au même niveau
L'Android avait avancé pendant que l'iPhone prenait du retard. J'ai porté sur iPhone tout ce qui manquait (profil, réglages, menu, fiche d'un bénévole, création de mandat), puis ramené l'Android à la hauteur de l'iPhone sur les nouveautés. Aujourd'hui les deux font la même chose.
Chaque paiement au bon endroit
Apple refuse une app qui vend un service par un autre moyen que son propre paiement. Dons, mises en avant, abonnement de protection d'un animal : j'ai rangé chaque achat dans le bon circuit, achat intégré Apple ou Google Play pour ce qui se consomme dans l'app, paiement en ligne pour le reste, et vérifié côté serveur que chaque achat est bien reconnu.
Vérifier contre le vrai serveur
Les cent trente-six appels de l'app ont été confrontés aux deux cent quinze routes du serveur, puis des écritures ont été faites pour de bon sur l'environnement de recette et relues en base. Rien n'est testé sur la production, tout est testé contre un serveur réel.
Un site qui charge en moins d'une seconde
Le site a été refait sur la base existante, sans la remplacer : quatorze pages reliées aux vraies données, des images qui se chargent à l'approche, soixante-treize fichiers morts retirés. Chargement complet en 0,7 seconde.
Publier reste la moitié du travail
Signature, manifeste de confidentialité, mentions d'abonnement imposées, traduction des textes, restauration des achats : une soumission refusée ne dit presque jamais où elle bloque. Quatre versions ont été acceptées par Apple en deux semaines.
iPhone
Android
Site et serveur
Paiements
Livraison