nerumusic
A modern, feature-rich music streaming application built with Flutter, featuring advanced audio controls, offline capabilities, and a sleek dark-themed interface.
๐ต Neru Music
A modern, feature-rich music streaming application built with Flutter, featuring advanced audio controls, offline capabilities, and a sleek dark-themed interface.
Preview
Preview
Preview
Preview
#โจ Features
##๐๏ธ Advanced Audio Controls
- 10-Band Equalizer with professional presets (Rock, Pop, Jazz, Classical, etc.)
- Audio Effects: Bass boost, virtualizer, loudness enhancer, pre-amplifier
- Sleep Timer with customizable fade-out and smart pause options
- Crossfade System with multiple curve types for seamless track transitions
##๐ต Music Streaming & Management
- Multi-API Integration: YouTube Music, Spotify, SoundCloud, Free Music Archive
- Smart Search: Cross-platform music discovery with intelligent results
- Playlist Management: Create, edit, and organize your music collections
- Queue Management: Advanced playback queue with shuffle and repeat modes
##๐ฑ Offline Capabilities
- Download Manager: Queue-based downloads with progress tracking
- Storage Optimization: Smart cache management and storage monitoring
- Offline Playback: Full offline music experience with metadata
##๐จ Modern User Interface
- Dark Theme: Sleek, modern interface with purple/pink accents
- Responsive Design: Optimized for phones, tablets, and desktop
- Custom Animations: Smooth 300ms transitions and interactive elements
- Adaptive Layouts: Dynamic UI that adapts to screen size and orientation
##โ๏ธ Advanced Features
- User Preferences: Comprehensive settings for audio, downloads, and privacy
- Performance Optimization: Memory management, caching, and background processing
- Analytics & Crash Reporting: Privacy-conscious data collection and error handling
- Background Playback: Continuous music playback with audio session management
#๐๏ธ Architecture
Built following Clean Architecture principles with strict separation of concerns:
lib/
โโโ core/ # Core utilities and configurations
โ โโโ constants/ # App-wide constants and API endpoints
โ โโโ errors/ # Error handling and custom exceptions
โ โโโ network/ # Network services and HTTP client
โ โโโ themes/ # App theming and color schemes
โ โโโ services/ # Analytics and shared services
โ โโโ utils/ # Utilities and performance optimizers
โ โโโ animations/ # Custom animations and transitions
โโโ data/ # Data layer implementation
โ โโโ datasources/ # API integrations and remote data sources
โ โโโ models/ # Data models and serialization
โ โโโ repositories/ # Repository implementations
โโโ domain/ # Business logic layer
โ โโโ entities/ # Core business entities
โ โโโ repositories/ # Repository interfaces
โ โโโ usecases/ # Business use cases
โโโ presentation/ # UI and state management
โ โโโ screens/ # App screens and pages
โ โโโ widgets/ # Reusable UI components
โ โโโ controllers/ # Riverpod state controllers
โ โโโ navigation/ # App routing and navigation
โโโ main.dart # App entry point
#๐ Getting Started
##Prerequisites
- Flutter SDK: 3.32.7 or higher
- Dart: 3.5 or higher
- iOS: Xcode 16.4+ (for iOS development)
- Android: Android Studio with SDK 36+
- CocoaPods: For iOS dependencies
##Installation
-
Clone the repository
git clone https://github.com/nerufuyo/nerumusic.git cd nerumusic
-
Install dependencies
flutter pub get
-
iOS Setup (iOS development only)
cd ios pod install cd ..
-
Environment Configuration
Create a.env
file in the root directory:# API Keys (Optional - Demo data available) YOUTUBE_MUSIC_API_KEY=your_youtube_music_key SPOTIFY_CLIENT_ID=your_spotify_client_id SPOTIFY_CLIENT_SECRET=your_spotify_client_secret SOUNDCLOUD_CLIENT_ID=your_soundcloud_client_id # App Configuration APP_NAME=Neru Music API_BASE_URL=https://api.nerumusic.com
-
Run the application
# iOS Simulator flutter run -d "iPhone 15 Pro" # Android Emulator flutter run -d android # Web Browser flutter run -d chrome # Desktop flutter run -d macos # macOS flutter run -d windows # Windows flutter run -d linux # Linux
#๐ ๏ธ Tech Stack
##Core Technologies
- Flutter: Cross-platform UI framework
- Dart: Programming language
- Riverpod: State management and dependency injection
##Audio & Media
- just_audio: Audio playback engine
- audio_service: Background audio support
- audio_session: Audio session management
##Data & Storage
- shared_preferences: Local preferences storage
- path_provider: File system access
- http: HTTP client for API requests
##UI & Navigation
- go_router: Declarative routing
- flutter_animate: Animation utilities
##Development Tools
- flutter_lints: Dart/Flutter linting
- build_runner: Code generation
- freezed: Immutable data classes
#๐ฑ Platform Support
Platform | Status | Features |
---|---|---|
iOS | โ Full Support | Background playback, equalizer, offline downloads |
Android | โ Full Support | Background playback, equalizer, offline downloads |
Web | โ Full Support | Streaming, playlists, responsive design |
macOS | โ Full Support | Desktop-optimized UI, keyboard shortcuts |
Windows | โ ๏ธ Beta | Basic functionality, ongoing optimization |
Linux | โ ๏ธ Beta | Basic functionality, ongoing optimization |
#๐ฏ Performance
##Benchmarks
- App Startup: < 3 seconds
- Memory Usage: < 150MB RAM
- Audio Latency: < 50ms
- Search Response: < 500ms
- UI Framerate: 60fps consistent
##Optimizations
- Lazy Loading: Components load on-demand
- Image Caching: LRU cache with automatic cleanup
- Background Processing: Heavy operations in isolates
- Memory Management: Smart cache eviction and garbage collection
#๐งช Testing
Run the test suite:
# Unit tests
flutter test
# Integration tests
flutter test integration_test/
# Test coverage
flutter test --coverage
genhtml coverage/lcov.info -o coverage/html
Current Coverage: 85%+ across all modules
#๐ง Development
##Code Quality Standards
- DRY Principle: No code duplication beyond 3 lines
- KISS Principle: Maximum function complexity of 10 lines
- Clean Architecture: Strict separation of concerns
- Widget Reusability: 80%+ reuse across screens
##Git Workflow
# Commit format
git commit -m "feat: Add equalizer presets for enhanced audio experience"
git commit -m "fix: Resolve audio playback issue on Android devices"
git commit -m "refactor: Extract reusable card component"
##Build & Release
# Android APK
flutter build apk --release
# Android App Bundle
flutter build appbundle --release
# iOS Archive
flutter build ipa --release
# Web
flutter build web --release
# Desktop
flutter build macos --release
flutter build windows --release
flutter build linux --release
#๐ Analytics & Privacy
- Privacy-First: All analytics are optional and user-controlled
- Crash Reporting: Automatic error detection with user consent
- Usage Analytics: Anonymous usage patterns to improve UX
- Data Protection: No personal data stored without explicit consent
#๐ค Contributing
We welcome contributions! Please see our Project Plan for detailed development guidelines.
##Development Setup
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Follow our coding standards and commit conventions
- Ensure tests pass and coverage is maintained
- Submit a pull request with detailed description
#๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
#๐ Acknowledgments
- Flutter Team for the amazing framework
- Riverpod Community for excellent state management
- Audio Plugin Authors for robust audio solutions
- Open Source Music APIs for enabling music discovery
- Design Inspiration from modern music streaming platforms
#๐ Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Project Plan
Built with โค๏ธ using Flutter
โญ Star this repo if you find it helpful!