Arquitectura - NeiderFajardoUdeA/mobile_app_vinyls-Grupo_4 GitHub Wiki

Arquitectura de la aplicación

Diagrama de clases

Arquitectura-Clases drawio

Diagrama de paquetes

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

Arquitectura-Paquetes drawio

Capa de Vistas

Esta capa incluye los componentes descritos a continuación:

Home: Debe contener los elementos que componen la vista principal de la aplicación de acuerdo a lo planteado en el prototipo.

Actividad 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.

Actividad 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
Home Contiene un botón de navegación llamado "álbumes" que navega a la vista listado
Vista Listado Despliega el listado de álbumes
Vista Detalle Despliega el detalle del objeto álbum
Vista Crear
Listado VM Obtiene un arreglo de álbumes del modelo y lo remite a la vista
Detalle VM
Crear VM
Modelos Contiene la clase álbum
Repositorio Contiene la lógica de consulta de álbumes
Service Adapter Contiene la lógica de conexión con el backend

Sprint 2

Componente HU01 HU02 HU03 HU04 HU05 HU06 HU07 HU08
Home
Vista Listado
Vista Detalle
Vista Crear
Listado VM
Detalle VM
Crear VM
Modelos
Repositorio
Service Adapter

Sprint 3

Componente HU01 HU02 HU03 HU04 HU05 HU06 HU07 HU08
Home
Vista Listado
Vista Detalle
Vista Crear
Listado VM
Detalle VM
Crear VM
Modelos
Repositorio
Service Adapter