HU02: Consultar la información detallada de un álbum - nicolasjaramillocely99/Proyecto_Ingenieria_Software_Aplicaciones_Moviles GitHub Wiki
Descripción
Como usuario visitante
Quiero ver el detalle de un álbum
Para ampliar la información sobre él
Persona Asignada
Nicolas Javier Jaramillo Cely
Prioridad
Alta
Criterios de Aceptación
- La pantalla debe mostrar la portada del álbum en tamaño grande en la parte superior.
- Debajo de la portada debe mostrarse el título del álbum, nombre del artista, año de lanzamiento y género musical.
- La pantalla debe mostrar una descripción o reseña del álbum con información relevante (reproducciones, contexto histórico, etc.).
- Debe existir una sección "Canciones" que liste todas las canciones del álbum con su número de pista, título y duración.
- Al tocar una canción de la lista, esta debe resaltarse visualmente con un fondo de color diferente (morado/púrpura).
- La pantalla debe incluir un botón de retroceso en la esquina superior izquierda que navegue de regreso al catálogo de álbumes.
- Junto al título "Canciones" debe existir un botón "+" para agregar canciones.
- La barra de navegación inferior debe permanecer visible en esta pantalla.
- El contenido debe ser scrolleable verticalmente para visualizar toda la información y la lista completa de canciones.
- En la parte superior debe mostrarse el título "Detalles del Álbum".
- La aplicación debe mostrar un indicador de carga mientras se obtienen los detalles del álbum.
- Si ocurre un error al cargar los datos, debe mostrarse un mensaje de error apropiado.
Tareas de Implementación
| Código | Descripción de la Tarea | Estimación |
|---|---|---|
| T02-01 | Crear data classes AlbumDetalle (con información extendida) y Cancion (numero, titulo, duracion, seleccionada) |
0h 20m |
| T02-02 | Actualizar el repositorio agregando función getAlbumDetalle(albumId: String) con datos mock |
0h 30m |
| T02-03 | Diseñar el layout del item de canción con número, título, duración y selector de estados | 0h 30m |
| T02-04 | Diseñar el header del álbum para portada y texto para información | 0h 45m |
| T02-05 | Diseñar el layout principal | 1h 30m |
| T02-06 | Crear el modelo de la vista para detalle del álbum, lista de canciones y función de selección | 1h 00m |
| T02-07 | Implementar carga de datos observando la carga de datos en el modelo y actualizando UI con información del álbum | 0h 45m |
| T02-08 | Implementar funcionalidad de selección de canciones manejando clics y actualizando estado visual | 0h 45m |
| T02-09 | Configurar navegación de retroceso a vista de listar álbumes | 0h 15m |
| T02-10 | Actualizar el componente de navegacion con transiciones | 0h 30m |
| T02-11 | Implementar paso de datos desde HU01 enviando albumId y validando recepción en detalle de album | 0h 30m |
| T02-12 | Implementar estados de carga y manejo de errores en la UI | 0h 45m |
| T02-13 | Crear selector para estados de canciones (normal y seleccionado con fondo morado) | 0h 30m |
| T02-14 | Realizar pruebas unitarias de la vista del modelo para carga de datos y selección de canciones | 1h 00m |
| T02-15 | Realizar pruebas de UI (scroll completo, selección de canciones, navegación) y verificar criterios de aceptación | 1h 00m |
| T02-16 | Optimizar rendimiento del scroll verificando renderizado fluido con múltiples canciones | 0h 30m |
| T02-17 | Aplicar animaciones y transiciones al seleccionar canciones y al entrar/salir de la pantalla | 0h 45m |
| T02-18 | Implementar funcionalidad del botón "+" para agregar canciones (diálogo o acción correspondiente) | 1h 00m |
Tiempo total estimado: 12h 50m