Votre passerelle vers l'univers du streaming français
LandFlix est une application multiplateforme moderne et puissante pour rechercher, découvrir et télécharger vos films et séries préférés. Développée avec Flutter, elle offre une expérience fluide et élégante sur mobile, web et bureau.
- 🔍 Recherche Intelligente : Recherchez vos films et séries avec un système de requêtes optimisé
- 📥 Téléchargement Rapide : Téléchargez vos contenus favoris avec le système UQLoad intégré
- 📁 Gestionnaire de Téléchargements : Interface dédiée pour gérer tous vos téléchargements
- 💾 Liste Personnalisée : Sauvegardez vos contenus préférés pour un visionnage ultérieur
- 🎨 Interface Moderne : Design élégant et réactif avec Material Design 3
- 📱 Multiplateforme : Compatible Android, iOS, Web, Windows, Linux et macOS
- ⚡ Performance Optimale : Architecture BLoC pour une gestion d'état efficace
- ✅ Intégration UQLoad : Téléchargement optimisé depuis UQLoad avec suivi de progression
- ✅ Gestionnaire Complet : Écran dédié pour visualiser et gérer tous vos téléchargements
- ✅ Persistance Locale : Sauvegarde automatique de l'historique avec SharedPreferences
- ✅ Marquage Visuel : Badges et indicateurs sur les médias déjà téléchargés
- ✅ Gestion Automatique : Vérification de l'intégrité des fichiers et nettoyage intelligent
Captures d'écran à venir
Avant de commencer, assurez-vous d'avoir installé :
- Flutter SDK : Version 3.8.1 ou supérieure (Guide d'installation)
- Dart SDK : Version 3.8.1 ou supérieure (inclus avec Flutter)
- Git : Pour le contrôle de version
- IDE : VS Code ou Android Studio avec les plugins Flutter
- Android : Android Studio, Android SDK (API niveau 21+)
- iOS : Xcode 14+ (macOS uniquement)
- Windows : Visual Studio 2022 avec outils de développement C++ pour le bureau
- Linux : Bibliothèques de développement GTK+ 3.0
- macOS : Xcode Command Line Tools
-
Cloner le dépôt
git clone https://github.com/Starland9/LandFlix.git cd LandFlix -
Installer les dépendances
flutter pub get
-
Configurer UQLoad Downloader (si nécessaire)
Le projet utilise
uqload_downloader_darten local. Si vous devez le configurer :# Dans pubspec.yaml, ajustez le chemin si nécessaire uqload_downloader_dart: path: /chemin/vers/uqload_downloader_dart
-
Générer les icônes de l'application
dart pub global run flutter_launcher_icons:generate
-
Générer les fichiers de routage (si nécessaire)
dart run build_runner build --delete-conflicting-outputs
-
Lancer l'application
# Pour mobile (Android/iOS) flutter run # Pour le web flutter run -d chrome # Pour bureau flutter run -d windows # ou linux, macos
lib/
├── main.dart # Point d'entrée de l'application
└── src/
├── app.dart # Widget principal de l'application
├── core/ # Fonctionnalités de base
│ ├── routing/ # Navigation avec Auto-route
│ ├── themes/ # Thèmes et couleurs de l'application
│ ├── components/ # Composants réutilisables (badges, cartes, etc.)
│ ├── env/ # Configuration d'environnement
│ └── services/ # Services (UQLoad, Download Manager, etc.)
├── logic/ # Logique métier
│ ├── cubits/ # Gestion d'état avec BLoC/Cubit
│ ├── models/ # Modèles de données
│ ├── repos/ # Pattern Repository
│ └── services/ # Services API
└── screens/ # Écrans de l'interface utilisateur
├── home/ # Écran d'accueil et recherche
├── result/ # Résultats de recherche
├── downloads/ # Gestionnaire de téléchargements
├── wishlist/ # Liste de contenus sauvegardés
└── splash/ # Écran de démarrage
lib/src/core/services/download_manager.dart- Service principal de gestion des téléchargementslib/src/screens/downloads/downloads_screen.dart- Interface du gestionnairelib/src/core/components/downloaded_badge.dart- Badges visuels pour les médias téléchargés
lib/src/core/services/uqload_download_service.dart- Service de téléchargement UQLoadlib/src/logic/cubits/download/- Gestion d'état des téléchargements
Pour plus de détails sur les fonctionnalités spécifiques :
- 📥 DOWNLOAD_MANAGER.md - Documentation du gestionnaire de téléchargements
- 🚀 UQLOAD_INTEGRATION.md - Intégration UQLoad Downloader
- 🎨 UI_UX_IMPROVEMENTS.md - Améliorations de l'interface utilisateur
- Flutter : Framework d'interface utilisateur multiplateforme
- Dart : Langage de programmation (version 3.8.1+)
- Gestion d'État :
flutter_bloc(9.1.1),bloc(9.0.0) - Navigation :
auto_route(10.1.0+1) - Réseau :
dio(5.8.0+1) - Stockage :
shared_preferences(2.3.2),path_provider(2.0.15) - Téléchargement :
uqload_downloader_dart(intégration locale) - Interface :
google_fonts(6.2.1),shimmer(3.0.0), Material Design 3 - Utilitaires :
equatable(2.0.7),url_launcher(6.3.1)
- Génération de Code :
auto_route_generator,lean_builder - Linting :
flutter_lints(5.0.0) - Assets :
flutter_launcher_icons
Ce projet utilise la génération de code pour le routage et d'autres fonctionnalités :
# Observer les changements et générer automatiquement
dart run build_runner watch
# Génération ponctuelle
dart run build_runner build --delete-conflicting-outputsLe gestionnaire de téléchargements doit être initialisé au démarrage de l'application :
// Dans main.dart
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// Initialisation obligatoire du gestionnaire de téléchargements
await DownloadManager.instance.initialize();
runApp(MyApp());
}# Exécuter tous les tests
flutter test
# Exécuter avec couverture
flutter test --coverage# Analyser le code avec le linter
flutter analyze
# Formater le code
flutter format .# Android APK
flutter build apk --release
# Android App Bundle
flutter build appbundle --release
# iOS
flutter build ipa --release
# Web
flutter build web --release
# Windows
flutter build windows --release
# Linux
flutter build linux --release
# macOS
flutter build macos --releaseL'application utilise des icônes de lancement personnalisées. Pour les régénérer :
dart pub global run flutter_launcher_icons:generateLa configuration des icônes se trouve dans flutter_launcher_icons.yaml.
Configurez vos paramètres d'environnement dans lib/src/core/env/env.dart.
Le téléchargeur UQLoad est configuré pour gérer automatiquement :
- 📁 Dossiers de téléchargement : Créés automatiquement selon la plateforme
- 📊 Suivi de progression : Mise à jour en temps réel
- 💾 Persistance : Sauvegarde automatique de l'historique
- 🏷️ Marquage visuel : Badges sur les médias téléchargés
Pour plus de détails, consultez UQLOAD_INTEGRATION.md.
Le gestionnaire de téléchargements utilise SharedPreferences pour la persistance :
- Historique complet des téléchargements
- Vérification de l'intégrité des fichiers
- Nettoyage automatique des fichiers supprimés
- Statistiques en temps réel
Pour plus de détails, consultez DOWNLOAD_MANAGER.md.
- ✅ Android (API 21+)
- ✅ iOS (12.0+)
- ✅ Web (navigateurs modernes)
- ✅ Windows (Windows 10+)
- ✅ Linux (GTK+ 3.0)
- ✅ macOS (10.14+)
LandFlix intègre un système de téléchargement avancé avec :
- Téléchargement UQLoad : Intégration complète avec UQLoad Downloader
- Suivi en temps réel : Progression et statut des téléchargements
- Gestion intelligente : Organisation automatique des fichiers
- Interface dédiée : Écran de gestion des téléchargements avec statistiques
- Persistance : Sauvegarde automatique de l'historique
- Marquage visuel : Badges sur les médias déjà téléchargés
Accédez à tous vos téléchargements depuis le 3ᵉ onglet de la navigation :
- 📊 Statistiques : Nombre total et espace utilisé
- 🎬 Aperçu : Miniatures et informations détaillées
- 📂 Ouverture : Lecture directe avec le lecteur système
- 🗑️ Gestion : Suppression individuelle ou nettoyage groupé
- ✅ Vérification : Contrôle automatique de l'intégrité des fichiers
- Material Design 3 : Design moderne et élégant
- Animations fluides : Transitions et effets visuels
- Mode sombre : Interface optimisée pour un confort visuel
- Responsive : Adaptation automatique à tous les écrans
- Accessibilité : Support complet des fonctionnalités d'accessibilité
Les contributions sont les bienvenues ! Veuillez suivre ces étapes :
- Forkez le dépôt
- Créez une branche de fonctionnalité (
git checkout -b feature/NouvelleFonctionnalite) - Commitez vos changements (
git commit -m 'Ajout d'une nouvelle fonctionnalité') - Poussez vers la branche (
git push origin feature/NouvelleFonctionnalite) - Ouvrez une Pull Request
Ce projet suit le guide de style officiel Dart. Utilisez le linter fourni :
flutter analyzeCe projet est privé et n'est pas publié sur pub.dev. Tous droits réservés.
Starland9
- GitHub : @Starland9
- L'équipe Flutter pour leur incroyable framework
- La communauté open-source pour les excellents packages
- Les contributeurs et testeurs
Pour obtenir de l'aide, veuillez ouvrir une issue dans le dépôt GitHub ou contacter les mainteneurs.
- 🎬 Page d'accueil LandFlix - Landing page marketing
- 📥 Documentation Download Manager - Gestionnaire de téléchargements
- 🚀 Documentation UQLoad - Intégration UQLoad
- 🎨 Améliorations UI/UX - Améliorations de l'interface
Fait avec ❤️ en utilisant Flutter | LandFlix v1.0+ ✨