ADR 0009 accepté : socle PWA, mesures du Fairphone 4

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Pierre MARTIN
2026-11-02 20:21:29 +01:00
co-authored by Claude Opus 5.5
parent 03b26ccba7
commit ea304795b5
3 changed files with 28 additions and 13 deletions
+25 -8
View File
@@ -1,9 +1,9 @@
# 0009. Socle : PWA en TypeScript, moteur en WebAssembly
- **Statut** : proposé
- **Statut** : accepté
- **Date** : 2026-11-02
- **Décideurs** : Pierre (langage, outils), sur proposition de Claude Code ;
le socle sera accepté après les mesures sur le Fairphone 4
- **Décideurs** : Pierre, sur proposition de Claude Code, après les mesures
sur le Fairphone 4
## Contexte
@@ -13,15 +13,29 @@ en WebAssembly (MR !9) : même suite de contrat qu'en natif (écart maximal
9,5e-4 pour une tolérance de 0,002), 7,3 Mo compressés à télécharger (seuil
40 Mo). Sur le PC de développement (i5-2450M, 2011), le meilleur coup à 2 plis
prend au plus 0,3 s sous Chromium et 2,3 s sous Firefox (seuil sur le
téléphone : 3 s). Les mesures sur le Fairphone 4 restent à faire.
téléphone : 3 s).
Mesures sur le Fairphone 4 (Chrome 156, page `bench.html`, servie par
`make deploy-web`), trois essais le 2026-11-02, maximum sur les positions de
référence :
| Mesure | Fairphone 4 (pire des 3 essais) | Seuil | Marge |
| --- | --- | --- | --- |
| Meilleur coup, 0 pli | 21 ms | 300 ms | ×14 |
| Meilleur coup, 2 plis (médiane 94 à 98 ms) | 348 ms (`race-2`) | 3 000 ms | ×8,6 |
| Décision de videau, 2 plis | 148 ms | 3 000 ms | ×20 |
| Chargement du moteur | 239 à 276 ms | – | – |
| Téléchargement, gzip | 7,3 Mo | 40 Mo | ×5 |
| Mémoire WebAssembly | 51,9 Mo | – | – |
Les trois essais diffèrent de moins de 10 %. Firefox n'a pas été mesuré sur le
téléphone.
L'ADR 0007 renvoyait au choix du socle le langage de l'interface et l'outil de
vérification des dépendances.
## Décision
Sous réserve des mesures sur le Fairphone 4 :
- **Socle : PWA**, installable et utilisable hors ligne, moteur en WebAssembly
dans un Web Worker. L'étape 0c (Android natif) n'est pas faite.
- **Langage : TypeScript**, compilé par `tsc` en modules JavaScript standard,
@@ -49,5 +63,8 @@ Sous réserve des mesures sur le Fairphone 4 :
- La distribution sur F-Droid et le Play Store demandera plus tard une
enveloppe Android minimale autour de la PWA (à décider à l'étape 1).
- Si les mesures du Fairphone 4 dépassent les seuils, cet ADR passe au statut
« obsolète » et l'étape 0c est lancée.
- L'étape 0c (Android natif) est abandonnée.
- Le critère de fin de l'étape 0 (« moins de 2 s par coup de l'IA en niveau
standard ») est tenu même au niveau fort (2 plis) : c'est le niveau standard
de l'ordinateur à l'étape 0d.
- Firefox sur le téléphone reste à vérifier, sans bloquer.
+1 -1
View File
@@ -15,4 +15,4 @@ l'ancien passe au statut « remplacé par NNNN ». Voir l'ADR 0001.
| [0006](0006-merge-requests-systematiques.md) | Merge requests systématiques, fusionnées par Claude Code | accepté |
| [0007](0007-architecture-et-conventions-de-code.md) | Architecture et conventions de code | accepté |
| [0008](0008-glossaire-et-scenarios-source-unique.md) | Glossaire et scénarios : une source unique pour le code, l'aide et les tests | accepté |
| [0009](0009-socle-pwa-typescript.md) | Socle : PWA en TypeScript, moteur en WebAssembly | proposé |
| [0009](0009-socle-pwa-typescript.md) | Socle : PWA en TypeScript, moteur en WebAssembly | accepté |