Arquitectura - NeiderFajardoUdeA/mobile_app_vinyls-Grupo_4 GitHub Wiki
Arquitectura de la aplicación
Diagrama de clases
Diagrama de paquetes
Se propone una arquitectura por capas siguiendo el patrón MVVM, como se muestra en el siguiente diagrama:
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
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 |
---|---|---|
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 |