Esta es una prueba para Instaleap que consta de un listado de Películas y series con 3 categorías cada una.
A continuación se dan especificaciones más técnicas del proyecto
Asegurate de agregar la ubicación del SDK de Android dentro del local.properties
sdk.dir=PATH_ANDROID
Este proyecto fue escrito puramente con Jetpack Compose :), este es el nuevo framework declarativo para crear Ui, y de ahora en adelante el que tiene la responsabilidad de convertirse en la opción predeterminada para este propósito.
En el proyecto se desarrolla Clean Architecture por su mecanismo para garantizar una alta cohesión y un bajo acoplamiento,
médiente su sistema de capas podemos garantizar una gran separación de responsabilidades donde como eje central tenemos la
capa de Domain la cual hace referencia a las especificaciones de negocio, podemos encontrar la capa de Data donde
agrupamos todos los componentes asociados a los diferentes Datasources como lo son los mappers, dtos, repositorios, etc. y como última gran capa tenemos la *Ui donde encontramos todos los objetos relacionados a la misma
Se utiliza DI para poder obtener ciertas ventajas sobre la arquitectura como la facilidad y la garantia de aplicar Inversión de dependencias y así poder separar una capa de otro, por ejemplo con la Inversión de dependencias evitamos que nuestra capa de Dominio tenga referencias a la capa de datos. Otra de las grandes ventajas con DI es poder hacer de una manera más sencilla los tests al no tener un fuerte acomplamiento de objetos concretos sobre las clases que queremos probar. Como framework de DI se usa Hilt el cual aprovecha el poder de Dagger para construir el arbol de dependencias de una manera muy eficiente y además es muy sencilla su implementación.
Se le realizan pruebas unitarias a los ViewModels, Casos de usos y Repositorios que para efectos de este proyecto es donde se concentra gran parte de la lógica.
Url base: https://api.themoviedb.org/3
Servicios:
- Listar de peliculas : GET "/movie/{popular}"
- Listar de series : GET "/tv/{popular}"
- Query "api_key" = XXXXXXXX