Este desafío tiene como objetivo evaluar tu capacidad para construir una aplicación móvil de administración de películas utilizando Flutter y consumiendo una API externa. Tendrás una semana para completar el desafío, por lo que tómate el tiempo que necesites para entregar una solución de la que te sientas orgulloso. Requerimientos Se solicita crear una aplicación en Flutter que satisfaga el siguiente caso de uso: Como usuario en un video club, necesito poder iniciar sesión en la herramienta de administración a fin de ver las películas disponibles y los respectivos atributos de las mismas (premios, categoría, actores, ranking, etc.)
Las tres pantallas a construir son:
- Pantalla de inicio de sesión.
- Pantalla de listado de películas.
- Pantalla de detalle de una película.
- Pantalla de películas favoritas
Las pantallas deben tener un diseño intuitivo y atractivo que permita a los usuarios navegar fácilmente por la aplicación. El diseño debe ser responsive y debe tener en cuenta la accesibilidad para personas con discapacidades visuales. Se valorará el uso de widgets personalizados y animaciones que mejoren la experiencia de usuario. API (https://www.themoviedb.org o https://www.omdbapi.com) Se solicita interactuar con la API proporcionada para:
- Obtener el listado de películas.
- Obtener el detalle de una película.
- Buscar por titulo de película, categoría, actores, año de lanzamiento. La autenticación (con e-mail y password) puede ser dummy (dejar acceder sin hacer petición a ningún backend). Aunque una API/Backend dummy de login suma puntos extras.
Se espera que la solución cumpla con los siguientes requisitos:
- Implementación correcta de Flutter.
- Utilización de widgets reutilizables.
- Readme.md con al menos documentación necesaria sobre cómo instalar y ejecutar la aplicación.
- Código en repositorio personal público en Github/GitLab/Bitbucket.
- Código auto explicativo, siguiendo las buenas prácticas del lenguaje y demostrando modularidad, entendibilidad, cambiabilidad, testeabilidad y reusabilidad.
Estos son algunos requisitos opcionales que se valorarán:
- Uso de BLoC o Provider para la gestión del estado de la aplicación.
- Funcionalidad CRUD de películas.
- Uso de un linter.
- Implementación de pruebas unitarias e integración.
- Entregar la aplicación de forma dockerizada. Criterios de evaluación La evaluación se basará en los siguientes criterios:
- Cumplimiento de los requerimientos.
- Diseño y experiencia de usuario.
- Calidad del código.
- Uso de patrones de diseño.
- Pruebas unitarias e integración.
- Documentación del código.
La solución debe entregarse en un repositorio personal público en Github/GitLab/Bitbucket antes de la fecha límite establecida. El Readme.md debe contener instrucciones claras sobre cómo instalar y ejecutar la aplicación.