Skip to content

felnanuke2/vibra_app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

26 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽต Vibra - Modern Android Music Player

Vibra Music Player Icon

Android CI codecov Kotlin Android Jetpack Compose Architecture License

A feature-rich, modern Android music player built with cutting-edge technologies and following industry best practices. This project demonstrates advanced Android development skills including Clean Architecture, MVVM pattern, Jetpack Compose, and audio visualization.

โœจ Key Features

๐ŸŽ›๏ธ Advanced Audio Controls

  • High-quality audio playback with MediaSession integration
  • Smart playlist management with reorderable tracks
  • Intuitive media controls: Play, pause, skip, shuffle, repeat
  • Background playback with notification controls
  • Audio focus management for seamless user experience

๐ŸŽจ Modern UI/UX

  • 100% Jetpack Compose - Latest declarative UI toolkit
  • Material Design 3 components and theming
  • Responsive layouts optimized for different screen sizes
  • Smooth animations and transitions
  • Dark/Light theme support

๐Ÿ“Š Audio Visualization

  • Real-time waveform visualization using custom native libraries
  • Audio amplitude analysis with FFmpeg integration
  • Interactive audio timeline for precise navigation

๐Ÿ—๏ธ Professional Architecture

  • Clean Architecture with clear separation of concerns
  • MVVM pattern with ViewModels and StateFlow
  • Dependency Injection using Dagger Hilt
  • Repository pattern for data management
  • Use cases for business logic encapsulation

๐Ÿ› ๏ธ Technology Stack

Core Technologies

  • Kotlin - 100% Kotlin codebase
  • Jetpack Compose - Modern declarative UI
  • Material Design 3 - Latest design system
  • Coroutines & Flow - Asynchronous programming

Architecture & Patterns

  • Clean Architecture - Scalable and maintainable code structure
  • MVVM Pattern - Clear separation between UI and business logic
  • Repository Pattern - Centralized data access
  • Dependency Injection - Dagger Hilt for IoC

Media & Audio

  • MediaPlayer - Core audio playback functionality
  • MediaSession - Media controls integration
  • FFmpeg - Advanced audio processing (via custom C++ library)
  • Audio visualization - Custom waveform rendering

Development Tools

  • Android API 23+ - Wide device compatibility
  • Gradle - Modern build system
  • ProGuard - Code optimization and obfuscation

๐Ÿ“ฑ Screenshots

Music Library Now Playing Player Controls Player Controls Playlist Management

๐Ÿ›๏ธ Architecture Overview

๐Ÿ“ฆ vibra
โ”œโ”€โ”€ ๐ŸŽฏ core/
โ”‚   โ”œโ”€โ”€ domain/          # Business logic & entities
โ”‚   โ””โ”€โ”€ infrastructure/ # Data sources & repositories
โ”œโ”€โ”€ ๐ŸŽจ screens/          # Compose UI screens
โ”œโ”€โ”€ ๐Ÿงฉ components/       # Reusable UI components
โ”œโ”€โ”€ ๐Ÿ“ฑ activities/       # Android activities
โ”œโ”€โ”€ ๐Ÿ”„ view_models/      # MVVM ViewModels
โ””โ”€โ”€ ๐Ÿ’‰ di/              # Dependency injection modules

Clean Architecture Layers

  1. Domain Layer: Contains business entities, use cases, and repository interfaces
  2. Data Layer: Implements repositories, data sources, and handles data mapping
  3. Presentation Layer: UI components, ViewModels, and Android-specific code

๐Ÿš€ Technical Highlights

Performance Optimizations

  • Lazy loading of music library for improved startup time
  • Efficient memory management with proper lifecycle handling
  • Background processing for audio analysis and metadata extraction
  • Optimized list rendering with Compose's LazyColumn

Audio Processing

  • Custom C++ native library for high-performance audio analysis
  • FFmpeg integration for advanced audio format support
  • Real-time waveform generation and visualization
  • Audio amplitude detection for dynamic UI elements

User Experience

  • Seamless background playback with proper service implementation
  • System integration with media notification controls
  • Responsive design adapting to different screen orientations
  • Accessibility support following Android guidelines

CI/CD & Quality Assurance

  • Automated testing with comprehensive unit and integration tests
  • Test coverage reporting with JaCoCo and Codecov integration
  • Continuous Integration using GitHub Actions for automated builds
  • Code quality analysis with static analysis tools
  • Automated APK generation for releases
  • Dependency vulnerability scanning

๐Ÿงช Testing & Coverage

This project maintains high code quality with comprehensive testing:

  • Unit Tests: Core business logic and utilities
  • Integration Tests: Service and repository layer testing
  • Instrumented Tests: Android-specific component testing
  • Test Coverage: Automated coverage reporting with badges
  • Quality Gates: Automated checks for code quality and coverage thresholds

Running Tests Locally

# Run all tests with coverage
./scripts/run_tests.sh

# Run unit tests only
./gradlew testDebugUnitTest

# Run instrumented tests
./gradlew connectedAndroidTest

# Generate coverage report
./gradlew jacocoTestReport

๐Ÿ”ง Installation & Setup

  1. Clone the repository

    git clone https://github.com/felnanuke2/vibra_app.git
  2. Open in Android Studio

    • Import the project in Android Studio Arctic Fox or later
    • Sync Gradle dependencies
  3. Build and Run

    • Connect an Android device or start an emulator
    • Run the app (Minimum SDK: API 23)

๐Ÿ“‹ Permissions Required

  • READ_EXTERNAL_STORAGE - Access music files on device
  • READ_MEDIA_AUDIO - Android 13+ audio file access
  • INTERNET - For potential online features
  • POST_NOTIFICATIONS - Media playback notifications

๐Ÿš€ CI/CD & Quality Assurance

Continuous Integration

Our CI pipeline ensures code quality and reliability:

  • ๐Ÿ”„ Automated Testing: Unit tests run on every push and PR
  • ๐Ÿ“Š Test Coverage: JaCoCo generates detailed coverage reports
  • ๐Ÿ” Code Quality: Lint checks and static analysis
  • ๐Ÿ“ฑ Build Verification: Debug and release APK generation
  • ๐Ÿ”’ Security Scanning: Dependency vulnerability checks

Code Coverage

codecov

Current test coverage metrics:

  • Overall Coverage: Maintained above 40%
  • New Code Coverage: Target of 60% for new changes
  • Coverage Reports: Available in PR comments
  • Trending: Coverage trend tracking over time

Testing Strategy

// Example test structure
@Test
fun `playNext should call nextTrack when canPlayNext is true`() {
    // Given
    every { canPlayNext.value } returns true
    
    // When
    trackPlayerServices.playNext()
    
    // Then
    verify { queueManager.nextTrack() }
}

Running Tests Locally

# Run unit tests
./gradlew testDebugUnitTest

# Generate coverage report
./gradlew jacocoTestReport

# View coverage report
open mymusicapp/build/reports/jacoco/jacocoTestReport/html/index.html

๐ŸŽฏ Professional Development Showcase

This project demonstrates:

  • โœ… Modern Android Development - Latest tools and practices
  • โœ… Clean Code Principles - SOLID principles and clean architecture
  • โœ… Performance Optimization - Efficient audio processing and UI rendering
  • โœ… User-Centered Design - Intuitive and accessible interface
  • โœ… Production-Ready Code - Proper error handling and edge cases
  • โœ… Cross-Platform Skills - Native Android with C++ integration

๐Ÿ”ฎ Future Enhancements

  • ๐ŸŒ Online streaming integration
  • ๐ŸŽต Lyrics display and synchronization
  • ๐Ÿ“Š Advanced audio effects and equalizer
  • โ˜๏ธ Cloud sync for playlists and preferences
  • ๐Ÿค– Machine learning for music recommendations

๐Ÿ“„ License

This project is part of a professional portfolio showcasing Android development expertise.


Built with โค๏ธ using modern Android development practices
Music App he app allows users to browse their local music library and play songs. The main screen of the app displays a list of all the songs available in the device's local storage. Users can select a song from the list to play it.

The app also features basic music playback controls such as play, pause, skip forward, and skip backward. Additionally, there is a shuffle and repeat button that allows users to toggle between these modes.

The repository contains the source code for the app, including the UI layout files, the code for handling music playback, and the logic for fetching and displaying the list of available songs.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages