-
Notifications
You must be signed in to change notification settings - Fork 1
Sprint 2 Review
Durante el Sprint 2 de la aplicación Vinilos, el equipo se centró en implementar tres historias de usuario críticas para el sistema, relacionadas con la gestión de artistas y la navegación general del menú. Además, el equipo abordó la optimización del rendimiento, corrigiendo cuellos de botella en la carga de datos y aplicando técnicas modernas para evitar errores ANR. Este informe detalla la implementación de estas historias de usuario, las estrategias de perfilamiento, microoptimización y las pruebas realizadas.
-
Historia de Usuario 03: Consultar el listado de artistas
- Proveer un listado de artistas con desplazamiento fluido.
- Mejorar la eficiencia de la carga usando caché local.
-
Historia de Usuario 04: Consultar la información detallada de un artista
- Presentar información detallada de un artista, incluyendo biografía y discografía.
- Permitir la navegación entre artistas relacionados de forma optimizada.
-
Historia de Usuario 07: Gestionar Menú
- Habilitar la navegación fluida desde el menú principal hacia otras actividades.
- Centralizar la funcionalidad común para las actividades dentro de una base compartida.
Para mantener el código modular y escalable, se utilizó el patrón Model-View-ViewModel (MVVM):
-
Modelos:
Performer,Albumy otros modelos definieron la estructura de datos. -
ViewModel:
PerformerViewModelyAlbumViewModelmanejan la lógica de datos y proporcionan observables. -
Vistas:
PerformerActivityyAlbumActivityrepresentan las interfaces con el usuario.
-
PerformerViewAdapter: Un adaptador especializado para poblar el
RecyclerViewcon artistas. La implementación del patrónViewHoldermejoró significativamente el rendimiento durante el desplazamiento. -
PerformerListener: Un patrón de escucha para capturar los eventos de selección y navegar a
PerformerDetailActivity. - PerformerRepository: Gestiona la obtención y almacenamiento en caché de los datos para reducir la dependencia de la red.
La clase abstracta VinilosActivityBase centraliza el menú para navegar hacia las actividades de álbumes y artistas, y gestiona los errores mediante un método showError.
Para mantener el rendimiento de la aplicación y mejorar la experiencia del usuario:
- Estrategias de Caché: Utilizamos almacenamiento local siguiendo este tutorial para reducir las llamadas a la red.
- Uso de Glide y Picasso: Herramientas para cargar imágenes eficientemente.
- Patrón ViewHolder: Minimiza la creación de vistas durante el desplazamiento.
- Profiling: Siguiendo este tutorial, se identificaron problemas como consultas ineficientes en la base de datos y procesos que bloqueaban el hilo principal.
Para evitar errores ANR, el equipo implementó las siguientes técnicas:
-
Co-rutinas de Kotlin: Delegando procesos pesados al hilo IO con
Dispatchers.IO. - Estrategias de Caching: La implementación de estructuras de caché permitió evitar llamadas duplicadas a la red, agilizando el rendimiento de las vistas.
- Firebase Test Lab: Opcionalmente, se evaluó la estabilidad de la aplicación en diferentes dispositivos.
- Reporte de Analisis de desempeño y Reporte de Perfilamiento de Aplicación - Android Profiler - Performance
- Reporte de Microoptimizaciones
- Reporte de Uso hilos/Co-rutinas - ANRs
- HU03: El listado de artistas se despliega de manera eficiente, sin bloqueos ni demoras.
- HU04: Los detalles del artista muestran información completa, con navegación entre elementos relacionados.
- HU07: El menú permite una navegación coherente entre las actividades.
- Archivo APK listo para instalar
- Release Sprint 2
- Video - Demostración Sprint 2
- Video de Ejecución de Pruebas E2E
- Sprint 2 Review - Video Reunión
El Sprint 2 proporcionó una base sólida para la aplicación Vinilos, alcanzando un rendimiento óptimo y minimizando errores ANR. Las microoptimizaciones y técnicas de perfilamiento fueron clave para lograr la fluidez en la experiencia de usuario. Continuaremos refinando estos procesos en sprints futuros.