Le projet Miau est une application mobile native développée pour les agents de la Métropole de Lyon. Son objectif est de simplifier et de sécuriser la collecte de données sur le terrain en permettant une liaison directe entre la saisie d'informations et l'outil de gestion de données Grist.
L'application répond aux enjeux de modernisation des processus métropolitains à travers trois fonctionnalités clés :
- Espace de création dédié : Une interface de connexion permettant aux agents d'accéder à leurs formulaires métiers personnalisés.
- Numérisation intelligente : L'intégration d'un module de scan haute performance (
react-native-document-scanner-plugin) pour capturer des justificatifs avec détection automatique des bords. - Synchronisation Grist : L'envoi automatisé des données et des pièces jointes vers l'API Grist, créant instantanément une ligne documentée dans la table concernée.
- Framework : React Native avec Expo (Managed Workflow & Expo Router).
- Scan de documents :
react-native-document-scanner-plugin(Module natif). - Stockage local :
react-native-mmkvpour une persistance rapide des données. - Gestion d'état :
Zustand. - DataBase : API REST Grist.
L'application utilise le système de variables d'environnement natif d'Expo. Créez un fichier .env à la racine du projet et remplissez les variables à partir du fichier .env.EXAMPLE disponible dans le projet.
Important : Les variables doivent impérativement commencer par
EXPO_PUBLIC_pour être accessibles viaprocess.envet injectées dans le bundle JavaScript `.
L'utilisation de modules natifs (MMKV, Scanner) nécessite un Development Client.
Ce workflow permet de compiler l'application via le cloud d'Expo (EAS), sans installation locale d'Android Studio.
- Un compte sur expo.dev
- CLI EAS installé :
npm install -g eas-cli
# 1. Installation des dépendances
npm install
# 2. Connexion à votre compte Expo
npx expo login
# 3. Lancement du serveur de développement
npx expo start
# 4. Génération du Client de Développement (Android). Cette commande crée l'APK natif sur les serveurs d'Expo.
eas build --profile development --platform android
# 4bis. Génération de l'APK en local
# Pour cette étape, consultez : https://docs.expo.dev/get-started/set-up-your-environment/?mode=development-build&buildEnv=local
npx expo prebuild
cd android
./gradlew assembleDebug
# L'APK générée se trouyvera dans
android/app/build/outputs/apk/debug/app-debug.apk
# 5. Vous pouvez aussi lancer l'application en mode development sur votre téléphone
npx expo run:android
# Pensez à vérifier la connexion avec ADB
adb devices
# Dans le cas d'une connexion USB, il peut être nécessaire de faire un adb reverse
adb reverse tcp:8081 tcp:8081Une fois le build terminé, installez l'APK sur votre appareil Android.
Lancez ensuite le serveur et ouvrez l'application Miau pour charger votre code.
# Pour créer un APK de Production (Release)
npx expo prebuild
cd android
./gradlew assembleReleaseapp/ → Routes, pages et navigation (Expo Router)
components/ → Composants UI réutilisables
lib/ → Configuration de l'instance MMKV
store/ → Gestion de l'état global (Zustand)
utils/ → Fonctions logiques et API (getGrist, sendToGrist, scanDoc)
Génère un client de développement (developmentClient: true) pour le debug.
Distribution interne (APK de test).
Version finale optimisée pour le déploiement.