+4
−0
+268
−0
apps/mobile/.gitignore
0 → 100644
+10
−0
apps/mobile/README.md
0 → 100644
+103
−0
apps/mobile/app.config.ts
0 → 100644
+122
−0
Loading
Le volet mobile disait « aucune ligne de code mobile n'est écrite à ce jour ». Elle l'est maintenant, pour iOS d'abord — Android suit sur la même base. Ce que l'application fait, et rien d'autre Choisir son instance, l'enrôler, et dire si ce téléphone est réellement joignable. C'est tout M0 : « le tuyau, avant l'application, éprouvé par une application qui n'affiche qu'un écran ». Les six gestes du chemin critique viennent à M1 et M2, pas avant, et pas par dérive. React Native outillé par Expo, comme tranché au §9 Le paquet partagé apporte les schémas, les types et la validation ; jamais un composant d'interface (EM-39). Aucune logique de domaine n'est réécrite sur l'appareil : le téléphone transporte une intention, le serveur inscrit l'événement (EM-30, EM-40). Deux défauts trouvés en le faisant tourner, pas en le relisant Le heurtoir n'arrivait jamais. La lecture cherchait la charge dans « content.data », ce qui marche pour une notification locale — mais vaut null pour une poussée APNs réelle, le seul cas qui compte. La bannière s'affichait, l'application n'en savait rien. Rien d'autre ne clochait : c'est exactement le genre de défaut qu'une relecture ne voit pas. Au deuxième lancement, l'écran annonçait « ce téléphone ne sonnera pas » à quelqu'un dont le téléphone sonnait. L'autorisation n'était pas relue auprès du système, et l'inconnu était affiché comme un refus. Sur un outil de crise, une fausse inquiétude fait chercher un problème qui n'existe pas, la nuit, à la place du vrai. Le premier est désormais une garantie exécutée : la lecture du heurtoir vit dans un module sans dépendance au système, et la suite l'éprouve sur une charge APNs capturée sur un simulateur. Le second a produit un troisième état — « vérification… » — parce que « pas encore su » n'est pas « refusé ». Ce que la suite vérifie maintenant, sans simulateur ni appareil 647 garanties, dont 45 nouvelles : aucune adresse d'instance compilée, aucune empreinte calculée sur l'appareil, les secrets exclus des sauvegardes du système, l'étanchéité des compartiments d'instance, les cibles tactiles, les contrastes AA des deux thèmes mesurés paire par paire, et les 79 chaînes toutes traduites. Éprouvé sur un iPhone simulé, contre l'instance de développement : sonde d'état, enrôlement par code délivré par le serveur, autorisation accordée, jeton déclaré, heurtoir reçu et affiché — référence opaque et degré d'urgence, rien d'autre. Ce qui manque à M0 ne s'écrit pas ici : le relais qui détient la clé APNs, un compte éditeur Apple, et la demande d'alerte critique — dont l'instruction commande le calendrier. Signed-off-by:Kourser <contact@kourser.bzh> Co-Authored-By:
Claude Opus 5 <noreply@anthropic.com>