DuBEAT is a modern Android music streaming application that provides access to thousands of royalty-free songs. Built with Clean Architecture principles and modern Android development practices, the app offers a seamless music discovery and streaming experience.
- Music Discovery: Explore and search through an extensive catalog of royalty-free music
- Smart Recommendations: Personalized song recommendations based on user preferences
- Offline Listening: Download songs for offline playback
- Background Playback: Continue listening while using other apps
- Firebase Authentication: Secure user authentication with Google Sign-In
- Intuitive Navigation: Bottom navigation with dedicated sections for discovery, downloads, notifications, and settings
- Material Design: Modern UI following Material Design guidelines
- Clean Architecture: Separation of concerns with distinct layers
- MVVM Pattern: Model-View-ViewModel for UI components
- Repository Pattern: Centralized data access management
- Dependency Injection: Dagger 2 for modular and testable code
- Local Database: Room for efficient local data storage
- Network Layer: Volley for HTTP requests and file downloads
- Image Loading: Picasso for optimized image handling
- Navigation: Navigation Component for fragment-based navigation
- API: AWS Lambda serverless backend
- Endpoint:
https://560zo4tew9.execute-api.us-east-1.amazonaws.com/prod - Authentication: Firebase Auth integration
- Target SDK: Android API 30 (Android 11)
- Minimum SDK: Android API 27 (Android 8.1)
- Package:
club.codeexpert.music - Audio Format: WAV files for high-quality playback
- Architecture: Clean Architecture with MVVM
- Android Studio Arctic Fox or later
- JDK 8 or later
- Android SDK API 30
# Clone the repository
git clone https://github.com/jluispcardenas/androidmusic.git
# Navigate to project directory
cd androidmusic
# Build debug APK
./gradlew assembleDebug
# Install on connected device
./gradlew installDebug# Run unit tests
./gradlew test
# Run instrumentation tests
./gradlew connectedAndroidTestsrc/main/java/club/codeexpert/music/
├── activities/ # Activity classes
├── data/ # Data layer (Repository, Database)
│ └── db/ # Room database entities and DAOs
├── managers/ # Business logic managers
├── services/ # Background services
└── ui/ # UI components and ViewModels
├── about/
├── discover/
├── downloads/
└── notifications/
This project welcomes contributions! Please follow these guidelines:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is available for collaboration and learning purposes. Please ensure compliance with music licensing when using the streaming functionality.
Built with ❤️ using Android and Clean Architecture
