284 lines
5.6 KiB
Markdown
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
|