Backend: - FastAPI avec PostgreSQL et Redis - Authentification JWT complète - API REST pour musique, playlists, recherche - Streaming audio via yt-dlp - SQLAlchemy 2.0 async Frontend: - Flutter avec thème néon cyberpunk - State management Riverpod - Layout adaptatif desktop/mobile - Lecteur audio avec mini-player Infrastructure: - Docker Compose (PostgreSQL + Redis) - Scripts d'installation automatisés - Scripts de build pour exécutables Fichiers ajoutés: - BUILD_CLIENT_*.bat/sh: Scripts de compilation - BUILD_CLIENT_README.md: Documentation compilation - CHECK_FLUTTER.sh: Vérificateur d'environnement - requirements.txt mis à jour pour Python 3.13 - Modèles SQLAlchemy corrigés (metadata -> extra_metadata) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
4.2 KiB
📦 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:
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:
cd frontend
flutter pub get
flutter build windows --release
L'exécutable sera créé dans: frontend\build\windows\x64\runner\Release\
Linux
chmod +x BUILD_CLIENT_LINUX.sh
./BUILD_CLIENT_LINUX.sh
L'exécutable sera créé dans: frontend/build/linux/x64/release/bundle/
macOS
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:
-
Inno Setup (gratuit)
iscc dist/windows/installer_script.iss -
WiX Toolset
candle.exe installer.wxs light.exe -out installer.msi installer.wixobj -
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):
const String baseUrl = 'http://VOTRE-SERVER-IP:8000/api/v1';
Puis recompilez l'application.
✅ Vérification
Avant de distribuer l'exécutable:
-
Tester l'application localement
# Lancer le backend cd backend && source venv/bin/activate && uvicorn app.main:app # Lancer le client flutter run -d windows -
Vérifier les fonctionnalités clés
- Connexion/Inscription
- Recherche musicale
- Lecture audio
- Gestion des playlists
-
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)
sudo apt install clang cmake ninja-build pkg-config libgtk-3-dev
L'application ne se connecte pas au backend
→ Vérifiez que:
- Le backend est démarré
- L'URL dans
api_constants.dartest correcte - Le firewall ne bloque pas le port 8000
🎨 Personnalisation
Changer l'icône de l'application
Windows:
- Remplacer
windows/runner/resources/app_icon.ico - Recompiler
Linux:
- Remplacer
linux/flutter/assets/icon.png - Recompiler
Changer le nom de l'application
Modifier dans pubspec.yaml:
name: spotify_le_2 # Changez ceci
Puis recréez le projet avec:
flutter create --platforms=windows,linux,macos .
Pour distribuer votre application:
- Suivez les étapes ci-dessus
- Testez sur plusieurs machines
- Créez un installeur si nécessaire
- Uploadez le fichier sur votre site/plateforme de distribution
Bon build ! 🚀