ProductsMeLi
Fetch data from MeLi API
Funcionalidades técnicas de la aplicación:
- Desarrollada en Swift 5.
- Las vistas están desarolladas programáticamente.
- Se utilizó la arquitectura MVVM extendida.
- Comportamiento reactivo.
- No se utilizan librerías de terceros.
- Se utiliza una capa genérica y extensible con URLSession para hacer el llamado de los servicios.
- Se utiliza Codable para el mapeo de JSON a objetos.
- Los enlaces de las capas se implementan con cierres.
Arquitectura:
Se implementó MVVM como arquitectura, con las siguientes capas:
- Model: Contiene las entidades.
- View: Contiene las vistas y la lógica de vista.
- ViewModel: Contiene los casos de uso (acciones de la aplicación y lógica de negocios)
- Manager: Se encarga de la obtención de los datos.
- Router: Se encarga de la navegación entre controladores.
- Factory: Utilizado para la construcción de objetos complejos.
Funcionalidades generales:
- La pantalla principal tiene una barra de búsqueda que al recibir datos por parte del usuario llama al servicio automáticamente.
- La pantalla principal muestra un listado de productos obtenidos de la API de Mercado Libre.
- Cuando se selecciona un producto se direcciona al detalle de este.
- La pantalla del detalle cuenta con un botón que dirige a una web view con el sitio web del producto en Mercado Libre.
- Hay un activity indicator que se muestra cuando se está realizando una petición al servicio web
- Hay una alerta que se muestra cuando en el proceso de obtención de datos ocurre un error