Files
gbcm-mobile-app/README.md

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

  1. Cloner le repository
git clone https://git.lions.dev/gbcm/gbcm-mobile-app.git
cd gbcm-mobile-app
  1. Installer les dépendances
npm install
# ou
yarn install
  1. Installation des pods iOS (macOS uniquement)
cd ios && pod install && cd ..
  1. 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

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 - Authentification
  • userService - Gestion utilisateur
  • coachingService - Services de coaching
  • workshopService - Gestion des ateliers
  • notificationService - 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'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

Licence

Propriétaire - GBCM LLC © 2024