NoteRecorder es una aplicación Android desarrollada como parte de la Práctica 1 de la asignatura Programación multimedia y dispositivos móviles del grado superior de Desarrollo de Aplicaciones Multiplataforma (DAM).
El objetivo principal es crear una herramienta sencilla y funcional que permita a los usuarios grabar, gestionar y reproducir notas de voz personales, aplicando conceptos fundamentales de desarrollo Android moderno como Jetpack Compose, gestión de permisos y APIs de multimedia.
Desarrollar una aplicación que gestione notas de voz aplicando:
- Navegación fluida entre pantallas.
- Gestión de permisos en tiempo de ejecución (Runtime Permissions).
- Uso del almacenamiento interno del dispositivo para persistencia de datos.
- Implementación de grabación y reproducción multimedia.
- Gestión de estados reactivos con Jetpack Compose.
- Grabar audios: Captura de notas de voz de forma rápida.
- Reproducción: Controles para escuchar, pausar y detener las grabaciones.
- Gestión de archivos: Almacenamiento automático en el directorio interno de la aplicación.
- Listado de grabaciones: Interfaz para visualizar y acceder a las notas de voz guardadas.
La aplicación se divide en dos pantallas principales:
- Pantalla Principal (Home): Muestra el listado de audios guardados y el acceso a la creación de nuevas notas.
- Pantalla de Audio/Grabación: Contiene la interfaz de control para la grabación y el reproductor de audio.
Cada grabación se gestiona mediante una estructura lógica que incluye:
id: Identificador único.nombre: Nombre descriptivo del audio.ruta: Ubicación del archivo en el almacenamiento.fecha: Fecha y hora de creación.
Se ha implementado la solicitud del permiso de micrófono (RECORD_AUDIO) en tiempo de ejecución, controlando el flujo de la aplicación en caso de denegación por parte del usuario.
- Persistencia: Uso de
context.filesDirpara asegurar que los archivos sean privados y persistan tras el cierre de la app. - Grabador/Reproductor: Implementación lógica para manejar los diferentes estados del audio (preparado, grabando, reproduciendo, pausado).
- Lenguaje: Kotlin
- UI: Jetpack Compose
- Navegación: Compose Navigation
- Multimedia: Android Media APIs (MediaRecorder/MediaPlayer)
Proyecto realizado para el Grado Superior de DAM - Asignatura: Programación multimedia y dispositivos móviles.