HU06 Consultar la información detallada de coleccionista - nicolasjaramillocely99/Proyecto_Ingenieria_Software_Aplicaciones_Moviles GitHub Wiki

Descripción

Como usuario visitante
Quiero ver el detalle de un coleccionista
Para conocer sus gustos musicales

Persona Asignada

Julian David Rodriguez

Prioridad

Alta


Criterios de Aceptación

  1. La pantalla de detalle debe mostrar: avatar/foto en grande, nombre del coleccionista, ubicación (país/ciudad) y una bio corta.
  2. Debe visualizarse un resumen de gustos musicales mediante chips/etiquetas (p. ej., géneros favoritos) y/o estadísticas (p. ej., "Álbumes en colección", "Artistas favoritos").
  3. Debe existir una sección de Álbumes destacados del coleccionista (mín. 1 carrusel horizontal o grid compacto) mostrando portada, título y artista.
  4. Al tocar un álbum destacado, la aplicación debe navegar a la pantalla de detalle del álbum correspondiente.
  5. La navegación a esta pantalla debe recibir el ID del coleccionista como argumento y cargar sus datos asociados.
  6. Las imágenes (avatar y portadas) deben cargarse de forma asíncrona sin bloquear la UI.
  7. Debe mostrarse un indicador de carga mientras se obtienen los datos.
  8. Si ocurre un error al cargar, debe mostrarse un mensaje de error con opción a reintentar.
  9. Si el coleccionista no tiene información de gustos o álbumes destacados, deben mostrarse estados vacíos con mensajes claros (sin errores).
  10. Debe existir un botón de retroceso (Back) para regresar al listado de coleccionistas.
  11. La barra de navegación inferior debe mantenerse visible con las opciones: Álbumes, Artistas, Coleccionistas y Mi Colección (con Coleccionistas activo).
  12. El título "Detalle del coleccionista" (o el nombre del coleccionista) debe ser visible en la parte superior de la pantalla.

Tareas de Implementación

Código Descripción de la Tarea Estimación
T06-01 Crear la ruta/vista de DetalleColeccionista y registrar en el componente de navegación (recibir collectorId) 0h 30m
T06-02 Extender el modelo Coleccionista para detalle (campos extra: lista de génerosFavoritos, artistasFavoritos, albumesDestacados [id, titulo, artista, portadaUrl]) 0h 30m
T06-03 Implementar CollectorRepository.getCollectorDetail(collectorId) con datos hardcodeados (y manejo de error/no encontrado) 0h 45m
T06-04 Implementar ViewModel/UseCase para orquestar carga, estados (Loading/Success/Empty/Error) y reintento 1h 00m
T06-05 Diseñar layout principal del detalle (header con avatar + nombre + ubicación + bio) 1h 00m
T06-06 Implementar chips/etiquetas de géneros favoritos y estadísticas 0h 45m
T06-07 Implementar lista/carrusel de Álbumes destacados con navegación al detalle de álbum 0h 45m
T06-08 Integrar carga asíncrona de imágenes con placeholders y fallback de error 0h 30m
T06-09 Estados de UI: cargando, vacíos (sin gustos / sin álbumes), error con botón Reintentar 0h 45m
T06-10 Accesibilidad: contentDescription en imágenes, tamaños táctiles mínimos, lectura por TalkBack/VoiceOver 0h 30m
T06-11 Pruebas unitarias (ViewModel/UseCase) y simulación de errores/red 1h 00m
T06-12 Pruebas de UI (navegación desde listado, back, clic en álbum destacado, estados) 1h 00m
T06-13 Optimización (memoización/diffing, lazy lists, precarga simple) 0h 30m
T06-14 Animaciones sutiles (aparición del header, transición al tocar álbum) 0h 30m

Tiempo total estimado: 10h 45m

Diseño de interfaz