Initial commit: AudiOhm - Alternative Spotify avec streaming YouTube
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>
This commit is contained in:
@@ -0,0 +1,196 @@
|
||||
# 📦 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 ! 🚀**
|
||||
Reference in New Issue
Block a user