Skip to content

About

App Reproductor de Musica

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

🎵 Android Music Player

Un reproductor de música moderno para Android construido con Kotlin y Jetpack Compose. Diseñado con una interfaz oscura e intuitiva que permite organizar, reproducir y gestionar toda la música almacenada en el dispositivo.


Capturas de pantalla

Reproductor     Biblioteca     Playlists


Características

Reproducción

  • Servicio de reproducción en segundo plano con notificación de media
  • Controles completos: play/pause, anterior/siguiente, seekbar
  • Modos shuffle y repeat (desactivado / todos / uno)
  • Mini player persistente en la parte inferior de la app
  • Pantalla de reproductor con carátula del álbum

Biblioteca

  • Escaneo automático de todos los archivos de audio del dispositivo vía MediaStore
  • Organización por Canciones, Álbumes, Artistas y Géneros
  • Búsqueda en tiempo real por título, artista o álbum

Playlists automáticas

Playlist Descripción
❤️ Favoritos Canciones marcadas como favoritas
🕐 Recientes Últimas 50 canciones reproducidas
🔥 Más tocadas Las 50 canciones con más reproducciones
✨ Nuevas Canciones agregadas en los últimos 30 días

Playlists manuales

  • Crear, renombrar y eliminar playlists
  • Agregar o quitar canciones con buscador integrado
  • Cover con mosaico automático de 4 álbumes
  • Reproducir en orden o en aleatorio

Edición de metadatos

  • Editar directamente desde la app: título, artista, álbum, género, año y número de pista
  • Escribe los cambios en los ID3 tags reales del archivo de audio
  • Compatible con Android 8 a 14+

Stack tecnológico

Categoría Tecnología
Lenguaje Kotlin 2.0
UI Jetpack Compose + Material Design 3
Reproducción Media3 / ExoPlayer
Base de datos Room
Inyección de dependencias Hilt
Navegación Navigation Compose
Imágenes Coil
Metadatos de audio JAudioTagger
Arquitectura MVVM + Clean Architecture

Requisitos para compilar

  • Android Studio Koala (2024.1) o superior
  • JDK 17 (incluido en Android Studio)
  • Android SDK con API 26 a 35 instaladas
  • Gradle 8.6

Instalación

Opción A — Descargar el APK directamente

Descarga el APK más reciente desde la sección Releases e instálalo en tu dispositivo Android (requiere activar Instalar desde fuentes desconocidas en ajustes).

Opción B — Compilar desde el código fuente

# 1. Clonar el repositorio
git clone https://github.com/AngelOcampo/android_music_app.git
cd android_music_app

# 2. Compilar el APK debug
./gradlew assembleDebug

# El APK se genera en:
# app/build/outputs/apk/debug/app-debug.apk

Nota: La primera compilación descarga todas las dependencias (~500 MB). Asegúrate de tener conexión a internet.

Instalar en dispositivo vía ADB

adb install app/build/outputs/apk/debug/app-debug.apk

Estructura del proyecto

app/src/main/java/com/angelocampo/reproductor/
├── data/
│   ├── database/       # Room DAOs y base de datos
│   ├── model/          # Entidades (Song, Playlist, ...)
│   └── repository/     # MusicRepository
├── di/                 # Módulos Hilt
├── service/            # MusicService (reproducción en background)
├── ui/
│   ├── components/     # Componentes reutilizables
│   ├── navigation/     # NavHost y rutas
│   ├── screens/        # Pantallas (Home, Library, Player, ...)
│   ├── theme/          # Colores, tipografía y tema
│   └── viewmodel/      # MusicViewModel
└── utils/              # MediaStoreHelper, MetadataEditorHelper, ...

Permisos necesarios

Permiso Motivo
READ_MEDIA_AUDIO Acceder a archivos de audio (Android 13+)
READ_EXTERNAL_STORAGE Acceder a archivos de audio (Android 12 y anteriores)
WRITE_EXTERNAL_STORAGE Editar metadatos de archivos (Android 9 y anteriores)
FOREGROUND_SERVICE Mantener la reproducción activa en segundo plano

Cómo fue creado

Este proyecto fue desarrollado íntegramente con Claude Code, el agente de programación de Anthropic, utilizando el modelo Claude Sonnet 4.6.

El proceso de desarrollo fue conversacional: desde la arquitectura inicial hasta cada corrección de bugs y nuevas funcionalidades, todo fue generado, compilado y verificado en tiempo real a través de Claude Code sin abrir un editor de texto manualmente.

Flujo de desarrollo:

  1. Diseño de la arquitectura MVVM y modelo de datos
  2. Generación del proyecto Android con todos sus archivos de configuración de Gradle
  3. Implementación de capas: datos → repositorio → ViewModel → UI
  4. Integración de Media3 para reproducción en background
  5. Implementación de playlists automáticas y manuales con Room
  6. Adición de edición de metadatos con JAudioTagger
  7. Corrección de bugs iterativa basada en capturas de pantalla del dispositivo real
  8. Compilación del APK final desde terminal usando el JDK embebido de Android Studio

Compatibilidad

  • Mínimo: Android 8.0 (API 26)
  • Objetivo: Android 15 (API 35)
  • Formatos de audio soportados: MP3, M4A, AAC, OGG, FLAC, WAV y cualquier formato compatible con ExoPlayer

Licencia

Este proyecto es de uso libre para fines personales y educativos.

About

App Reproductor de Musica

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages