GithubHelp home page GithubHelp logo

marvel-character's Introduction

Marvel Characters

Description

This project is based on two screens. The first one will show a list of characters from Marvel provided by Marvel API. This list also has pagination to load more characters while scrolling down. Also has a filter to get a specific character. Tapping on one character will show you the second screen that contains more detail about the character.

Architecture

The project is based on the VIPER architecture pattern. I choose this pattern for scalability. That means that It would be easier and more comfortable to continue with the flow about Characters and even if you want to add another module, like stories or comics. The project is divided by Scenes. Each Scene contains a full view and the full components for a VIPER architecture

The Router is the one that initializes and synchronizes all of the VIPER components with each other.

The Presenter is the component that manages all the traffic between components (View, Router, Interactor) and prepares the view logic

And the Interactor prepares the entities from the data that is received from, in this case, the API.

You can initialize the whole Scene by adding:

MyAwesomeRouter.createModule(from: session)

where session is the repository that needs to make API calls. This repository is created in order to avoid the common problems that have the famous Singleton pattern. In this case, I have this repository that each one would manage all the endpoints and parameters needed.

In this repository, you have to include their Router conforming to MarvelAPIRouter that contains all the management of the Request and the repository that interacts directly with the API.

If you have any doubs about how to continue this pattern, please contact to @gvizeu

marvel-character's People

Contributors

gonzalovizeutm avatar gvizeu avatar

Watchers

 avatar

Forkers

gonzalovizeutm

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.