5.6 KiB
5.6 KiB
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
- Cloner le repository
git clone https://git.lions.dev/gbcm/gbcm-mobile-app.git
cd gbcm-mobile-app
- Installer les dépendances
npm install
# ou
yarn install
- Installation des pods iOS (macOS uniquement)
cd ios && pod install && cd ..
- Configuration
Copier
.env.examplevers.envet configurer :
API_BASE_URL=https://api.gbcm.com/v1
API_TIMEOUT=10000
ENVIRONMENT=development
Développement
Démarrage du Metro bundler
npm start
# ou
yarn start
Lancement sur iOS
npm run ios
# ou
yarn ios
Lancement sur Android
npm run android
# ou
yarn android
Tests
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
// src/services/api.js
const API_BASE_URL = 'https://api.gbcm.com/v1';
Services disponibles
authService- AuthentificationuserService- Gestion utilisateurcoachingService- Services de coachingworkshopService- Gestion des ateliersnotificationService- Notifications
Gestion d'état
Redux Store
// 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
cd android
./gradlew assembleRelease
Build iOS
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
npm run test:unit
Tests d'intégration
npm run test:integration
Tests E2E avec Detox
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'APIAPI_TIMEOUT- Timeout des requêtesENVIRONMENT- Environnement (dev/staging/prod)
Configuration par environnement
config/development.jsconfig/staging.jsconfig/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