Pourquoi une application locale ?
Beaucoup d’applications de fitness fonctionnent avec un compte et un serveur central : c’est pratique pour synchroniser vos appareils, mais cela veut aussi dire qu’une société tierce héberge vos données, et que l’application devient inutilisable sans connexion — ou si le service ferme un jour.
Kaivalya Trainer fait le choix inverse : tout tourne dans votre navigateur, vos données sont stockées localement, et rien n’est jamais envoyé à un serveur. Ce choix a un coût — pas de synchronisation ni de sauvegarde automatiques entre appareils — mais ce coût est couvert par des solutions simples et manuelles : voir les Guides pratiques pour la sauvegarde et la synchronisation.
JSON ou base de données : que choisir ?
Deux façons d’exporter vos données, pour deux besoins différents :
| Export JSON | Export base de données (SQLite) | |
|---|---|---|
| Contenu | Un ou plusieurs types de données au choix (exercices, séances…) | Tout, sans exception |
| Usage typique | Partager une séance, sauvegarder un sous-ensemble | Sauvegarde complète, migration vers un autre appareil |
| À l’import | Fusion : conflits gérés un par un, suffixe si autre utilisateur | Remplacement total des données existantes |
| Format du fichier | Fichier texte, lisible, modifiable avec précaution | Fichier binaire, à ne jamais modifier à la main |
Concrètement : un fichier JSON est un simple fichier texte qui décrit vos exercices, combos, séances ou collections dans un format structuré et lisible. Un fichier SQLite (.sqlite3 / .db) contient la base de données complète de l’application ; il peut être ouvert avec un outil spécialisé (DB Browser for SQLite, par exemple) mais ne doit jamais être édité à la main.
Il existe une troisième façon de faire sortir des données de l’application : l’export HTML de la page d’accueil (voir Guides pratiques). C’est aussi un export de données, même si le format est différent — sauf qu’il est à sens unique : un fichier HTML ne se réimporte pas dans Kaivalya Trainer. Il n’est pas fait pour la sauvegarde mais pour la lecture par quelqu’un d’autre, typiquement un ami ou un coach.
Ce qu’il se passe vraiment à l’import
Importer un fichier JSON ne supprime jamais vos données existantes par surprise :
- S’il vient de vous (même identifiant utilisateur) : Kaivalya Trainer compare avec ce que vous avez déjà. Pour chaque élément déjà présent (même identifiant, ou même titre s’il s’agit d’un élément différent), vous choisissez de le remplacer ou de le garder, un par un ou en lot.
- S’il vient d’un autre utilisateur : tous les titres importés reçoivent un court suffixe que vous choisissez (« [JD] »), pour ne jamais se confondre avec vos propres données. Le suffixe est mémorisé et réutilisé si vous importez à nouveau depuis la même personne. Si le titre suffixé entre en conflit avec un élément déjà importé précédemment (typiquement une nouvelle version du même élément, réexportée par la même personne), vous choisissez de le remplacer ou de le garder, exactement comme pour vos propres données.
Dans tous les cas, un écran récapitulatif montre ce qui va changer avant que rien ne soit appliqué.
À l’inverse, restaurer une base de données (fichier .sqlite3) remplace tout, sans fusion possible — c’est voulu : ce mécanisme est pensé pour la sauvegarde et la restauration complètes, pas pour le partage sélectif.
Comment fonctionnent les minuteries (EMOM / AMRAP / TABATA)
Les trois types de combo minuté suivent chacun leur propre logique :
- EMOM (Every Minute On the Minute) : un nouvel exercice démarre chaque minute. La durée que vous réglez est divisée par le nombre d’exercices du combo pour savoir combien de tours faire — chaque exercice occupe une tranche de 60 secondes.
- AMRAP (As Many Rounds As Possible) : un compte à rebours unique tourne pour toute la durée réglée ; vous enchaînez les exercices en boucle, en faisant autant de tours que possible.
- TABATA : alternance stricte de phases de travail et de repos, répétées un nombre de fois donné.
Dans les trois cas, deux sons différents vous guident sans avoir à regarder l’écran : un bip discret pour les repères intermédiaires, un BIP plus marqué pour les changements de phase ou la fin du temps. Pour le détail minute par minute, voir la section Signaux sonores de la Référence.
L’avancement entre exercices ou tours est automatique pour les trois types — vous n’avez rien à valider vous-même pendant que le chronomètre tourne.
Pourquoi le mode poche ? (GPS et écran verrouillé)
Une application de course dédiée vous laisse verrouiller le téléphone et le ranger. Une application web ne le peut pas : Android ne transmet votre position à une page que tant que cette page est à l’écran. Verrouillez le téléphone et le chronomètre continue, les bips continuent — mais plus aucune position n’arrive, et votre sortie est enregistrée comme un temps sans trace. C’est une limite des navigateurs (Firefox la recense comme connue depuis 2018, Chrome se comporte de la même façon), pas un bogue que l’application peut corriger. Une marche de test de 78 minutes a perdu l’essentiel de sa trace de cette façon.
Le mode poche est la réponse qui reste dans ce qu’un navigateur permet. Au lieu de laisser le téléphone se verrouiller, l’application garde l’écran allumé et le recouvre elle-même d’un écran noir. Pour le téléphone, la page est toujours à l’écran, donc les positions continuent d’arriver. Pour vous, il se comporte comme un écran de verrouillage : presque rien d’allumé, rien ne se déclenche quand le téléphone bouge dans une poche, et un appui long de 3 secondes pour en sortir. Les boutons de vos écouteurs et la notification multimédia continuent de mettre en pause, passer ou revenir en arrière en dessous.
Les compromis sont assumés :
- L’écran reste allumé. Le noir ne coûte presque rien sur un écran OLED, mais le rétroéclairage consomme sur les autres écrans — baissez la luminosité avant de partir.
- Aucun bouton sur l’écran noir. Tout ce qui se touche pourrait être touché par une poche ; toutes les commandes sont déjà sur vos écouteurs et dans la notification.
- Il se gère tout seul. Si vous en sortez par accident, il recouvre l’écran au bout de 20 secondes sans contact ; il se retire de lui-même quand une étape a besoin de vous (saisie des répétitions, fin de séance).
Si vous verrouillez quand même le téléphone, l’application maintient le reste en vie (minuteries, sons) et relance le suivi de position au déverrouillage. Le tronçon manquant apparaît sur la carte comme un trou, pas comme une ligne droite, et sa distance n’est pas comptée : mieux vaut un trou honnête qu’une distance inventée.
Deux autres choix liés au GPS suivent la même logique :
- Un objectif de distance ne termine jamais l’étape tout seul. La position d’un téléphone n’est précise qu’à quelques mètres près, souvent plus ; c’est vous qui appuyez sur Terminer quand vous y êtes vraiment.
- Le dénivelé vient d’un modèle de terrain, pas du téléphone. L’altitude GPS d’un téléphone est bien moins précise que sa position, et ses variations ajouteraient des montées fantômes à une sortie à plat. La montée et la descente sont calculées après la fin, à partir des données IGN en France et SRTM ailleurs.
Le détail complet (réglages, ce qui est affiché, quand l’écran se recouvre et se découvre) se trouve dans la section Étapes cardio de la Référence.
Et les statistiques ?
La page Statistiques a deux moitiés, qui n’ont pas le même vécu.
La partie Cardio sert réellement : l’auteur de l’application s’en sert pour suivre ses marches et ses courses — totaux de distance et de temps, progression de la vitesse d’un exercice d’une date à l’autre ou d’un fractionné à l’autre dans une même séance, montée et descente. Elle est née de cet usage et continuera d’évoluer avec lui. Voir Statistiques cardio dans la Référence.
La partie Renforcement (fréquence, volume, progression par exercice) est celle sur laquelle l’auteur a le moins de retour d’expérience personnel — il ne s’en sert pas lui-même au quotidien. Ces graphiques sont un point de départ raisonnable, mais s’il vous manque quelque chose, c’est probablement vrai pour d’autres aussi : vos retours sont bienvenus.