HormoneTrack/docs/GUIDE_INSTALLATION.md
Siphonight a622650c94 v1.3.0 : dialog « Nouveautés » post-update, événements d'agenda récurrents, version + lien releases dans Paramètres
- Dialog « Nouveautés » (v1.3.0) : au démarrage, si la version installée est
  plus récente que la dernière vue (DataStore changelog_seen_version), un
  AlertDialog affiche les sections CHANGELOG non vues (ChangelogHelper
  sectionsSince + comparaison SemVer NUMÉRIQUE — 1.2.9 < 1.2.10, lexicographique
  aurait tort) ; asset changelog.md synchronisé à chaque build par la tâche
  Gradle copyChangelog (gitignoré) ; fermable, ne réapparaît pas avant la
  prochaine mise à jour
- Événements d'agenda récurrents (CalendarEvents.kt) : calendrier LOCAL dédié
  « HormoneTrack » (CalendarContract, ACCOUNT_TYPE_LOCAL), événement avec
  RRULE FREQ=DAILY;INTERVAL=N dérivé de la Posologie (arrondi demi-supérieur
  EXPLICITE floor(x+0.5) — kotlin.math.round arrondit les ties vers l'entier
  PAIR : 6,5 → 6, piège épinglé), début = prochaine occurrence à l'heure de
  rappel (ou 12:00) ; switch dans l'éditeur sous « Rappels », permissions
  WRITE_CALENDAR + READ_CALENDAR demandées à l'activation ; suppression/
  recréation au save ; id stocké sur Treatment (Room v3, MIGRATION_2_3)
- Paramètres : version installée (BuildConfig.VERSION_NAME, buildConfig=true)
  + lien cliquable vers les releases Gitea
- Tests : ChangelogHelperTest (8) + CalendarRruleTest (3) → 78 tests verts
- versionCode 14, versionName 1.3.0
2026-09-06 08:30:31 +02:00

167 lines
9.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# HormoneTrack — Guide d'installation et d'utilisation
App Android de suivi de THS : courbes estimées heure par heure (E2 + T), log des doses, analyses de sang avec calibration, rappels affichés sur la Huawei Watch GT 3.
> **⚠️ Important** : les courbes sont des **estimations pharmacocinétiques**, pas des mesures.
> Fie-toi toujours à tes prises de sang et aux consignes de ton endocrinologue.
---
## 1. Installer les outils (une seule fois)
1. Télécharge **Android Studio** (Ladybug ou plus récent) : https://developer.android.com/studio
2. Installe-le, lance-le une première fois et accepte l'installation du **SDK Android**
(assistant de setup par défaut, tout coché).
3. Il te faut ~10 Go d'espace disque libre.
Tu n'as pas besoin d'installer Gradle ni le JDK séparément : Android Studio s'en charge.
## 1.bis Option SANS compilation : télécharger l'APK depuis les releases
Chaque version taguée est publiée en **release Gitea** avec les APK prêts à
installer — pas besoin d'Android Studio ni de faire un build :
1. Va sur **Releases** du dépôt Gitea (onglet « Releases » à droite)
→ ex. `https://gitea.cloudyfy.fr/Siphonight/HormoneTrack/releases`
2. Deux APK par release :
| Fichier | Quoi | Pour qui |
|---|---|---|
| `HormoneTrack-vX.Y.Z-release.apk` | **Optimisé** (R8 : code minifié/compacté, ressources shrinkées) — **2,4 Mo** au lieu de 20 Mo, démarrage et fluidité meilleurs | **Recommandé** — usage quotidien |
| `HormoneTrack-vX.Y.Z-debug.apk` | Non optimisé, hookable par un debugger — 20 Mo | Diagnostic/développement uniquement |
3. Installe : télécharge l'APK → ouvre-le → accepte « installer une application
inconnue » (une seule fois). **Mise à jour** : installe la nouvelle version
par-dessus l'ancienne — données conservées (les deux APK sont signés avec la
même clé debug, donc interchangeables dans les deux sens sans perte).
> ⚠️ Après l'installation d'un APK **release** (optimisé R8), fais un test
> rapide une fois : export/import d'un backup JSON + graphiques — R8 n'est pas
> vérifiable par les tests automatisés.
## 2. Ouvrir le projet
1. Android Studio → **Open** → sélectionne le dossier `~/projects/HormoneTrack`
2. Laisse le **Gradle Sync** se terminer (première fois : téléchargements, 5–15 min)
- La barre du bas affiche la progression ; attends « Gradle sync finished ».
3. Vérifie que l'asset est bien présent :
`app/src/main/assets/pk_profiles.json` (profils Estrannaise / Transfem Science extraits de ton `Estrogen.ods`).
## 3. Préparer ton téléphone
1. **Paramètres → À propos du téléphone** → tape 7 fois sur « Numéro de build »
→ « Mode développeur activé »
2. **Paramètres → Système → Options développeur** → active **Débogage USB**
3. Branche le téléphone en USB → accepte la fenêtre « Autoriser le débogage USB »
## 4. Installer l'app
1. Dans Android Studio, sélectionne ton téléphone dans la liste d'appareils (en haut)
2. Clique sur **Run ▶️**
3. L'app s'installe (pas de Play Store nécessaire) — au premier lancement :
- Autorise les **notifications** (Android 13+)
- Dans **Paramètres → Rappels & alarmes** : bouton « Accorder les alarmes exactes »
(sinon les rappels peuvent être en retard de quelques minutes)
## 5. Voir les rappels sur la Watch GT 3
Les notifications de l'app remontent automatiquement sur la montre via **Huawei Santé** :
1. Vérifie que la montre est jumelée à Huawei Santé
2. Dans **Huawei Santé → Montre → Notifications** :
- Autorise les notifications d'applications
- L'app « Suivi Hormonal / HormoneTrack » doit être dans la liste autorisée
3. Test : programme un rappel 2 min à l'avance → la notif doit apparaître au poignet
avec les boutons **« Pris »** et **« Reporter 1 h »**
> Sur la GT 3, on ne peut pas installer d'app au poignet facilement (Lite Wearable, sideload
> via DevEco Assistant). La v1 utilise la montre comme **écran de notifications**, ce qui est
> fiable et sans maintenance. Une mini-app au poignet reste possible en Phase 2 si tu veux.
## 6. Premiers pas dans l'app
1. **Traitements → +** → choisis un preset (ex : *Injection EV — Estrannaise*)
- Tu as changé d'ester ? Crée (ou garde) le traitement de l'ancien ester et
passe-le **inactif** (switch « Actif ») : il disparaît de la saisie et de tes
rappels, mais **son historique reste simulé et calibré** sur les graphiques —
parfait pour une transition valerate → enanthate
- Ester (EV / EU / EEn) + modèle (Estrannaise / Transfem Science) = les courbes du `.ods`
- Pour gel/patch/oral : paramètres Bateman (temps au pic, demi-vie, biodispo)
2. **Doses → +** → logue tes injections passées
- Astuce mise à jour : l'app affiche les **nouveautés** de chaque version au
démarrage (fermable) ; la **version installée** et le **lien des releases**
sont dans Paramètres (date/heure exactes, dose en mg)
- Astuce : tu peux changer l'ester par injection (comme dans ton tableur)
- **Modifier une dose existante** : appuie simplement sur sa ligne dans l'écran Doses
(traitement, dose, date/heure, notes et ester tout ça éditable) — pas besoin de
supprimer/recréer
3. **Analyses → +** → une prise de sang complète en une entrée : **E2 et/ou T**
(chacune optionnelle), date/heure commune, notes — les deux s'affichent côte à côte
dans la liste
- **Modifier** : appuie sur la ligne ; si la prise contient E2 **et** T, un sélecteur
te demande laquelle modifier
- **Supprimer** : la corbeille retire la prise entière (E2 + T ensemble)
- Choisis bien l'unité : elle est convertie automatiquement pour l'affichage et la
calibration (E2 en pg/mL ; T en ng/mL, ng/dL, ng/L, nmol/L)
4. **Calibration** (dans l'édition d'un traitement E2) → « Calibrer avec les analyses »
→ calcule le facteur d'échelle = médiane(lab ÷ prédiction), comme le « Scale factor » du `.ods`
5. **Paramètres** :
- **Langue** : Système / Français / English
- **Estimation T** : modèle `T = plancher + (base − plancher) ÷ (1 + k·E2)` (ng/mL),
calibrable avec tes résultats T
- **Sauvegarde JSON** : Export / Import (traitements + doses + analyses + réglages T)
## 7. Les modèles mathématiques
Les profils viennent de ta feuille `Estrogen.ods` (table « Models ») :
| Profil | Source | Pic (pg/mL par mg) | Tmax (h) |
|-----------|-------------------|--------------------|----------|
| EV(ese) | Estrannaise | 61,1 | ~45 h |
| EU(ese) | Estrannaise | 3,4 | ~55 h (plateau long) |
| EEn(ese) | Estrannaise | 31,4 | ~152 h |
| EV(tfs) | Transfem Science | 59,0 | ~51 h |
| EU(tfs) | Transfem Science | 10,1 | ~198 h |
| EEn(tfs) | Transfem Science | 32,0 | ~156 h |
- **Superposition** : chaque injection contribue `dose_mg × profil(dt)` ; les courbes s'additionnent
- **Interpolation** linéaire entre les heures ; au-delà de 8000 h, extrapolation avec la pente terminale
- **Calibration** : facteur d'échelle par traitement (médiane des ratios lab/prédiction)
- **Courbe T** : dérivée de l'E2 estimé (modèle empirique, calibrable) — indicative seulement
- Unités T acceptées : ng/mL, **ng/dL**, ng/L, nmol/L (conversion automatique)
## 8. Fonctions du graphique (v1.2)
- **Panoramique** : fais glisser le graphique **vers la droite** pour remonter dans le
passé (toute ta fenêtre d'historique) ; bouton « Revenir à maintenant » pour revenir
- **Toggles Estrannaise / Transfem Science** : les deux courbes peuvent être affichées
simultanément (Estrannaise = bleu, Transfem Science = turquoise) pour comparer
- **Prévision** : configure la **Posologie** (intervalle en jours) dans un traitement
(section « Fréquence ») puis active le chip « Prévision » → les doses à venir sont
simulées et dessinées après la ligne « maintenant » (jamais sauvegardées)
- **Pics / creux** (chip sur le graphique) : triangles ▲▼ aux extrema estimés de
chaque courbe (E2 et T, les deux modèles) — pratique pour visualiser d'un coup
d'œil les hauts et les bas entre deux injections
- **Calibration automatique** (Paramètres, désactivée par défaut) : quand activée, les
facteurs d'échelle et le modèle T sont ajustés en continu depuis tes labs — pour
l'affichage seulement, tes réglages stockés ne changent pas. **Chaque ester est
calibré avec les labs faits pendant sa période** : si tu étais sous valerate avant
d'être sous enanthate, tes labs valerate calibrent les doses valerate (E2 **et**
la suppression T), et inversement pour l'enanthate
## 9. Dépannage
| Problème | Solution |
|----------|----------|
| « SDK not found » au sync | Android Studio → Settings → Languages & Frameworks → Android SDK → installer API 34 |
| Pas de téléphone détecté | Réactive le Débogage USB, change de câble (données, pas charge seule) |
| Notif absente sur la montre | Huawei Santé → Notifications → autorise l'app ; redémarre la montre |
| Rappels en retard | Paramètres → « Accorder les alarmes exactes » + désactive l'optimisation de batterie pour l'app |
| Import JSON échoué | Le fichier doit venir d'un export de l'app même version (IDs conservés) |
## 10. Données & vie privée
- **Tout est local** : base Room sur le téléphone, aucun serveur, aucun compte
- Sauvegarde = fichier JSON que tu choisis où stocker (Owncloud, etc.)
- La désinstallation supprime les données → pense à exporter régulièrement