|
2 | 2 |
|
3 | 3 | > Vos notes restent dans votre poche. Chiffrées, et hors ligne. |
4 | 4 |
|
5 | | -**v1.0.4 — Mai 2026** · [Politique de confidentialité](PRIVACY.md) · [CGU](TERMS.md) · [Sécurité](SECURITY.md) |
| 5 | +**v2.0.0 — Août 2026** · [Politique de confidentialité](PRIVACY.md) · [CGU](TERMS.md) · [Sécurité](SECURITY.md) |
6 | 6 |
|
7 | 7 | Application Android Flutter de prise de notes Markdown chiffrées, |
8 | 8 | **100 % locale, zéro permission Internet**. Interface bilingue **FR / EN**. |
9 | 9 | Coffres par dossier (passphrase Argon2id ou PIN Keystore-bound), recherche |
10 | 10 | plein-texte FTS5, dictée vocale Whisper on-device, backlinks `[[note]]`, |
11 | 11 | mode panique multi-step. |
12 | 12 |
|
13 | | -## Quoi de neuf en v1.0.0 |
14 | | - |
15 | | -- **i18n FR / EN complète** : 9 écrans + 14 widgets, sélecteur Langue |
16 | | - dans Réglages, locale système suivie par défaut. |
17 | | -- **Sélecteur de thème** : Clair / Sombre / Système, persisté. |
18 | | -- **Splits ABI** : APK livré ~1/3 plus léger par device (arm64-v8a, |
19 | | - armeabi-v7a, x86_64). |
20 | | -- **Mode panique whitelist** : `db_encrypted_v1` et `secure_window_enabled` |
21 | | - préservés pour cohérence du redémarrage (conformément à PRIVACY.md). |
22 | | -- **A11y P0** : annonces TalkBack et `Semantics` complets sur le pavé PIN, |
23 | | - la sauvegarde et les overlays de dictée. |
24 | | -- **Helpers UI extraits** : `PassphraseTextField`, `VaultWarningBanner`, |
25 | | - `BlockingProgressDialog` (factorisation cross-écrans). |
26 | | -- **Mentions légales** : page rendue depuis `assets/legal/PRIVACY.{fr,en}.md` |
27 | | - et `TERMS.{fr,en}.md` via `flutter_markdown`. |
28 | | -- **Performance** : `Selector` ciblé sur `themeMode + locale`, |
29 | | - `MediaQuery.sizeOf` dans les listes. |
| 13 | +## Quoi de neuf en v2.0.0 |
| 14 | + |
| 15 | +**L'IA embarquée est retirée.** La recherche sémantique (MiniLM) et le |
| 16 | +Q&A « Demander à mes notes » (Gemma 3 1B) disparaissent. L'APK arm64 |
| 17 | +passe de ~127 Mo à **26,9 Mo**. La recherche reste plein-texte FTS5 + |
| 18 | +bm25 : rapide et exacte, mais elle ne devine pas les synonymes. |
| 19 | + |
| 20 | +Bump majeur et non mineur pour trois raisons : |
| 21 | + |
| 22 | +- l'app perd ses deux fonctions phares, ce qu'un `1.2.0` ne signalerait |
| 23 | + pas à l'utilisateur ; |
| 24 | +- l'APK est divisé par près de cinq, visible dès l'installation ; |
| 25 | +- **la migration est à sens unique** : la base passe en schéma v9 et la |
| 26 | + v1.1.6 publiée n'a pas de `onDowngrade`, donc réinstaller une 1.x ne |
| 27 | + peut plus ouvrir la base. |
| 28 | + |
| 29 | +Cette version inaugure aussi les **APK splits par ABI sans universel**. |
| 30 | +Les deux familles ont des `versionCode` incompatibles — l'offset |
| 31 | +`+1000 × index` de Flutter place tout universel sous n'importe quel |
| 32 | +split de même version, et Android refusait alors l'installation en |
| 33 | +downgrade. Transition à sens unique : ne pas réintroduire d'universel. |
| 34 | + |
| 35 | +Corrections notables du même cycle : |
| 36 | + |
| 37 | +- supprimer un dossier détruisait la clé Keystore **avant** la base, ce |
| 38 | + qui rendait un coffre définitivement illisible si la base échouait ; |
| 39 | +- le mode panique annonçait « effacement terminé » même en cas d'échec ; |
| 40 | +- **les migrations de schéma n'avaient jamais tourné** — les tests |
| 41 | + créaient des bases neuves, donc `onUpgrade` n'était jamais appelé ; |
| 42 | +- le titre d'une note de coffre pouvait partir en clair. |
30 | 43 |
|
31 | 44 | Pour penseurs, thérapeutes, étudiants, chercheurs, écrivains et |
32 | 45 | journalistes qui veulent prendre des notes sensibles ou denses sans |
@@ -169,12 +182,15 @@ la procédure de signalement de faille. |
169 | 182 |
|
170 | 183 | ## Installation |
171 | 184 |
|
172 | | -Ce dépôt **n'a pas de pipeline de release CI automatique**. Deux options : |
| 185 | +Deux options : |
173 | 186 |
|
174 | | -1. **Build local** (recommandé pour audit) — voir section suivante. |
175 | | -2. **APK release manuelle** : récupérer le dernier `.apk` publié sur |
176 | | - [GitHub Releases](https://github.com/gitubpatrice/notes_tech/releases) |
177 | | - (v1.0.0), vérifier la signature, side-loader. |
| 187 | +1. **APK publiée** : récupérer le split correspondant à votre appareil |
| 188 | + sur [GitHub Releases](https://github.com/gitubpatrice/notes_tech/releases) |
| 189 | + — `arm64-v8a` couvre la quasi-totalité des téléphones depuis 2016 — |
| 190 | + vérifier le SHA-256 publié dans les notes de release, side-loader. |
| 191 | + Ces APK sont construites et signées par GitHub Actions |
| 192 | + (`.github/workflows/release.yml`), déclenchées au push d'un tag `v*`. |
| 193 | +2. **Build local** (recommandé pour audit) — voir section suivante. |
178 | 194 |
|
179 | 195 | Pas de Play Store : distribution side-load uniquement (cohérent avec la |
180 | 196 | promesse de confidentialité — aucun compte requis pour installer). |
@@ -203,7 +219,7 @@ keyPassword=... |
203 | 219 |
|
204 | 220 | APK release arm64 : **~27 Mo** (SQLCipher + Whisper.cpp — le modèle de |
205 | 221 | dictée est téléchargé séparément, non bundlé). L'IA embarquée a été retirée |
206 | | -en v1.1.7 : elle pesait 100 Mo pour une fonctionnalité que presque personne |
| 222 | +en v2.0.0 : elle pesait 100 Mo pour une fonctionnalité que presque personne |
207 | 223 | ne pouvait atteindre sans permission Internet. |
208 | 224 |
|
209 | 225 | Pré-requis : |
|
0 commit comments