# 📩 Build Client Executable Ce document explique comment crĂ©er un exĂ©cutable pour l'application client Spotify Le 2. ## 🎯 PrĂ©requis ### Windows - **Flutter SDK** (3.19.0 ou supĂ©rieur) - TĂ©lĂ©charger: https://docs.flutter.dev/get-started/install/windows - **Visual Studio 2022** (avec "Desktop development with C++") - **Git for Windows** ### Linux - **Flutter SDK** (3.19.0 ou supĂ©rieur) - TĂ©lĂ©charger: https://docs.flutter.dev/get-started/install/linux - DĂ©pendances de build: ```bash sudo apt install clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev ``` ### macOS - **Flutter SDK** (3.19.0 ou supĂ©rieur) - TĂ©lĂ©charger: https://docs.flutter.dev/get-started/install/macos - **Xcode** (avec les outils de ligne de commande) --- ## 🚀 Compilation Rapide ### Windows **Double-cliquez sur:** `BUILD_CLIENT_WINDOWS.bat` **Ou manuellement:** ```cmd cd frontend flutter pub get flutter build windows --release ``` L'exĂ©cutable sera créé dans: `frontend\build\windows\x64\runner\Release\` ### Linux ```bash chmod +x BUILD_CLIENT_LINUX.sh ./BUILD_CLIENT_LINUX.sh ``` L'exĂ©cutable sera créé dans: `frontend/build/linux/x64/release/bundle/` ### macOS ```bash cd frontend flutter pub get flutter build macos --release ``` L'exĂ©cutable sera créé dans: `frontend/build/macos/Build/Products/Release/` --- ## 📩 Distribution Le script de build crĂ©e automatiquement un paquet dans `dist/` contenant: - L'exĂ©cutable compilĂ© - Tous les assets nĂ©cessaires - Un fichier README avec les instructions ### CrĂ©er un installeur (Windows - optionnel) Pour crĂ©er un vrai installeur `.msi` ou `.exe`, vous pouvez utiliser: 1. **Inno Setup** (gratuit) ```cmd iscc dist/windows/installer_script.iss ``` 2. **WiX Toolset** ```cmd candle.exe installer.wxs light.exe -out installer.msi installer.wixobj ``` 3. **electron-builder** (si vous portez l'app en Electron) --- ## 🔧 Configuration de l'API L'URL de l'API backend est configurĂ©e dans: ``` frontend/lib/core/constants/api_constants.dart ``` Par dĂ©faut: `http://localhost:8000/api/v1` Pour changer l'URL du backend (ex: serveur distant): ```dart const String baseUrl = 'http://VOTRE-SERVER-IP:8000/api/v1'; ``` Puis recompilez l'application. --- ## ✅ VĂ©rification Avant de distribuer l'exĂ©cutable: 1. **Tester l'application localement** ```bash # Lancer le backend cd backend && source venv/bin/activate && uvicorn app.main:app # Lancer le client flutter run -d windows ``` 2. **VĂ©rifier les fonctionnalitĂ©s clĂ©s** - Connexion/Inscription - Recherche musicale - Lecture audio - Gestion des playlists 3. **Tester sur une machine propre** (sans Flutter installĂ©) --- ## 📝 Notes importantes - **Taille du fichier**: L'exĂ©cutable pĂšse environ **50-80 MB** - **DĂ©pendances**: Aucune dĂ©pendance externe nĂ©cessaire pour l'utilisateur - **Performance**: Version release optimisĂ©e (compactĂ©e et accĂ©lĂ©rĂ©e) - **Mises Ă  jour**: Pour mettre Ă  jour l'application, il faut recompiler et redistribuer --- ## 🐛 ProblĂšmes Courants ### "Flutter command not found" → Ajoutez Flutter au PATH: - Windows: `%LOCALAPPDATA%\Flutter\bin` - Linux/Mac: `export PATH="$PATH:`pwd`/flutter/bin"` ### "No valid Windows build target" → Installez Visual Studio 2022 avec "Desktop development with C++" ### "clang: command not found" (Linux) ```bash sudo apt install clang cmake ninja-build pkg-config libgtk-3-dev ``` ### L'application ne se connecte pas au backend → VĂ©rifiez que: 1. Le backend est dĂ©marrĂ© 2. L'URL dans `api_constants.dart` est correcte 3. Le firewall ne bloque pas le port 8000 --- ## 🎹 Personnalisation ### Changer l'icĂŽne de l'application **Windows:** 1. Remplacer `windows/runner/resources/app_icon.ico` 2. Recompiler **Linux:** 1. Remplacer `linux/flutter/assets/icon.png` 2. Recompiler ### Changer le nom de l'application Modifier dans `pubspec.yaml`: ```yaml name: spotify_le_2 # Changez ceci ``` Puis recrĂ©ez le projet avec: ```bash flutter create --platforms=windows,linux,macos . ``` --- **Pour distribuer votre application:** 1. Suivez les Ă©tapes ci-dessus 2. Testez sur plusieurs machines 3. CrĂ©ez un installeur si nĂ©cessaire 4. Uploadez le fichier sur votre site/plateforme de distribution **Bon build ! 🚀**