Ésta app usa el patrón de arquitectura MVVM, donde se separan las funcionalidades de la vista y la lógica de diseño, básicamente con el objetivo de que no se convierta en código spaghetti y tratando de seguir un método de codificación de código limpio. En éste sentido se hizo mucho hincapié en seguir los principios básicos de SOLID y haciendo que la app sea fácilmente legible para cualquier programador conocedor del patrón de arquitectura.
Librerías que usa la app.
La app usa algunas librerías básicas para su funcionamiento, como ser retrofit2, Gson, Okhttp, room, coroutines, navigation component, androidx.
Explicando algunas librerías.
Retrofit2 , Gson y okhttp se utilizan para obtener y procesar los datos que provienen de la Api REST con la que se conecta.
Las coroutines se usan para toda la parte de las tareas asíncronas que necesita la app, como la consulta de los datos a la base de datos en room o la consulta a la base de datos de la api REST.
Room se utiliza para que el carrito de compras persista cada vez que se le agrega un producto. En éste caso, también se utiliza para guardar la última compra del cliente y así poder hacer una compra más rápida si siempre ordena lo mismo.
A futuro
_Por el momento la app sigue en desarrollo, la funcionalidad está bien pero es esencial mejorar en el diseño de las pantallas.