Interview : Samuel, développeur c:geo

Salut les géocacheurs, vous êtes nombreux à utiliser l’application c:geo sur Android, alors voici l’occasion de découvrir Samuel, un des membres bénévoles de l’équipe de développement, et de mieux comprendre comment se passe le développement de cette excellente application !

Samuel, une petite présentation ?

Bonjour, et merci de m’avoir donné l’occasion de répondre à tes questions sur la développement de c:geo. J’espère pouvoir donner un aperçu de l’envers du décor, celui que les utilisateurs ne voient généralement jamais.

Mon nom est Samuel Tardieu et je suis enseignant-chercheur en informatique dans une grande école d’ingénieurs. Je suis également passionné d’informatique et militant actif de la cause du logiciel libre. Je passe une partie de mon temps libre à écrire ou à contribuer à de tels logiciels,  afin de les améliorer et de les corriger. Je suis le premier à profiter de ces changements, mais le statut de logiciel libre fait que d’autres en profitent également. C’est ce qui m’a amené à contribuer à c:geo. Un autre de mes loisirs est, évidemment, le géocaching.

Tu es dans l’équipe c:geo, développeur ? Raconte-nous comment ça s’organise, combien de personnes, combien de temps donne chacun à la communauté ?

L’équipe s’est constituée à partir de l’été 2011, lorsque le créateur de c:geo a annoncé qu’il en arrêtait la maintenance et qu’il le transférait à la communauté sous la forme d’un logiciel libre. Tomaž, informaticien et géocacheur slovène, a importé le code source le 11 juillet sur un site collaboratif et a commencé à corriger les problèmes les plus urgents.

Une semaine plus tard, les premières contributions ont commencé à arriver, principalement en provenance d’Allemagne, pays où le géocaching connaît un grand enthousiasme. Pour ma part, c’est le 6 août que j’ai envoyé ma première modification, qui corrigeait des fautes dans la version française de l’application.

Rapidement, il est apparu que certaines personnes proposaient un grand nombre de modifications. Tomaž a alors endossé le rôle de coordinateur du projet et a mis en place une infrastructure afin que les développeurs et les testeurs puissent travailler efficacement.

Depuis, l’équipe s’est bien étoffée. Nous sommes maintenant dix personnes sur deux continents à avoir un accès direct au dépôt contenant le code source, et plus d’une cinquantaine de personnes ont contribué à améliorer c:geo, sans compter les nombreux utilisateurs qui nous font remonter les problèmes ou nous proposent des suggestions.

Le temps passé par chacun est variable et dépend de nos disponibilités et de nos contraintes professionnelles et personnelles. Certaines personnes, comme Tomaž qui est le contact administratif du projet ou Lars qui supervise notamment les tests de qualité, savent se rendre extrêmement disponibles pour répondre aux questions de nos utilisateurs. L’équipe de développeurs, elle, sait se mobiliser en urgence lorsqu’un problème survient.

Lorsque nous estimons que nous avons suffisamment de nouvelles fonctionnalités disponibles ou lorsque nous avons corrigé des problèmes importants, nous décidons collégialement de sortir une nouvelle version de c:geo. Pour cela, il nous faut le feu vert de l’équipe de développement et de l’équipe de test, puis le coordinateur lance la mise en production.

Pour un développeur, quelles connaissances faudrait-il pour contribuer à c:geo ?

c:geo est écrit en Java pour la plate-forme Android. À partir du moment où un développeur est capable d’écrire du code pour Android, il est le bienvenu pour contribuer à l’amélioration de c:geo.

Les demandes de modifications passent par le système de “pull request” de GitHub, le site collaboratif que nous utilisons. Ainsi, nous pouvons discuter de la modification proposée avant de l’intégrer, et demander à l’auteur de faire des changements afin, par exemple, de corriger les problèmes que nous avons identifiés dans son code source, ou de respecter les règles de codage utilisées au sein du projet.

Que s’est-il passé pour Carnero, l’ancien développeur de c:geo ?

Radovan Paška (Carnero) a d’abord conçu et programmé c:geo seul, ce qui constitue une réalisation remarquable. Cependant, à force de lutter pour maintenir l’application à niveau malgré les changements faits en permanence par Groundspeak, les responsables de geocaching.com, il s’est fatigué et a souhaité arrêter le développement.

Il faut comprendre que c:geo se comporte comme un navigateur qui accède aux pages web du site geocaching.com. Il doit ensuite, comme le ferait un humain, analyser et comprendre ce que signifient les informations reçues. À chaque fois que Groundspeak fait un changement, par exemple en déplaçant des éléments sur les pages web, c:geo doit être adapté pour intégrer ces modifications, alors qu’un humain les comprendra de lui-même.

Dès lors que le site geocaching.com est modifié, il faut vérifier toutes les fonctionnalités de c:geo et corriger les nouvelles incompatibilités. C’est une tâche qui nécessite d’être réactif, et c’est là que nous sommes contents de travailler en équipe.

Quelle sont les fonctionnalités de la dernière release ?

Depuis le début de l’année 2013, nous avons fait 471 changements individuels dans le code source de c:geo. Certains ne sont pas directement visibles par l’utilisateur de l’application mais servent à renforcer la solidité de l’infrastructure du programme. D’autres représentent des corrections de défauts, des adaptations à des changements du site geocaching.com, ou des nouvelles fonctionnalités.

Parmi celles-ci je retiendrai principalement la possibilité de joindre des photos lorsque l’on indique qu’on a trouvé une géocache. C’est une fonctionnalité apprécié des géocacheurs, agréable au propriétaire de la géocache et utile aux géocacheurs suivants lorsqu’ils arriveront sur les lieux.

Quelles sont les prochaines évolutions envisagées ?

Plusieurs nouvelles fonctionnalités sont en cours de test. L’une d’entre elles consiste à activer la voix sur la boussole lors d’une recherche de cache. Le téléphone indique alors, régulièrement, la direction à suivre et la distance, par exemple « 11 heures, 400 mètres » pour signifier qu’il faut bifurquer légèrement à gauche et qu’il reste 400 mètres à parcourir pour atteindre la cache. Cela permet, lorsqu’on utilise un kit mains-libres, de conserver le téléphone dans la poche et d’être plus discret qu’en conservant l’appareil en main.

Comment l’équipe c:geo choisit les évolutions à apporter à l’appli ?

L’équipe est constituée uniquement de volontaires. Chacun choisit donc, en fonction de ses intérêts et de ses compétences, les domaines dans lesquels il souhaite contribuer. Parfois, des changements architecturaux importants sont envisagés. Ils sont alors discutés, et certains membres de l’équipe se chargent alors de les mettre en œuvre.

Les informaticiens qui participent à l’aventure c:geo aiment en général écrire du code. Ainsi, lorsqu’un utilisateur suggère une amélioration qui nous semble intéressante, il se trouve souvent quelqu’un pour se porter volontaire pour la construire et l’intégrer à c:geo.

Quels sont les principaux problèmes de développement ? bugs récurrents, architecture, multi-versions d’Android ou de smartphones, formats Groundspeak…

Le code source qui a été mis à disposition de la communauté il y a deux ans contenait un certain nombre de constructions qui étaient tout à fait discutables. En particulier, certaines choses fonctionnaient correctement uniquement parce qu’il y était fait des suppositions sur la façon dont fonctionnait le reste du programme. Cette manière de faire peut convenir à une personne seule, mais n’est pas adaptée à un travail en équipe où l’un des participants peut être amené à intervenir sur une partie du logiciel et doit pouvoir la comprendre sans avoir à connaître la totalité de c:geo. Un gros travail de fond de restructuration et de consolidation a été mis en œuvre et progresse petit à petit. Nos fondations deviennent de plus en plus solides et le code se simplifie et se clarifie de semaine en semaine.

Les versions multiples du système Android ajoutent une complexité certaine. Il serait certes plus facile de gérer un logiciel qui ne fonctionnent que sur les appareils dotés des dernières versions d’Android, mais cela priverait un grand nombre de nos utilisateurs de leur application de géocaching. Nous avons créé et isolé une couche de compatibilité qui nous permet, sur les appareils plus anciens, de pallier les manques du système lorsque c’est possible.

Peux-tu nous expliquer en quoi consiste le problème sur la live map (coordonnées approximatives) depuis un changement majeur côté geocaching.com en 2012 ?

Pour faire fonctionner notre carte active et y faire apparaître les géocaches, nous avons plusieurs moyens. Le premier consiste à interroger geocaching.com afin d’obtenir les caches se trouvant à proximité d’un point géographique, mais le nombre de réponses que l’on obtient par requête est limité. L’autre consiste à utiliser leur propre carte, à l’analyser, et à en extraire les informations disponibles pour chaque cache. Cette méthode est beaucoup plus adaptée lorsque la zone à afficher est grande.

Les cartes disponibles sur le site geocaching.com pour une large zone ne sont pas précises. Les géocaches y sont positionnées approximativement et aucune information supplémentaire n’est disponible quant à leurs coordonnées exactes. Du coup, l’information que nous affichons est, elle aussi, possiblement entâchée d’une légère erreur.

La situation se dégrade lorsque l’utilisateur a incorrectement rentré ses informations de compte pour le site geocaching.com. Dans ce cas là, geocaching.com introduit volontairement une erreur dans la localisation des géocaches, afin d’éviter qu’une personne qui ne souhaite pas faire l’effort de s’inscrire sur le site ne puisse pas récupérer les coordonnées précises. Nous détectons cette situation et l’affichons sur l’écran d’accueil de c:geo, mais certains utilisateurs ne corrigent pas leurs informations et continuent donc à obtenir des localisations très approximatives.

Que répondez-vous à ceux qui disent que c:geo est « illégal » ?

c:geo ne viole pas les conditions d’utilisation du site geocaching.com. Pour commencer, il faut comprendre que c:geo est comparable à un navigateur web. Il essaye d’accéder aux pages de geocaching.com de la même manière qu’un utilisateur qui serait derrière son écran d’ordinateur. Il se trouve que c:geo est un navigateur spécialisé pour le géocaching, c’est-à-dire qu’il affiche les informations relatives aux géocaches de la manière la plus pertinente possible. Nous sommes un peu dans la situation où une extension Firefox ou Chrome permettrait une meilleure présentation ou une meilleure navigation au sein du site geocaching.com.

Note du Tof : comme les extensions Greasemonkey pour geocaching. Lire aussi la FAQ c:geo sur ce point http://faq.cgeo.org/#1_21

Tu géocaches aussi, je suppose ? Comment et avec quelle appli ? 😉

Une application que j’utilise parfois est Locus Maps Pro, qui dispose d’une extension de géocaching. Cette application payante est un logiciel de cartographie enrichi de fonctionnalités propres au géocaching, mais le géocaching n’est pas son cœur de métier. Je l’utilise lorsque je suis dans une optique de navigation ou de promenade et que, sur le moment, je décide de chercher une géocache.

Mais lorsque je pars en campagne de géocaching, j’utilise bien entendu c:geo, qui est à mon avis la meilleure application disponible pour les géocacheurs. Aucune application sur Android ne permet une telle interaction aussi naturelle avec les informations au sujet des géocaches.

Y’a t-il un risque de voir disparaître c:geo ? (juridique entre autres)

Le risque juridique est inexistant. Nous ne fournissons aucun service utilisant les données de geocaching.com ou d’autres sites de géocaching comme opencaching.de, nous ne faisons que fournir gratuitement aux utilisateurs d’Android un programme qui leur permet d’utiliser au mieux les données récupérées par ces utilisateurs grâce à leurs comptes sur ces sites.

Il ne faut pas oublier non plus qu’un certain nombre de personnes sont venues au géocaching en découvrant c:geo. Ces utilisateurs créent un compte sur geocaching.com, et un certain nombre d’entre eux, comme c’est mon cas, optent pour un abonnement payant afin de profiter de services supplémentaires mais également afin de les soutenir financièrement.

En ce qui concerne l’aspect technique, même si la totalité de l’équipe actuelle décidait de se retirer du projet du jour au lendemain, une ou plusieurs personnes pourraient prendre le relais à partir du dernier code source, qui est toujours disponible sur GitHub avant même la publication de l’application sur le Google Play Store. C’est ce qui fait la beauté du logiciel libre.

Un grand merci à Samuel d’avoir pris du temps pour me répondre, depuis le temps que je le harcelais 😉 l’équipe c:geo, c’est un ensemble de passionnés de géocaching comme vous et moi, qui a décidé de donner de leur temps à la communauté pour fournir un logiciel efficace et agréable à utiliser. Bravo à eux !

Le site de Samuel : http://www.rfc1149.net/sam.html

Voir aussi : caches et cartes de c:geo offline, fonctions pratiques c:geo, et également d’autres astuces c:geo.

France Geocaching

8 réflexions sur “Interview : Samuel, développeur c:geo

  1. Très intéressante cette interview.

    Avec mon frangin on est exactement dans le cas souligné à la fin de l’interview par Samuel: si on fait du geocaching (et que l’on est premium) c’est grâce à c:geo.

    Si on avait pas d’abord découvert c:geo, et bien on aurait probablement pas fais de geocaching 😮

    J’aime

  2. Au départ avec un Tomtom sur PDA et modem GPS externe, notre façon de géocacher a évolué lorsque je me suis équipé d’un HTC POUR utiliser cette application … Aujourd’hui, ns ne géocachons qu’avec c:geo et mon smartphone s’appelle notre « boussole magique » ! 😉
    Merci pour cette indispensable application !

    J’aime

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.