Skip to content

datagora-erasme/miau

Repository files navigation

Miau

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.

Stack Technique

  • Framework : React Native avec Expo (Managed Workflow & Expo Router).
  • Scan de documents : react-native-document-scanner-plugin (Module natif).
  • Stockage local : react-native-mmkv pour une persistance rapide des données.
  • Gestion d'état : Zustand.
  • DataBase : API REST Grist.

Configuration (Variables d'environnement)

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 via process.env et injectées dans le bundle JavaScript `.

Installation & Développement

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.

Pré-requis

  • 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:8081

Une 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 assembleRelease

Architecture du Projet

app/        → 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)

Profils de Build (eas.json)

development

Génère un client de développement (developmentClient: true) pour le debug.

preview

Distribution interne (APK de test).

production

Version finale optimisée pour le déploiement.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors