Coder Social home page Coder Social logo

amiibo's Introduction

Información general

La aplicación Amiibo es una aplicación que permite explorar y guardar información sobre los amiibo, figuras coleccionables utilizadas en los juegos de Nintendo usando el api AmiiboAPI. Con esta aplicación, puedes ver una lista de amiibo, filtrar por el tipo de amiibo que te gusta, ver detalles de cada amiibo y guardar tus amiibo favoritos para acceder a ellos fácilmente más adelante.

Requerimientos

  • API AmiiboAPI.
  • Al abrir la aplicación se mostraras dos sesiones: Listados, Favoritos.
  • Se mostrara un listado de amiibo en la sesión de Listados en el caso de que tengas internet.
  • La aplicacion permitira filtrar los amiibo por sus tipos y ordenarlos alfabeticamente en el caso de que tengas internet.
  • Permitir guardar un amiibo favorito en la sesión de Favoritos.
  • Se mostrara un listado de amiibo favoritos en la sesión de Favoritos. En el caso de que no tengas internet se mostrara de igual manera la información.
  • Accede a información detallada sobre un amiibo, como su nombre, serie, fecha de lanzamiento, personaje, imagen.

Funcionalidades

Puedes hacer lo siguiente en la aplicación

Lista de amiibo

La aplicación te muestra una lista de amiibo.

Gestionar la información localmente

La aplicación permitira guardar tu amiibo favorito.

Lista de amiibo favoritos

La aplicación te muestra una lista de amiibo favoritos.

Filtrar los amiibo por su tipo y ordenarlos alfabeticamente

La aplicación te permite filtrar los amiibos por su tipo y ordenalos de manera alfabetica.

Información detallada de un amiibo

La aplicación te muestra nombre, serie, fecha de lanzamiento, personaje, imagen.

Arquitectura

La aplicación Amiibo sigue una arquitectura basada en Clean Architecture (Arquitectura Limpia) con el patrón de arquitectura MVVM (Modelo-Vista-ViewModel). Esta combinación de arquitecturas promueve la separación de responsabilidades y la escalabilidad del código, al tiempo que proporciona un flujo de datos reactivo para la capa de presentación.

Estructura del proyecto

Se identifican 3 módulos

  • Presentation (Amiibo) - Utiliza el patrón MVVM para gestionar la interfaz de usuario. La vista se encarga de mostrar los elementos visuales al usuario y recoger sus interacciones. El ViewModel actúa como intermediario entre la vista y el modelo de datos, procesando las solicitudes del usuario, realizando llamadas a los casos de uso del dominio y actualizando la vista con los resultados.
  • Domain - Engloba la lógica central de la aplicación. Contiene los casos de uso, que representan las operaciones y acciones que la aplicación puede realizar. Esta capa no depende de detalles de implementación y se centra en las reglas de negocio.
  • Infrastructure - Se encarga de interactuar con las fuentes de datos externas, como bases de datos o servicios web. Aquí se encuentran los repositorios, que abstraen el acceso a los datos y proporcionan una interfaz para realizar operaciones de lectura y escritura.

Construido con

Alomofire - Cliente HTTP

Se utilizó Alomofire para el consumo de servicios Rest, ya que facilita este trabajo en aplicaciones iOS y es desarrollada por la comunidad open source. Se agrego un Timeout en cliente Http de 60 segundos. Esto puede cambiar según la necesidad de proyecto.

CoreData - Persistencia de datos

Para la base de datos se usó CoreData ya que es una biblioteca de persistencias propia de apple, que abstrae los detalles de la asignación de sus objetos, lo que facilita administrar (guardar, leer y eliminar) datos de Swift y Objective-C. Permite zincronizar datos en varios dispositivos en una sola cuenta de iCloud.

Swinject - Inyección de dependencias

Para realizar la inyección de dependencias se usó la librería Injectable la cual proporciona una forma de usar la inyección de dependencias. Swinject funciona con el sistema de tipos genéricos Swift y funciones de primera clase para definir las dependencias de su aplicación de manera simple y fluida.

Storyboard - Para creacion de las vistas

Utilizado para el diseño de la interfaz de usuario utilizando la representación visual de las pantallas y la gestión de las transiciones entre ellas..

Combine - Reactividad

Combine es un marco para escribir código reactivo, es una libria propia de apple. El marco Combine proporciona una API Swift declarativa, permitiendo trabajar con eventos asíncronos de forma más simplificada.

Swift Package Manager - Gestor de dependencias

Herramienta de gestión de dependencias incorporada en Xcode para la administración de paquetes y la inclusión de bibliotecas externas en el proyecto.

Version

Version name : 1.0

Recomendaciones

  • El emulador no muestra los teclados del dispositivo, asi que deben escribir mediante el teclado del computador y presionar enter para poder filtrar los amiibos.

amiibo's People

Contributors

cristiananaya avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.