Files
gbcm-mobile-app/README.md

284 lines
5.6 KiB
Markdown

# 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