59 lines
3.4 KiB
Markdown
59 lines
3.4 KiB
Markdown
# Haptika Mobile — Expo
|
||
|
||
Application mobile séparée de la cible Apple Watch SwiftUI du dépôt parent.
|
||
|
||
- Expo SDK 54 / React Native 0.81, compatible avec Xcode 16.4 installé ici.
|
||
- Development build avec `expo-dev-client`, Expo Router et Metro sur le port 8082.
|
||
- Identifiant iOS et Android : `com.haptika.mobile.dev`.
|
||
- 110 frames mobiles et 36 panneaux du Figma Haptika : onboarding, abonnement iPhone et abonnement iPhone + Watch. Les frames Watch de 198 × 242 ne sont pas intégrées à l'app mobile.
|
||
|
||
## Démarrer
|
||
|
||
```sh
|
||
cd mobile
|
||
npm ci
|
||
npm run ios
|
||
```
|
||
|
||
Après installation du development build :
|
||
|
||
```sh
|
||
npm start
|
||
```
|
||
|
||
Sur le simulateur préparé dans cette session :
|
||
|
||
```sh
|
||
xcrun simctl openurl 85638E91-52BB-440F-91F9-35604A771A28 'haptika-mobile://expo-development-client/?url=http%3A%2F%2Flocalhost%3A8082'
|
||
```
|
||
|
||
`eas.json` contient les profils `development` (simulateur) et `development-device` (appareil physique). Aucune publication ni compilation cloud n'a été lancée.
|
||
|
||
## Source des écrans
|
||
|
||
Figma : https://www.figma.com/design/2FOpWaxKTfJi0ogQBNizXi/haptika
|
||
|
||
Les références MCP sont conservées dans `design/contexts.json` et `design/metadata.xml`. Les textes et leurs styles sont rendus avec des `Text` natifs, les champs avec `TextInput`, les actions avec `Pressable`. Les illustrations et icônes sont les assets exportés de Figma, regroupés par empreinte SHA-256 et embarqués pour fonctionner hors ligne. Aucun écran n'est une capture d'écran cliquable.
|
||
|
||
`src/design/scenes.json` conserve les identifiants Figma et les propriétés de chaque couche. `src/components/design-layer.tsx` et `design-screen.tsx` effectuent le rendu React Native ; `scripts/compile-scenes.cjs` relie les parcours. Les écrans longs défilent ; les écrans courts s'ajustent à la hauteur sûre sans déformer les éléments ronds.
|
||
|
||
Le choix iPhone / iPhone + Apple Watch se fait sur l'étape « Comment allez vous utiliser Haptika ? ». Les préférences, le prénom, les réglages des curseurs et les choix sont conservés localement. Les parcours de navigation, la sélection de durée, les champs et les minuteurs de démonstration sont interactifs.
|
||
|
||
## Limites fonctionnelles
|
||
|
||
Cette livraison implémente le front du Figma. Les valeurs biométriques, profils, historiques et états « Connecté » affichés sont ceux de la maquette ; ils ne constituent pas des mesures ou connexions réelles. Le front n'est connecté ni à Firebase, ni à Apple Santé, ni à la Watch. Les mesures caméra, protocoles thérapeutiques, alarmes système, authentification et achats ne sont pas implémentés dans ce nouveau projet. Le code natif existant du dépôt parent n'a pas été transféré ni modifié.
|
||
|
||
Les destinations de profil sans frame correspondante (abonnement, support, etc.) n'ouvrent pas d'écran inventé. Les panneaux explicatifs définis dans Figma sont associés aux boutons d'information disponibles.
|
||
|
||
## Vérification
|
||
|
||
```sh
|
||
npm run typecheck
|
||
npm test
|
||
npx expo install --check
|
||
```
|
||
|
||
Pour ouvrir une frame spécifique : `haptika-mobile://screen/431-2`. Ajouter `?preview=1` fige le contenu de référence et masque les interactions pour la comparaison visuelle. Ce mode n'enregistre pas de données biométriques.
|
||
|
||
Les captures de contrôle de chaque frame sont dans `qa/screens/`. Le quota du MCP Figma a été atteint après la récupération des contextes ; le rendu utilise les références déjà obtenues et les assets téléchargés, sans dépendance réseau à Figma au lancement.
|