Docs : audit post-release v1.10.0 — §3 (uiautomator), §5 (EstrannaiseModels, demande #69), §8 (259/225), §16 (259/225 + 14 UI), §21 (2 points manuels v1.10.0), README FR/EN (plage releases)
This commit is contained in:
parent
386693379e
commit
0bb259d12d
@ -143,7 +143,7 @@ No Play Store: the app is sideloaded. Step-by-step details (French):
|
||||
|
||||
Repositories: **gitea.cloudyfy.fr** and **gitea.farewell.dev** (mirror) —
|
||||
`Siphonight/HormoneTrack` on both (private), with **tagged releases**
|
||||
(`v1.1.0` → `v1.9.8`) and **two APKs per release** (since v1.2.5)
|
||||
(`v1.1.0` → `v1.10.0`) and **two APKs per release** (since v1.2.5)
|
||||
(downloadable without building, cf
|
||||
[docs/DEVELOPPEMENT.md §16.bis](docs/DEVELOPPEMENT.md)):
|
||||
`-release.apk` (**recommended**, R8-optimized, 2.7 MB) and `-debug.apk` (20 MB):
|
||||
|
||||
@ -141,7 +141,7 @@ Pas de Play Store : l'app est sideloadée. Détails pas-à-pas : [docs/GUIDE_INS
|
||||
|
||||
Dépôts : **gitea.cloudyfy.fr** et **gitea.farewell.dev** (miroir) —
|
||||
`Siphonight/HormoneTrack` sur les deux (privé), avec
|
||||
**releases taguées** (`v1.1.0` → `v1.9.8`) et **deux APK par release** (depuis v1.2.5)
|
||||
**releases taguées** (`v1.1.0` → `v1.10.0`) et **deux APK par release** (depuis v1.2.5)
|
||||
(téléchargeables sans compiler, cf [docs/DEVELOPPEMENT.md §16.bis](docs/DEVELOPPEMENT.md)) :
|
||||
`-release.apk` (**recommandé**, optimisé R8, 2,7 Mo) et `-debug.apk` (20 Mo) :
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
|
||||
1. [Contexte & objectifs](#1-contexte--objectifs)
|
||||
2. [Historique du projet](#2-historique-du-projet)
|
||||
3. [Stack & versions (épinglées — à jour v1.9.8)](#3-stack--versions-épinglées--à-jour-v198)
|
||||
3. [Stack & versions (épinglées — à jour v1.10.0)](#3-stack--versions-épinglées--à-jour-v1100)
|
||||
4. [Environnement de build (cette machine)](#4-environnement-de-build-cette-machine)
|
||||
5. [Architecture générale](#5-architecture-générale)
|
||||
6. [Modèle de données (Room)](#6-modèle-de-données-room) + [6.bis Sémantique isActive](#6bis-sémantique-isactive-v124--drapeau-administratif-jamais-un-filtre)
|
||||
@ -119,7 +119,7 @@ Leçon importante de la session build : **les erreurs de compilation et les bugs
|
||||
(bisection inversée, plancher d'affichage des profils) n'ont été détectés qu'en construisant
|
||||
et en testant** — aucun build n'avait été lancé avant la session 3.
|
||||
|
||||
## 3. Stack & versions (épinglées — à jour v1.9.8)
|
||||
## 3. Stack & versions (épinglées — à jour v1.10.0)
|
||||
|
||||
| Composant | Version | Où |
|
||||
|---|---|---|
|
||||
@ -134,7 +134,7 @@ et en testant** — aucun build n'avait été lancé avant la session 3.
|
||||
| DataStore Preferences | 1.2.1 | idem |
|
||||
| Gson | 2.14.0 | idem |
|
||||
| JUnit | 4.13.2 (testImplementation + androidTestImplementation explicite) | idem |
|
||||
| Tests UI Compose | **ui-test-junit4 via le BOM** + `androidx.test.ext:junit-ktx:1.3.0` (androidTest, v1.9.8 — §8.ter) | idem |
|
||||
| Tests UI Compose | **ui-test-junit4 via le BOM** + `androidx.test.ext:junit-ktx:1.3.0` + `androidx.test.uiautomator:uiautomator:2.3.0` (androidTest, v1.9.8/v1.10.0 — §8.ter) | idem |
|
||||
| WorkManager | 2.11.2 (**UTILISÉ depuis v1.4.2** : worker périodique des seuils d'alerte, cf §9.bis) | idem |
|
||||
| compileSdk / targetSdk | **37** / **36** ; minSdk 26 ; Java target 17 | app |
|
||||
| buildFeatures | compose + **buildConfig** (VERSION_NAME pour l'app) | app |
|
||||
@ -204,10 +204,14 @@ MainActivity (AppCompatActivity)
|
||||
```
|
||||
|
||||
Points clés :
|
||||
- `HormoneTrackApp.onCreate()` : init `PKProfileStore` (asset), canal de notification
|
||||
- `HormoneTrackApp.onCreate()` : init `EstrannaiseModels` (asset MCMC —
|
||||
`PKProfileStore` HORS runtime depuis v1.9.0), canal de notification
|
||||
- `MainActivity` : applique la langue sauvegardée (`AppCompatDelegate.setApplicationLocales`),
|
||||
demande POST_NOTIFICATIONS (API 33+), lit les extras d'intent `open_log_dose` +
|
||||
`treatment_id` (venus de la notification) → Home pré-ouvre le dialog de log
|
||||
demande POST_NOTIFICATIONS (API 33+) ; demande « logger une dose »
|
||||
(`open_log_dose` + `treatment_id` venus de la notification) = `MutableState<Long?>`
|
||||
détenu par l'activité, **consommé UNE fois** par Home via
|
||||
[HormoneTrackRoot] (fix #69 — extras retirés de l'intent après lecture,
|
||||
tap notification app-ouverte géré par `onNewIntent`)
|
||||
- **Tout calcul PK est hors UI thread** (`produceState` + `Dispatchers.Default`)
|
||||
|
||||
## 6. Modèle de données (Room)
|
||||
@ -749,9 +753,9 @@ devient à son tour**.
|
||||
|
||||
## 8. Tests unitaires
|
||||
|
||||
**234 tests JVM, tous verts** (`./gradlew testDebugUnitTest`) — **193 sans
|
||||
les données de test locales** (cf §8.bis : les 5 classes de régression,
|
||||
6/6/6/5/7 tests, sont skippées via `Assume`). Dépendance : JUnit 4.13.2.
|
||||
**259 tests JVM, tous verts** (`./gradlew testDebugUnitTest`) — **225 sans
|
||||
les données de test locales** (cf §8.bis : les 6 classes de régression sont
|
||||
skippées via `Assume`). Dépendance : JUnit 4.13.2.
|
||||
Emplacement : `app/src/test/java/com/hormonetrack/`. Répertoire de travail d'exécution =
|
||||
`app/` → l'asset est lu via `src/main/assets/pk_profiles.json` (fallback `app/src/…`).
|
||||
|
||||
@ -1890,9 +1894,9 @@ structure ci-dessus. **Toute restructuration du JSON impose de mettre à jour
|
||||
|
||||
```bash
|
||||
cd ~/projects/HormoneTrack
|
||||
./gradlew assembleDebug testDebugUnitTest # build + 249 tests (219 sans données locales)
|
||||
./gradlew assembleDebug testDebugUnitTest # build + 259 tests (225 sans données locales)
|
||||
./gradlew assembleRelease # APK optimisé R8 (cf §16.bis ; signature cf §16.quater)
|
||||
./gradlew connectedDebugAndroidTest # 13 tests UI Compose (émulateur requis, §8.ter)
|
||||
./gradlew connectedDebugAndroidTest # 14 tests UI Compose (émulateur requis, §8.ter)
|
||||
adb install -r app/build/outputs/apk/debug/app-debug.apk
|
||||
```
|
||||
|
||||
@ -2318,6 +2322,11 @@ Sur le téléphone de test (à compléter par l'utilisatrice) :
|
||||
- [ ] Redémarrer le téléphone → rappel reprogrammé (BootReceiver)
|
||||
- [ ] Désactiver un rappel → plus de notif (cancel — cf §14.3)
|
||||
- [ ] Tester l'installation d'une watchface `.hwt` via Gadgetbridge (pour la Phase 2)
|
||||
- [ ] **v1.10.0** : carte « Prochaine prise de sang » — la date du creux est
|
||||
POSTÉRIEURE à la mention « pas stabilisée avant le … » (fix #68), et
|
||||
cohérente avec le créneau affiché (~juste avant)
|
||||
- [ ] **v1.10.0** : logger la dose du jour AVANT l'heure de rappel → la
|
||||
notification ne sonne pas ; le rappel suivant repart au créneau suivant
|
||||
- [ ] **v1.2.x** : graphique panoramique (glisser → passé, bouton « Revenir à maintenant »)
|
||||
- [ ] **v1.2.x** : toggles Estrannaise/TFS indépendants (les deux courbes superposées)
|
||||
- [ ] **v1.2.x** : chip « Prévision » (configurer la Posologie d'un traitement d'abord)
|
||||
@ -2491,5 +2500,5 @@ maintenance (permissions agenda, export logs IO, bump de version) ; v1.3.4 = 2 c
|
||||
reproduits sur émulateur (#47 stringResource arity, #48 LocalDate+pattern horaire), lint
|
||||
filet bloquant ; v1.3.5 = diagnostic à distance via les logs exportés (#50/#50bis/#51
|
||||
agenda) ; v1.4.0 = modèle TFS V3C sur la méta-analyse officielle (7 esters, fidélité
|
||||
~1 % épinglée) + rappels sur la grille Posologie (#52) ; v1.4.1 = prévision étendue sans saut (scroll futur, horizon 1 an) + delta en jours sur l'accueil ; v1.4.2 = seuils d'alerte configurables (carte accueil + notification WorkManager 15 min + anti-spam) et backup JSON v2 avec paramètres ; v1.4.3 = fix du delta 6 h (#53) + régression n°4 (plateau EEn épinglé) ; v1.4.4 = prévision réparée (captures figées #54 + extension de fenêtre) ; v1.4.5 = marqueurs de doses + minuit local + fuseau configurable (#55) + boucle de recomposition tuée (#56) ; v1.4.6 = 3ᵉ modèle PK WHSAH (fit Mona, superposable) + scroll du graphique (#57). Dette connue : fragments de
|
||||
~1 % épinglée) + rappels sur la grille Posologie (#52) ; v1.4.1 = prévision étendue sans saut (scroll futur, horizon 1 an) + delta en jours sur l'accueil ; v1.4.2 = seuils d'alerte configurables (carte accueil + notification WorkManager 15 min + anti-spam) et backup JSON v2 avec paramètres ; v1.4.3 = fix du delta 6 h (#53) + régression n°4 (plateau EEn épinglé) ; v1.4.4 = prévision réparée (captures figées #54 + extension de fenêtre) ; v1.4.5 = marqueurs de doses + minuit local + fuseau configurable (#55) + boucle de recomposition tuée (#56) ; v1.4.6 = 3ᵉ modèle PK WHSAH (fit Mona, superposable) + scroll du graphique (#57) ; v1.10.0 = creux pré-injection dans la reco (#68), dialog fantôme tué (#69), rappel sauté si dose déjà loggée. Dette connue : fragments de
|
||||
labs dans l'historique git (v1.1.0→v1.2.3) — cf §8.bis.*
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user