Configuration App Terrain (Mobile)
Tier Pro — L'app terrain est une application Expo (React Native) pour les interventions sur le terrain, rapports, et contrôles équipements.
Prérequis
- Node.js ≥ 22
- pnpm ≥ 9
- Expo Go installé sur votre iOS/Android (pour le développement)
- Compte Expo gratuit sur expo.dev (requis pour les builds EAS)
Setup rapide
1. Variables d'environnement
cp apps/app-terrain/.env.example apps/app-terrain/.env.localRemplir apps/app-terrain/.env.local :
# URL de votre instance web (apps/web)
EXPO_PUBLIC_API_URL=https://votre-domaine.com
# Branding de l'app
EXPO_PUBLIC_APP_SLUG=votre-slug
EXPO_PUBLIC_APP_NAME="Votre App Terrain"Note locale : Pour tester sur un vrai téléphone,
EXPO_PUBLIC_API_URLdoit pointer vers l'IP locale de votre machine (ex:http://192.168.1.42:3000), paslocalhost.
2. Installer les dépendances
pnpm install3. Lancer en mode développement
cd apps/app-terrain
pnpm startScanner le QR code avec Expo Go sur votre téléphone.
Structure de l'app
apps/app-terrain/
├── app/ # Routes Expo Router
│ ├── (auth)/ # Écrans de connexion
│ ├── (tabs)/ # Navigation principale par onglets
│ └── interventions/ # Détail et création d'interventions
├── components/ # Composants réutilisables
├── lib/ # Utilitaires
│ ├── api.ts # Client tRPC
│ ├── auth.ts # Session NextAuth
│ └── sync.ts # Sync offline
└── store/ # État global (Zustand)
Fonctionnalités incluses
| Fonctionnalité | Détail |
|---|---|
| Authentification | Login email/password + biométrie (Face ID, empreinte) |
| Interventions | Liste, détail, création, signature |
| Photos | Prise photo et annotation depuis l'app |
| Mode offline | Queue de mutations + sync automatique au retour réseau |
| Notifications push | Via Expo Notifications |
| Rapports terrain | PDF généré côté serveur |
Build de production (EAS Build)
Configuration initiale (une seule fois)
cd apps/app-terrain
npx eas build:configureCela crée ou met à jour eas.json et associe le projet à votre compte Expo.
Build Android (APK/AAB)
npx eas build --platform android --profile productionBuild iOS (.ipa)
npx eas build --platform ios --profile productionPrérequis iOS : compte Apple Developer (99$/an) + certificats configurés dans EAS.
Mise à jour OTA (sans rebuild)
npx eas update --branch production --message "Description de la mise à jour"Authentification
L'app terrain utilise les mêmes sessions NextAuth que l'interface web. Les routes API dédiées au mobile sont sous /api/mobile/* dans apps/web.
Pour créer de nouveaux endpoints mobiles, voir apps/web/src/app/api/mobile/.
Troubleshooting
Metro bundler ne démarre pas
pnpm start --clearErreur "Network request failed" sur téléphone réel
Remplacer localhost par votre IP locale :
# Trouver votre IP (macOS/Linux)
ifconfig | grep "inet "
# Windows
ipconfigPuis mettre à jour EXPO_PUBLIC_API_URL=http://192.168.x.x:3000.
Dépendances Expo incompatibles après mise à jour
npx expo install --checkErreur TypeScript dans l'app
cd apps/app-terrain
pnpm typecheckRessources
- Documentation Expo Router
- EAS Build
- EAS Update
- Architecture web : Architecture (FR) — Architecture (EN)
- Modules disponibles : Modules (FR) — Modules (EN)