尚未检测到更新。GitHub 发布版本后会显示在这里。
Hargne : planification d'entraînement multisport en Flutter, avec séances par blocs, import et export CSV, et connexion Garmin.
翻译准备中
正在加载完整 README。
查看完整 README ↗Application mobile Flutter (nom affiché : Hargne · run, ride, swim, lift) pour planifier et suivre ses séances d'entraînement multisport : course à pied, trail, vélo, home trainer, natation, renforcement, randonnée, marche, ski et repos.
Le plan d'entraînement est saisi dans l'application ou importé depuis un fichier CSV, et peut être réexporté au même format.
L'application installée démarre vierge, et le plan est enregistré sur l'appareil au format CSV. La démo web charge un plan d'exemple sur deux semaines, gardé en mémoire : il disparaît au rechargement de la page.
Le code se trouve dans fitness_tracker/. Il faut le SDK Flutter, avec Dart 3.6 ou plus.
cd fitness_tracker
flutter pub get
flutter run
Pour lancer les tests :
flutter test
Un fichier contient une ligne d'en-tête, puis une séance par ligne. Le code correspondant est dans session_csv_codec.dart.
; à l'export. À l'import, le séparateur (;, , ou tabulation) est détecté à partir de la première ligne.", et ses guillemets sont doublés ("").| Colonne | Obligatoire | Contenu | Alias acceptés à l'import |
|---|---|---|---|
date | oui | AAAA-MM-JJ (export) ; JJ/MM/AAAA accepté à l'import | jour, day |
sport | oui | CAP, TRAIL, VÉLO, HT, NAT, MUSCU, RANDO, MARCHE, SKI, AUTRE, REPOS (voir ci-dessous) | discipline, type |
titre | oui | Nom de la séance | title, seance, nom, name |
sous_titre | Ligne de détail courte | subtitle, detail, description | |
duree_min | Durée en minutes ; à l'import : 55, 55 min, 1h30, 1h, 01:30 | duree, duration, duration_min, minutes | |
distance_km | Nombre, avec un point ou une virgule (1.5 ou 1,5) | distance, km, volume | |
allure_cible | Texte libre, ex. 4′50 /km | allure, pace, target_pace | |
fc_cible | Texte libre, ex. Z2 · 145 | fc, hr, target_hr, zone | |
rpe | Entier de 1 à 10 | effort | |
heure | Texte libre, ex. 18h30 | time, hour |
Sports : le code n'est sensible ni à la casse ni à l'accent (VELO est accepté). Les équivalents suivants sont aussi reconnus :
RUN, RUNNING, COURSE → CAPBIKE, CYCLING → VÉLOSWIM, NATATION → NATSTRENGTH, RENFO, MUSCULATION → MUSCUREST → REPOSHIKE, HIKING, RANDONNEE → RANDOWALK, WALKING → MARCHESKIING, SNOWBOARD → SKIOTHER → AUTREStructure : les blocs sont séparés par |. Chaque bloc a la forme titre~détail~durée_min~intensité, où l'intensité vaut L (basse), M (moyenne, la valeur par défaut) ou H (haute). À l'export, les caractères | et ~ présents dans le titre ou le détail d'un bloc sont remplacés par / et -.
date;sport;titre;sous_titre;duree_min;distance_km;allure_cible;fc_cible;rpe;heure;lieu;tags;structure;faite;notes;garmin_id
2026-10-26;CAP;Fractionné 8 × 400 m;Piste · récup 90″;55;11;3′20 /km;Z4 · 172;8;18h30;Stade Léo Lagrange;PISTE|VMA;Échauffement~Footing souple~20~M | 8 × 400 m~@ 3′20/km~25~H | Retour au calme~Footing lent~10~L;non;
2026-10-27;MUSCU;Renfo bas du corps;6 exercices · 3 séries;45;;;;6;7h30;;;;oui;"Squats lourds; genou OK"
2026-10-29;REPOS;Mobilité 15′ optionnelle;;;;;;;;;;;non;
L'import valide tout le fichier avant de modifier quoi que ce soit. À la première erreur, il s'arrête et indique le numéro de ligne. Les erreurs possibles sont : colonne obligatoire absente, date invalide, sport inconnu, titre vide, durée ou distance illisible, RPE en dehors de 1 à 10.
Deux modes d'import :
lieu | Texte libre | location, place |
tags | Séparés par | (la virgule est aussi acceptée à l'import), mis en majuscules | tag, etiquettes |
structure | Blocs de la séance (voir ci-dessous) | blocs, blocks |
faite | oui / non à l'export ; à l'import, oui, o, yes, y, true, 1, x, fait, faite valent « faite » et toute autre valeur vaut « non faite » | fait, done, realisee, completed |
notes | Texte libre | note, commentaire, comment |
garmin_id | Identifiant de l'activité Garmin importée ; vide pour une séance saisie à la main | garmin |