# 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) : `https://gitea.cloudyfy.fr/Siphonight/HormoneTrack/releases` (miroir équivalent : `https://gitea.farewell.dev/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 »** > **Quand le rappel sonne-t-il ?** (v1.4.0) : si le traitement a une **Posologie** > (intervalle en jours) et un historique de prises, le rappel sonne **uniquement le > jour du créneau** à l'heure choisie (ex. : injection tous les samedis, rappel 18 h > → notification le samedi à 18 h, pas les autres jours). Après « Pris », le rappel > suivant se cale sur le créneau d'après. Sans Posologie (gel, oral) → rappel quotidien. > 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 - **Agenda** : active « Événement d'agenda récurrent » (sous Rappels) → une fois la permission accordée et le traitement sauvegardé, un événement se répétant tous les N jours (Posologie) apparaît dans le calendrier « HormoneTrack » de ton téléphone (≥ v1.3.5 ; en v1.3.4 la création du calendrier échouait — retour dans le guide si besoin : re-sauvegarde avec le switch activé) - 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 - L'accueil affiche la **prochaine dose en jours** quand elle est à plus de 24 h (ex. « 5 j 2 h · sam. 6 18:00 »), en heures/minutes sinon - La carte « Niveau actuel » compare ton taux estimé **à il y a 6 h** (flèche ↗/↘) — autour d'un ester lent comme l'énanthate, cette variation reste faible : la courbe d'équilibre est naturellement plate, la remontée après une injection se voit sur 3-4 jours (pic vers J+6,5), pas en 6 h - 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 » - Paramètres → **Logs de diagnostic** : « Exporter » ouvre le gestionnaire de fichiers → choisis où enregistrer le .txt → un message de confirmation (ou d'erreur) s'affiche en haut de Paramètres — utile pour joindre les logs à un rapport de bug (≥ v1.3.4 ; les versions 1.3.1–1.3.3 faisaient planter ce bouton) → 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 - **Seuils d'alerte** (v1.4.2) : limites hautes/basses optionnelles E2 (pg/mL) et T (ng/mL) — l'accueil affiche un avertissement (et une notification toutes les 15 min, canal dédié réglable) quand ton taux ESTIMÉ franchit une limite. Champ vide = alerte désactivée ; haut > bas requis. C'est une estimation du modèle, pas une mesure - **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 **+ paramètres : langue, auto-calibration, seuils d'alerte** — v1.4.2) ## 7. Les modèles mathématiques - **Estrannaise** : tables horaires issues de ta feuille `Estrogen.ods` (table « Models ») - **Transfem Science** (v1.4.0) : la méta-analyse officielle à 3 compartiments ([article](https://transfemscience.org/articles/injectable-e2-meta-analysis/), [simulateur](https://transfemscience.org/misc/injectable-e2-simulator/)) — courbe calculée en forme close, 7 esters disponibles (EV, EU, EEn, EB, EC, EC suspension, PEP) Pics de référence (dose unique de 5 mg, IM) : | Profil | Source | Cmax (pg/mL) | Tmax | t½ terminale | |--------|--------|--------------|------|---------------| | EV | Estrannaise | — tables ODS | ~45 h | — | | EEn | Estrannaise | — tables ODS | ~152 h | — | | EV | Transfem Science | 295 | 2,1 j | 3,0 j | | EEn | Transfem Science | 160 | 6,5 j | 4,6 j | | EB | Transfem Science | 971 | 0,65 j | 1,2 j | | EC (huile) | Transfem Science | 155 | 4,3 j | 6,7 j | | EC (susp.) | Transfem Science | 241 | 1,2 j | 5,1 j | | PEP | Transfem Science | 34 (à 32,5 mg) | 18 j | 28,4 j | - **Superposition** : chaque injection contribue `dose_mg × profil(dt)` ; les courbes s'additionnent - **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). **Activer le chip étend le graphique jusqu'à ta prochaine dose** (sans déplacer l'historique visible) — v1.4.4 : le chip a un effet immédiat ; tire vers la GAUCHE pour parcourir la projection dans le futur (jusqu'à 1 an selon la Posologie) ; « Revenir à maintenant » pour revenir. Si tu désactives le chip alors que tu es dans le futur, l'app revient automatiquement à maintenant - **Marqueurs de doses** (v1.4.5) : les doses projetées sont marquées par une ligne verticale pointillée avec leur heure ; tes prises enregistrées par un petit triangle discret au bas du graphique — plus d'ambiguïté sur « où » la prochaine injection est simulée - **Fuseau horaire du graphique** (v1.4.5) : Paramètres → « Fuseau horaire du graphique » — les jours s'alignent sur minuit du fuseau choisi (vide = celui du téléphone) - **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) | | L'export des logs ou JSON a planté (versions ≤ 1.3.3) | Mettre à jour vers la v1.3.4+ (fixons confirmés sur émulateur) — le message de confirmation doit apparaître en haut de Paramètres | ## 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