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: Arquitectura-Clases drawio

Diagramas de paquetes

Se propone una arquitectura por capas siguiendo el patrón MVVM, como se muestra en el siguiente diagrama:

Arquitectura drawio

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

Arquitectura-Componentes drawio

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.

image

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