4 points par zxavi 2025-04-10 | 4 commentaires | Partager sur WhatsApp

Bonjour, je développe en solo.

La course à pied est mon hobby en ce moment, mais les apps connues existantes n’avaient pas la fonctionnalité dont j’avais besoin, alors j’ai décidé de la créer moi-même.

Je l’ai développée avec Flutter, et la première version destinée à valider le concept initial a été terminée en environ deux semaines, mais il m’a fallu 3 à 4 mois pour l’affiner et la porter à un niveau prêt pour la sortie.

Elle est actuellement disponible sur les stores Apple et Google, et vous pouvez la télécharger facilement en visitant le site web puis en cliquant sur les liens vers chaque store.

Présentation du service

Pace Teller est une app qui vous indique en temps réel, pendant que vous courez, vos temps estimés sur 10 km, semi-marathon et marathon.

Pourquoi je l’ai créée

  • Pendant un défi consistant à courir 5 à 6 km chaque jour, je me suis soudain demandé quel serait mon temps estimé sur 10 km si je continuais à la vitesse de la fin.
  • Les apps de course permettent d’afficher la vitesse moyenne, mais il n’est pas simple d’estimer mentalement son chrono réel selon sa condition en fin de course.
  • Les personnes qui courent souvent peuvent sans doute faire une estimation approximative, mais j’ai développé cette app pour celles à qui il est difficile de calculer un chrono prévisionnel, même grossier.
  • En écoutant ces temps estimés pendant la course, j’ai constaté que cela aide beaucoup à rester motivé par rapport à un objectif et à ajuster sa condition, par exemple en ralentissant l’allure.
  • Je l’avais créée à l’origine pour mon usage personnel, mais je l’ai trouvée tellement utile que j’ai pris mon courage à deux mains pour la présenter sur Show GN.

Méthode de calcul des temps estimés

  • La distance déjà parcourue est calculée à partir de la vitesse moyenne, et la distance restante est estimée sur la base de l’allure des 20 % les plus récents du parcours, afin de fournir un chrono prévisionnel en temps réel.
  • Il est également possible d’écouter les résultats via un guidage vocal (TTS).
  • En revanche, une limite de cette méthode est que si l’allure finale est bonne, le temps estimé peut devenir excessivement optimiste.
  • Pour l’instant, cette méthode ne prend pas en compte une allure liée à une amélioration ou une dégradation de la condition, mais je prévois plus tard d’ajuster cela en demandant à l’utilisateur son état de forme après la séance.

Caractéristiques du service

  • L’app permet d’enregistrer la plupart des métriques de base proposées par les apps de running.
  • Elle propose des filtres par activité, une vue calendrier et une vue statistiques.
  • Elle prend en charge l’import/export de fichiers GPX. (J’ai fait en sorte qu’il soit facile d’emporter les données de cette app vers d’autres services.)
  • Elle permet d’importer des données Strava ou de les envoyer vers Strava (automatiquement).
  • Pour les services qui exportent tous les GPX comme RunKeeper, il suffit de récupérer les fichiers, de les compresser puis de les importer pour intégrer les données en une seule fois.
  • Les utilisateurs d’appareils Galaxy peuvent importer les données de santé et associer la fréquence cardiaque aux données d’entraînement.
  • L’app utilise une base SQLite embarquée et ne stocke pas les données sur un serveur externe, ce qui lui permet d’être rapide.
  • Si l’utilisateur saisit sa propre clé API Open Weather Map, les informations météo sont également enregistrées automatiquement (même si la précision peut être un peu limitée).
  • Elle prend en charge l’anglais et le coréen.

Fonctionnalités prévues à l’avenir

  • J’aimerais créer une app fonctionnant sur montre.
  • En particulier, comme il paraît que de nombreux utilisateurs Garmin sont curieux de connaître leur temps estimé sur marathon, si je le fais, il faudra sans doute créer une app Garmin.
  • Pour l’instant, je lance l’app sur la montre et cette app en même temps, puis je démarre les deux simultanément avant de courir.
  • Je prévois d’améliorer certains points encore insuffisants autour de la cadence et des graphiques d’allure.
  • Je réfléchis encore à une fonctionnalité de sauvegarde des données sur serveur, mais il est probable que je la développe. Pour le moment, si l’on ne fait pas d’export en fichier GPX, toutes les données peuvent disparaître en cas de suppression de l’app. En revanche, si l’envoi automatique vers Strava est activé, les données sont conservées sur Strava, ce qui est rassurant.
  • J’envisage aussi d’ajouter des fonctionnalités sociales, comme une communauté ou un espace pour partager ses performances. Mais comme Strava fait déjà cela très bien, je me demande si c’est vraiment nécessaire.
  • Je réfléchis également à transformer les parcours de course en "Route", pour proposer par exemple un service du type « quels sont les bons parcours dans ce quartier ? », mais d’autres apps le font déjà, donc j’hésite aussi sur ce point.

Retour d’expérience de développement

  • Ce que j’ai ressenti pendant le développement, c’est plutôt : « Waouh, une telle app, développée en solo, peut vraiment être réalisée aussi vite ?? » ; c’était aussi pour moi un projet qui m’a fait ressentir l’étonnement du « développement assisté par IA » que beaucoup ont déjà expérimenté.
  • Quand je développais à la fois des apps iOS et Android en natif, après en avoir terminé une, je subissais souvent un gros coup de fatigue mentale au moment de faire l’autre.
  • J’ai donc essayé de partir sur Flutter, et du point de vue de ce « stress mental », c’est une très grande satisfaction.
  • En revanche, les packages et bibliothèques sont souvent mis à jour, ce qui entraîne des problèmes de dépendances ; cela m’a beaucoup fait souffrir, et cela m’inquiète aussi pour la suite.
  • Les données comme la vitesse fournie par le GPS n’étant pas parfaites, il m’a fallu beaucoup de temps pour améliorer le niveau de finition en cherchant différentes méthodes pour augmenter la précision des formules de calcul.
  • Bien sûr, j’ai énormément bénéficié de l’aide de l’IA, même si cela m’a aussi souvent fait tourner en rond ; mais je ne pouvais pas ne pas l’utiliser.
  • Comme toujours, la mise en place des abonnements récurrents sur les deux stores est une tâche difficile.

4 commentaires

 
kipsong133 2025-04-10

Les problèmes de dépendances et ce genre de choses restent en réalité des préoccupations identiques, même en natif... haha

Pourriez-vous éventuellement indiquer de quel package il s’agit ?

 
zxavi 2025-04-10

Oui, c’est vrai ^^ Vous parlez de quel package exactement ? Voulez-vous dire dans quel package vous avez rencontré un problème de dépendances ? Comme c’était assez fréquent et que j’avais à l’époque une compréhension assez limitée de Flutter, je ne m’en souviens pas très bien, pour être honnête ^^

 
seonymoon 2025-04-10

Strava va bientôt mettre fin à son service en Corée du Sud.. !

 
zxavi 2025-04-10

Oui, elle a déjà été retirée du store. Mais cela ne veut pas dire qu’on ne peut plus utiliser le service. Les utilisateurs existants peuvent toujours l’utiliser, et il est aussi accessible sur le web.