Sous le capot : développer une app de suivi d’aventure
Si vous ne l’avez pas encore vu, jetez un œil à mon article précédent avant de vous lancer dans celui-ci. Il présente cette série d’articles et raconte une partie de la genèse de Pebbls.
Le brouillon de cet article était bien plus long : il explorait certains détails techniques du développement de l’app. Croyez-le ou non, certaines personnes (comme moi) s’intéressent à ce genre de choses. Pourtant, deux de mes fidèles bêta-testeurs m’ont fait remarquer que, malgré un joli bouton « *Can You Read Geek* » qui masquait l’essentiel du contenu technique, si vous n’êtes pas de ce bord-là, ça risquait de faire un peu trop 😲.
Ce que vous vous apprêtez à lire est un article sur une partie du développement technique de l’app de suivi de voyage Pebbls. Si le jargon technique vous intéresse, ou si ce n’est pas le cas mais que vous avez du mal à dormir, poursuivez votre lecture. Sinon, pas de souci, vous pouvez passer celui-ci : on se retrouve la prochaine fois avec quelques conseils pour préparer votre prochaine aventure.
Si vous êtes vraiment sûr de vouloir continuer, je dois juste vérifier que vous avez bien lu l’article précédent ? Il vous aidera vraiment à comprendre la chronologie.
L’évolution de l’app de suivi Pebbls
À ce stade de l’histoire, nous sommes en juillet 2017. Il ne reste que quelques jours avant mon départ pour une aventure de 3 mois à vélo à travers la France et l’Espagne, et encore un peu moins avant mon mariage.
Développeur web full-stack indépendant et autodidacte, j’avais surtout l’habitude de concevoir et de déployer des applications web reposant sur des bases de données. Le développement d’apps mobiles, en revanche, c’était une tout autre paire de manches. Avec le temps qui filait et une longue liste de choses à faire avant le départ (dont « se marier »), il n’y avait pas le temps de monter en compétences.
À la place, j’ai bricolé une solution hybride : un montage un peu à la Rube Goldberg, avec une app tierce tournant en arrière-plan pour collecter les données GPS de l’itinéraire et une interface basique en PHP et JavaScript pour créer les Pebbls (les repères de lieu) et synchroniser les données en ligne. Cette interface tournait sur un serveur web installé sur mon téléphone Android.
L’expérience utilisateur était loin d’être idéale. Mais que peut-on attendre de quelque chose construit en moins de deux heures ? Comme j’étais le seul à devoir interagir avec cette partie du système de fortune, les imperfections ne me dérangeaient pas. C’était un peu bancal, mais ça faisait le travail.

À ce stade de mon article, j’aimerais pouvoir vous montrer quelques captures d’écran rudimentaires de l’itinéraire dans l’interface web d’origine de Pebbls (bancale, non responsive et sans chargement différé), ainsi qu’une carte intégrée présentant ce tout premier voyage. Après tout, c’était la genèse de Pebbls, le moment où notre aventure de lune de miel a été immortalisée. Mais je ne peux pas. L’ironie, c’est qu’après d’innombrables versions et réécritures du code, les données de ce voyage, celui pour lequel Pebbls a été créé, sont devenues illisibles pour le système. Pire encore, elles semblent s’être évaporées dans l’éther numérique. Je suis à peu près certain que ces données existent toujours, enfouies parmi des téraoctets d’autres données, sur une sauvegarde inconnue quelque part. Un projet réjouissant pour le moi du futur.
Au cours des quelques années qui séparent cette époque d’aujourd’hui, j’ai développé une sorte d’obsession (70 h et plus par semaine) pour faire de ce prototype de fortune, à peine fonctionnel, une plateforme solide pour partager des récits d’aventure, trouver l’inspiration et créer des liens. La première chose sur laquelle je me suis concentré à mon retour de Gibraltar (je vous avais prévenu, il faut avoir lu l’article précédent) a été de me familiariser avec le développement d’apps mobiles.
Choisir un framework d’app mobile
Vu mon parcours dans le développement web et le fait que c’est un projet mené en solo, je tenais vraiment à trouver un framework qui mettrait à profit mes compétences existantes. Il était aussi important pour moi de pouvoir maintenir une seule base de code pour les versions iOS et Android de l’app. J’ai exploré quelques options, puis j’ai d’abord opté pour Cordova. Cordova semblait une approche assez simple et, comme il utilise HTML, CSS et JavaScript, on parlait en grande partie la même langue. À l’époque, c’était le point de départ qui me paraissait le plus confortable. J’ai passé du temps à me familiariser avec les rouages et à me mettre à niveau grâce à « l’université YouTube ». Au bout de quelques semaines, j’avais créé la première version de test autonome de l’app de suivi Pebbls. En tant que preuve de concept, c’était une étape énorme.
Même si l’interface que j’avais créée avec Cordova était moche, j’ai enfin pu commencer à tester en conditions réelles. Mais je n’ai pas tardé à comprendre que les aspects qui m’avaient d’abord attiré vers Cordova étaient aussi son talon d’Achille. Cordova semblait convenir pour créer une app en vrai HTML/JavaScript, emballée dans un conteneur et déployée sur les appareils mobiles, mais obtenir de vraies fonctionnalités natives était une autre histoire. Ça paraissait décousu et limitant, surtout pour des fonctionnalités que je considérais comme non négociables : la localisation en arrière-plan, l’exécution régulière de tâches en arrière-plan, l’accès au système de fichiers, entre autres. Je ne me souviens plus des problèmes précis, mais j’ai décidé de limiter les dégâts et de repartir de zéro. J’ai suivi ce même processus avec quatre frameworks en tout : Cordova, Flutter, Ionic, puis React Native.

Choisir le bon framework s’est révélé un processus lent et frustrant. J’ai créé un semblant de prototype d’app de suivi avec chacun d’eux. Cela a pris beaucoup de temps (quelques mois), mais au final, ça a payé et la décision finale a été très facile : le grand gagnant, pour moi, a été React Native (avec Expo et EAS). Je ne l’ai jamais regretté.
React Native m’a vraiment marqué, pas seulement comme un framework moderne et performant, mais aussi par l’énergie et l’effervescence qui l’entouraient. Il y a une communauté très active de développeurs, de mainteneurs et de créateurs de modules, et la documentation comme les tutoriels sont très complets. L’engagement à faire évoluer la plateforme, et le fait de voir des fonctionnalités que je recherchais être activement développées et mises en place aussi vite, m’ont beaucoup rassuré. Je n’ai pas été déçu.
L’évolution de l’app de suivi Pebbls




Utiliser React Native et le workflow géré d’Expo avec EAS en tant que développeur solo a tout changé : maintenant que j’ai pris le coup de main, je peux développer et déployer avec beaucoup moins de maux de tête. Passer d’un système basé sur HTML et CSS, comme Cordova, au framework React n’a en fait pas été très douloureux. Plus impressionnant encore, le pipeline de build d’EAS gère sans effort des tâches complexes comme les certificats et la signature des clés, qui peuvent sinon prendre des heures quand elles sont réalisées à la main par de simples mortels comme moi qui ne font pas ce genre de choses tous les jours. En plus de tout ça, l’un des plus grands avantages pour moi, c’est la facilité avec laquelle on peut repérer les bugs (grâce à des outils comme Logrocket), les corriger et déployer des mises à jour à distance (over-the-air) auprès des utilisateurs. Je peux boucler ces mises à jour en quelques minutes seulement, de la réception d’un signalement de bug au déploiement du correctif sur les appareils des utilisateurs.
Tester, tester, tester
Créer n’importe quel logiciel implique un programme de tests rigoureux. Plus on peut explorer de scénarios, mieux on est armé pour garantir une expérience utilisateur fluide, et moins les utilisateurs risquent de tomber sur des bugs dans la nature. Si les simulateurs et les outils de simulation de position ont leur utilité, il arrive un moment où il faut être courageux, ouvrir la porte, sortir, rappeler à son corps ce qu’est la vitamine D, et faire quelques tests dans le vaste monde. À mesure que la première version pleinement fonctionnelle de l’app de suivi Pebbls approchait, je me suis retrouvé à transporter 2 ou 3 appareils partout où j’allais. Ces appareils suivaient chacun de mes mouvements et renvoyaient tout au serveur Pebbls. De retour à la maison, j’avais un trésor de données à explorer. Ce processus a été inestimable pour identifier et éliminer les bugs, mais aussi pour améliorer les performances.
Tester l’app de suivi Pebbls sur la route
L’étape suivante des tests a consisté à emmener l’app dans une nouvelle aventure bien réelle. Quelques bêta-testeurs étaient déjà sur les routes à faire exactement ça, mais il était important pour moi de le faire aussi, pour vivre par moi-même le meilleur et le pire de l’app. Alors, après un retard dû au Covid (voir l’article précédent), c’est exactement ce que j’ai fait. Lucy et moi avons passé 6 mois à traverser l’Europe et la Turquie à vélo jusqu’en Géorgie. Nous avons suivi notre itinéraire tout du long, en nous arrêtant régulièrement, souvent à flanc de montagne ou sur un rivage escarpé, pour corriger des bugs et continuer à développer des fonctionnalités. Ce test en conditions réelles a été crucial : il m’a permis de comprendre comment l’app se comporterait dans diverses conditions de GPS et de réseau. Cette expérience est devenue une part essentielle du développement de l’app, la rendant plus solide et plus fiable pour les autres aventuriers.






Écouter les retours des utilisateurs et s’améliorer en continu
Pebbls ne se limite pas à suivre votre voyage : il s’agit de raconter de vraies histoires et de trouver l’inspiration. Il s’agit de la communauté d’aventuriers et d’explorateurs qui utilisent la plateforme. Je sollicite activement les utilisateurs pour recueillir leurs retours et leurs commentaires sur leur expérience. Ces idées et suggestions jouent un rôle crucial dans l’évolution des fonctionnalités de l’app. Beaucoup des améliorations que l’on trouve aujourd’hui dans Pebbls sont nées de suggestions d’utilisateurs : l’intégration du GPX et de Strava, l’ajout de nouvelles icônes de Pebbls, l’amélioration de l’interface ou des performances. Vos retours sont le moteur de cette évolution continue. Je publie régulièrement des mises à jour basées sur vos suggestions, pour que Pebbls grandisse en répondant aux besoins d’aventuriers comme vous.
Contactez-moi
Prêt à façonner l’avenir de Pebbls ? J’adorerais avoir de vos nouvelles. Partagez vos aventures, vos idées et vos retours via la page de contact ou à hello@pebbls.com