# Configuration de Build AfterWork Ce document explique comment configurer et builder l'application AfterWork pour diffĂ©rents environnements. ## 📋 Table des matiĂšres - [Environnements](#environnements) - [Configuration Rapide](#configuration-rapide) - [Scripts de Build](#scripts-de-build) - [Build Manuel](#build-manuel) - [Variables d'Environnement](#variables-denvironnement) --- ## 🌍 Environnements ### Development (par dĂ©faut) - **API URL** : `http://192.168.1.145:8080` - **Usage** : DĂ©veloppement local avec le backend sur le rĂ©seau local - **Debug** : ActivĂ© ### Production - **API URL** : `https://api.lions.dev/afterwork` - **Usage** : DĂ©ploiement en production - **Debug** : DĂ©sactivĂ© --- ## ⚡ Configuration Rapide ### Windows (PowerShell) ```powershell # Build APK de production .\scripts\build_production.ps1 # Build avec nettoyage prĂ©alable .\scripts\build_production.ps1 -Clean # Build pour d'autres plateformes .\scripts\build_production.ps1 -Platform appbundle .\scripts\build_production.ps1 -Platform web ``` ### Linux/Mac (Bash) ```bash # Rendre le script exĂ©cutable chmod +x scripts/build_production.sh # Build APK de production ./scripts/build_production.sh # Build avec nettoyage prĂ©alable ./scripts/build_production.sh apk --clean # Build pour d'autres plateformes ./scripts/build_production.sh appbundle ./scripts/build_production.sh web ``` --- ## 🔹 Scripts de Build ### `build_production.ps1` / `build_production.sh` Scripts automatisĂ©s pour builder l'application en production. **ParamĂštres** : - `Platform` : `apk` (dĂ©faut), `appbundle`, `ios`, `web` - `--clean` / `-Clean` : Nettoie le projet avant le build **Configuration automatique** : - ✅ API_BASE_URL = `https://api.lions.dev/afterwork` - ✅ ENVIRONMENT = `production` - ✅ Mode release activĂ© **Sortie** : - APK : `build/app/outputs/flutter-apk/app-release.apk` - App Bundle : `build/app/outputs/bundle/release/app-release.aab` - iOS : `build/ios/ipa/` - Web : `build/web/` --- ## đŸ› ïž Build Manuel Si vous prĂ©fĂ©rez builder manuellement sans les scripts : ### Android APK ```bash flutter build apk \ --dart-define=API_BASE_URL=https://api.lions.dev/afterwork \ --dart-define=ENVIRONMENT=production \ --release ``` ### Android App Bundle (pour Google Play) ```bash flutter build appbundle \ --dart-define=API_BASE_URL=https://api.lions.dev/afterwork \ --dart-define=ENVIRONMENT=production \ --release ``` ### iOS ```bash flutter build ios \ --dart-define=API_BASE_URL=https://api.lions.dev/afterwork \ --dart-define=ENVIRONMENT=production \ --release ``` ### Web ```bash flutter build web \ --dart-define=API_BASE_URL=https://api.lions.dev/afterwork \ --dart-define=ENVIRONMENT=production \ --release ``` --- ## 🔑 Variables d'Environnement ### API_BASE_URL URL de base de l'API backend. - **Type** : String - **Requis** : Non (utilise la valeur par dĂ©faut si non dĂ©fini) - **DĂ©faut** : `http://192.168.1.145:8080` (dĂ©veloppement) - **Production** : `https://api.lions.dev/afterwork` **Exemple d'utilisation** : ```dart import 'package:afterwork/core/constants/env_config.dart'; final apiUrl = EnvConfig.apiBaseUrl; // En prod: https://api.lions.dev/afterwork ``` ### ENVIRONMENT Environnement d'exĂ©cution de l'application. - **Type** : String - **Valeurs** : `development`, `staging`, `production` - **DĂ©faut** : `development` **Exemple d'utilisation** : ```dart import 'package:afterwork/core/constants/env_config.dart'; if (EnvConfig.isProduction) { // Code spĂ©cifique Ă  la production } ``` ### NETWORK_TIMEOUT Timeout pour les requĂȘtes rĂ©seau en secondes. - **Type** : int - **DĂ©faut** : 30 - **Production** : 30 (recommandĂ©) ### DEBUG_MODE Active les logs dĂ©taillĂ©s et fonctionnalitĂ©s de debug. - **Type** : bool - **DĂ©faut** : `true` - **Production** : Automatiquement `false` si `ENVIRONMENT=production` ### GOOGLE_MAPS_API_KEY ClĂ© API Google Maps (optionnelle). - **Type** : String - **Requis** : Non - **DĂ©faut** : vide **Exemple** : ```bash flutter build apk \ --dart-define=API_BASE_URL=https://api.lions.dev/afterwork \ --dart-define=GOOGLE_MAPS_API_KEY=votre_cle_api ``` --- ## 🚀 Endpoints de l'API Production L'API production est accessible Ă  l'adresse : **`https://api.lions.dev/afterwork`** ### Endpoints Principaux | Endpoint | Description | |----------|-------------| | `/users` | Gestion des utilisateurs | | `/users/authenticate` | Authentification | | `/events` | Gestion des Ă©vĂ©nements | | `/friends` | Gestion des amis | | `/messages` | Messagerie | | `/posts` | Posts sociaux | | `/stories` | Stories | | `/notifications` | Notifications | ### WebSockets | Endpoint | Description | |----------|-------------| | `/chat/ws/{userId}` | Chat en temps rĂ©el | | `/notifications/ws/{userId}` | Notifications en temps rĂ©el | **URL complĂšte** : ``` wss://api.lions.dev/afterwork/chat/ws/{userId} wss://api.lions.dev/afterwork/notifications/ws/{userId} ``` ### Documentation API Swagger UI disponible Ă  : - **URL** : `https://api.lions.dev/afterwork/q/swagger-ui/` --- ## 📝 VĂ©rification de la Configuration Avant le dĂ©ploiement, vĂ©rifiez que : ✅ L'API backend est accessible : `https://api.lions.dev/afterwork/users` ✅ Les WebSockets fonctionnent ✅ Les certificats TLS sont valides ✅ Le CORS est correctement configurĂ© ✅ L'application se connecte avec succĂšs Ă  l'API **Test rapide** : ```bash # Tester l'API curl https://api.lions.dev/afterwork/users # Devrait retourner: [] (liste vide si aucun utilisateur) ``` --- ## 🐛 DĂ©pannage ### Erreur : "API_BASE_URL is not set" **Solution** : VĂ©rifiez que vous utilisez `--dart-define=API_BASE_URL=...` lors du build. ### Erreur : "Connection refused" **Solutions** : 1. VĂ©rifiez que l'API est accessible : `curl https://api.lions.dev/afterwork/users` 2. VĂ©rifiez votre connexion internet 3. VĂ©rifiez que le CORS est configurĂ© sur le backend ### L'app se connecte au mauvais environnement **Solution** : Reconstruisez complĂštement l'application avec le bon `--dart-define`. ```bash # Nettoyage complet flutter clean flutter pub get # Rebuild avec la bonne configuration flutter build apk --dart-define=API_BASE_URL=https://api.lions.dev/afterwork ``` --- ## 📚 Ressources - [Documentation Flutter](https://flutter.dev/docs) - [Flutter Build Modes](https://flutter.dev/docs/testing/build-modes) - [Environment Variables in Flutter](https://flutter.dev/docs/deployment/flavors) - [API Backend Repository](https://git.lions.dev/lionsdev/mic-after-work-server-impl-quarkus-main) --- **DerniĂšre mise Ă  jour** : 2026-01-10 **Version** : 1.0.0