# GBCM Mobile App Application mobile pour la plateforme GBCM (Global Business Consulting and Management) développée avec React Native. ## Description Application mobile native iOS et Android permettant aux utilisateurs GBCM d'accéder à leurs services de coaching, ateliers et tableaux de bord depuis leurs appareils mobiles. ## Technologies - **React Native 0.72.6** - Framework mobile cross-platform - **React 18.2.0** - Bibliothèque UI - **React Navigation 6** - Navigation - **Redux Toolkit** - Gestion d'état - **React Native Paper** - Composants Material Design - **React Hook Form** - Gestion des formulaires - **Axios** - Client HTTP - **React Native Keychain** - Stockage sécurisé - **React Native Chart Kit** - Graphiques - **React Native Calendars** - Calendrier ## Prérequis ### Environnement de développement - Node.js 16+ - npm ou yarn - React Native CLI - Java 11+ (Android) - Xcode 14+ (iOS) - Android Studio (Android) ### Appareils/Simulateurs - iOS Simulator (macOS uniquement) - Android Emulator - Appareils physiques iOS/Android ## Installation 1. Cloner le repository ```bash git clone https://git.lions.dev/gbcm/gbcm-mobile-app.git cd gbcm-mobile-app ``` 2. Installer les dépendances ```bash npm install # ou yarn install ``` 3. Installation des pods iOS (macOS uniquement) ```bash cd ios && pod install && cd .. ``` 4. Configuration Copier `.env.example` vers `.env` et configurer : ``` API_BASE_URL=https://api.gbcm.com/v1 API_TIMEOUT=10000 ENVIRONMENT=development ``` ## Développement ### Démarrage du Metro bundler ```bash npm start # ou yarn start ``` ### Lancement sur iOS ```bash npm run ios # ou yarn ios ``` ### Lancement sur Android ```bash npm run android # ou yarn android ``` ### Tests ```bash npm test # ou yarn test ``` ## Structure du projet ``` src/ ├── components/ # Composants réutilisables │ ├── common/ # Composants communs │ ├── forms/ # Composants de formulaires │ └── charts/ # Graphiques ├── screens/ # Écrans de l'application │ ├── auth/ # Authentification │ ├── dashboard/ # Tableaux de bord │ ├── coaching/ # Sessions de coaching │ ├── workshops/ # Ateliers │ └── profile/ # Profil utilisateur ├── navigation/ # Configuration navigation ├── services/ # Services API ├── store/ # Gestion d'état Redux ├── utils/ # Utilitaires └── assets/ # Ressources statiques ``` ## Fonctionnalités ### Authentification - Connexion/déconnexion sécurisée - Authentification biométrique (Touch ID/Face ID) - Stockage sécurisé des tokens - Gestion des sessions ### Dashboard - Vue d'ensemble personnalisée - Métriques et KPIs - Notifications push - Accès rapide aux services ### Coaching - Liste des sessions programmées - Détails des sessions - Historique des sessions - Évaluation des sessions ### Ateliers - Catalogue des ateliers disponibles - Inscription aux ateliers - Calendrier des événements - Matériel de formation ### Profil - Informations personnelles - Paramètres de l'application - Préférences de notification - Support et aide ## Services API ### Configuration ```javascript // src/services/api.js const API_BASE_URL = 'https://api.gbcm.com/v1'; ``` ### Services disponibles - `authService` - Authentification - `userService` - Gestion utilisateur - `coachingService` - Services de coaching - `workshopService` - Gestion des ateliers - `notificationService` - Notifications ## Gestion d'état ### Redux Store ```javascript // Structure du store { auth: { user: null, token: null, isAuthenticated: false, loading: false }, coaching: { sessions: [], currentSession: null }, workshops: { available: [], registered: [] } } ``` ## Navigation ### Structure de navigation - **Auth Stack** - Écrans d'authentification - **Main Tab Navigator** - Navigation principale - Dashboard - Coaching - Ateliers - Profil - **Modal Stack** - Écrans modaux ## Build et déploiement ### Build Android ```bash cd android ./gradlew assembleRelease ``` ### Build iOS ```bash cd ios xcodebuild -workspace GBCMMobile.xcworkspace \ -scheme GBCMMobile \ -configuration Release \ -destination generic/platform=iOS \ -archivePath GBCMMobile.xcarchive archive ``` ### Distribution - **Android**: Google Play Store - **iOS**: Apple App Store - **Enterprise**: Distribution interne ## Tests ### Tests unitaires ```bash npm run test:unit ``` ### Tests d'intégration ```bash npm run test:integration ``` ### Tests E2E avec Detox ```bash npm run test:e2e:ios npm run test:e2e:android ``` ## Performance ### Optimisations - Lazy loading des écrans - Mise en cache des images - Optimisation des re-renders - Bundle splitting ### Monitoring - Crash reporting (Crashlytics) - Performance monitoring - Analytics utilisateur ## Sécurité ### Stockage sécurisé - Tokens dans Keychain/Keystore - Chiffrement des données sensibles - Validation côté client ### Communication - HTTPS uniquement - Certificate pinning - Validation des certificats ## Configuration ### Variables d'environnement - `API_BASE_URL` - URL de l'API - `API_TIMEOUT` - Timeout des requêtes - `ENVIRONMENT` - Environnement (dev/staging/prod) ### Configuration par environnement - `config/development.js` - `config/staging.js` - `config/production.js` ## Support - Email: mobile-support@gbcm.com - Documentation: https://docs.gbcm.com/mobile - Issues: https://git.lions.dev/gbcm/gbcm-mobile-app/issues ## Licence Propriétaire - GBCM LLC © 2024