RunForest : ce qu'une application web peut faire (et ne peut pas faire) avec le GPS d'un iPhone
Une application de course à pied sans App Store, c'est possible, à une condition : accepter qu'iOS coupe le GPS dès que l'écran se verrouille. Comment RunForest compense, point GPS par point GPS.
RunForest est une application de course à pied : suivi GPS, allure, fantôme de ses anciennes courses, fractionné guidé par un coach vocal, expérience et trophées. Elle s'installe depuis le navigateur, sans App Store, sans compte. Ce choix a un prix, et le README du projet le dit dès le début. La limite qu'aucun code ne contourne Sur iPhone, une application web n'a pas accès au GPS quand l'écran est verrouillé ou quand l'application est fermée. Seules les applications de l'App Store peuvent suivre une position en arrière-plan. Pour une application de course, c'est la pire contrainte possible : on court téléphone en poche, écran éteint. Il n'existe pas d'astuce pour lever cette limite. RunForest a donc été conçu pour la rendre la moins pénible possible. 1. Garder l'écran allumé Au départ de la course, l'application demande à l'écran de rester allumé. Quand on revient dans l'application après l'avoir quittée, elle redemande ce verrou, car le système le retire dès que la page passe en arrière-plan. 2. Le mode poche Un écran allumé dans une poche, c'est une course qui se met en pause toute seule au premier frottement. Le mode poche affiche un écran noir qui ignore les touches. Le téléphone reste allumé, le GPS continue, et rien ne se déclenche par erreur. L'accueil le rappelle avant chaque départ : « Pendant la course, utilise le 🔒 mode poche plutôt que de verrouiller ton iPhone. » 3. Reprendre là où on s'était arrêté Si l'application est quand même fermée, la course n'est pas perdue. Son état est enregistré en continu sur le téléphone. À la réouverture, RunForest la restaure et l'annonce : « Course restaurée après 4 minutes hors appli. Le chrono a continué, le tracé sera recollé en ligne droite. » Le temps reste juste ; seule la forme du tracé est approximative pendant le trou. 4. Trier les points GPS Un GPS de téléphone se trompe souvent, et une application de course qui le croit sur parole affiche des records impossibles. Chaque position reçue passe par quelques filtres simples : - à l'arrêt, les petits déplacements de quelques mètres sont ignorés, pour ne pas compter de distance au feu rouge ; - un point qui impliquerait une vitesse de plus de 11 m/s (environ 40 km/h) est écarté ; au bout de quatre rejets consécutifs, l'application considère que c'est la position précédente qui était fausse et repart de la nouvelle ; - après plus de 20 secondes sans signal, le trou est recollé en ligne droite, et un message l'annonce ; - le dénivelé n'est compté qu'au-delà de 3 mètres d'écart, et seulement quand l'altitude est assez précise. Ces règles tiennent en quelques dizaines de lignes, mais ce sont elles qui rendent les chiffres crédibles. 5. Tester sans courir Dernier détail, très pratique pendant le développement : un GPS de démonstration, dans les réglages, simule un coureur qui tourne autour d'un parc. On peut tester le fractionné, le fantôme ou les annonces vocales depuis son canapé. Application web ou application native ? La question revient à chaque projet, et j'y reviendrai dans un billet entier. Pour RunForest, la réponse est nuancée. L'application web offre l'essentiel : un lien à partager, aucune validation de magasin d'applications, des mises à jour immédiates, des données qui restent sur le téléphone. Mais pour un coureur qui veut vraiment ranger son téléphone écran verrouillé, une application native restera supérieure. L'important est de le dire. Le README, l'écran d'accueil et le bouton « Écran éteint ? » l'expliquent clairement, plutôt que de laisser un utilisateur découvrir après 10 kilomètres que sa course s'est arrêtée au premier. À retenir - Identifier la limite de la plateforme avant de concevoir les fonctions, pas après. - Quand une limite est infranchissable, concevoir autour : mode poche, reprise automatique, message honnête. - Un GPS se filtre : quelques règles simples valent mieux qu'un record de 80 km/h.