Aller au contenu principal

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.local

Remplir 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_URL doit pointer vers l'IP locale de votre machine (ex: http://192.168.1.42:3000), pas localhost.

2. Installer les dépendances

pnpm install

3. Lancer en mode développement

cd apps/app-terrain
pnpm start

Scanner 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
AuthentificationLogin email/password + biométrie (Face ID, empreinte)
InterventionsListe, détail, création, signature
PhotosPrise photo et annotation depuis l'app
Mode offlineQueue de mutations + sync automatique au retour réseau
Notifications pushVia Expo Notifications
Rapports terrainPDF généré côté serveur

Build de production (EAS Build)

Configuration initiale (une seule fois)

cd apps/app-terrain
npx eas build:configure

Cela crée ou met à jour eas.json et associe le projet à votre compte Expo.

Build Android (APK/AAB)

npx eas build --platform android --profile production

Build iOS (.ipa)

npx eas build --platform ios --profile production

Pré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 --clear

Erreur "Network request failed" sur téléphone réel

Remplacer localhost par votre IP locale :

# Trouver votre IP (macOS/Linux)
ifconfig | grep "inet "
# Windows
ipconfig

Puis mettre à jour EXPO_PUBLIC_API_URL=http://192.168.x.x:3000.

Dépendances Expo incompatibles après mise à jour

npx expo install --check

Erreur TypeScript dans l'app

cd apps/app-terrain
pnpm typecheck

Ressources