Sprint I - NeiderFajardoUdeA/mobile_app_vinyls-Grupo_4 GitHub Wiki
Arquitectura de la aplicación
Modelo de Datos
Acá se presenta el diagrama de datos:
Diagramas de paquetes
Se propone una arquitectura por capas siguiendo el patrón MVVM, como se muestra en el siguiente diagrama:
Capa de Vistas
Los principales componentes de esta capa, que serán trabajados durante este sprint son:
Main Activity: Debe contener los elementos que componen la vista principal de la aplicación de acuerdo a lo planteado en el prototipo.
Activity Lista Albúm: Interfaz gráfica para mostrar un listado de álbumes al usuario. Debe tener componentes reutilizables para poder listar diferentes tipos de elementos sin tener que repetir código común entre estos.
Activity Albúm Detalle: Interfaz gráfica para mostrar detalles de un objeto de la clase album. Debe ser adaptable dependiendo del objeto que esté mostrando.
Actividad Crear Albúm: Interfaz gráfica para crear un objeto de la clase album.
Capa Vista-Modelo
AlbumViewModel: Este componente se encarga de desacoplar la comunicación entre el modelo y la vista, permitiendo comunicar las acciones en la vista con los estados de los modelos, de esta forma, si ocurre alguna acción en la vista, el AlbumViewModel puede comunicarla al modelo para que este solamente reaccione con sus comportamientos conocidos. De igual forma, si existe algún cambio en el modelo, este es notificado a la vista por medio del ViewModel.
Capa Modelo
Modelos: Contiene las clases definidas dentro de nuestro modelo de dominio, definiendo el comportamiento y los atributos necesarios para la aplicación.
Repository: Contiene la lógica de las consultas remitidas al backend para retornar listados u objetos al viewmodel.
Service Adapter: Este componente nos ayuda a abstraer la comunicación con fuentes externas para obtener información, en este caso, con la API definida para el proyecto.
Diagrama de componentes
Implementación de la arquitectura con Android Studio
Para desarrollar la aplicación en Android Studio se seguirá la estructura base para aplicaciones compuestas de la aplicación.
Dicha estructura tiene un directorio src/main/java/com/moviles/vinilos
que fue creado para ingresar ordenadamente los componentes descritos en la arquitectura. Las carpetas son model
, ui
y viewmodel
.
Implementación de los componentes de arquitectura en las Historias de Usuario
A continuación se relacionan la funcionalidades esperadas de cada componente al finalizar cada una de las historias de usuario de acuerdo a la planeación del proyecto
Sprint 1
Componente | HU01 | HU02 |
---|---|---|
Main Activity | Contiene un botón de navegación llamado "álbumes" que navega a la vista listado | |
Activity ListAlbum | Despliega el listado de álbumes | |
Activity Album Detalle | Despliega el detalle del objeto álbum | |
Activity Album Crear | ||
Album View Model | Obtiene un arreglo de álbumes del modelo y lo remite a la vista | Realiza la consulta de objeto de tipo álbum en el modelo a partir de las interacciones del usuario con la vista, remite a la vista el objeto consultado. |
Album Model | Contiene la clase álbum | |
Album Repository | Contiene la lógica de consulta de álbumes | |
Album Service Adapter | Contiene la lógica de conexión con el backend |
Estrategia de pruebas
La estrategia de pruebas está en el siguiente documento: estrategia_pruebas.pdf
Resultados Estrategia de pruebas
Para la suite de pruebas desarrollada, el objetivo principal fue validar la funcionalidad de las historias de usuario Consultar catálogo de álbumes y Consultar información detallada de un álbum. En particular, se buscó verificar el comportamiento de los botones, la lógica de la aplicación y la correcta obtención de información desde el backend.
Para las pruebas manuales, la aplicación se desplegó localmente y se ejecutaron los escenarios completos de forma manual. En cuanto a las pruebas automatizadas, se utilizó JUnit junto con Espresso, siguiendo los patrones de diseño Page Object y la estructura Given-When-Then.
Pruebas Manuales
En el siguiente enlace se encuentran los videos de las pruebas manuales.
Pruebas Automatizadas
Para las pruebas automatizadas se presenta un video el cual muestra la ejecución de dichas pruebas desde la versión del aplicativo en desarrollo. El video se encuentra en el siguiente enlace.
Como se evidenció en los videos, tanto las pruebas manuales como las automatizadas fueron completamente exitosas. No se detectaron errores en las historias de usuario desarrolladas y todos los componentes creados funciones ya que redirigen y se comportan como lo esperado. Si bien en algunas pruebas se utilizaron tiempos de espera, estos fueron breves, lo que demuestra que la aplicación responde de manera eficiente al presentar y renderizar la información al cliente.
Archivo APK
A continuación, se adjunta el enlace para descargar el APK de la aplicación: APK