Skip to content

Project for Android using MVVM architecture connecting with Marvel Open API

Notifications You must be signed in to change notification settings

grillo87/MarvelAPI-Android

Repository files navigation

Marvel API

Marvel API developed by José Grillo for Android

This is a an app developed using Kotlin for Android.It uses Model View ViewModel (MVVM) as architectural pattern.
The project is structured in 4 modules:

  • App: Module in charge of view displaying elements (Activities and ViewModels), it also has it owns entities, ending with the sufix VO, and mapper to transform the data from underneath layer (Domain)
  • DI: This modules is used for the app layer to initialize the dependencies for the Data layer, but it encapsulates it, so the classes and element for Data Layer are not accesible for classes on app layer.
  • Domain: Module in charge of bussiness logic, this one operates with the differents UseCases. It also contains the entities that hold the logic on the project, and the definition for the Repository
  • Data: Module in charge of data sources access (Locally and remotly). It follow the pattern of Datasource, making transaprent for Repositories classes the origin of the data. It has one table to store the id from the character that user add/remove pressing on Spiderman Button on detail view. It also have Paging3 Google's Library, to paginate the results from the Marvel API in groups of 20.Important, for the app be able to comunicate with Marvel API, you must update inside the gradle file on Data module the values of MARVEL_PRIVATE_API_KEY and MARVEL_PUBLIC_API_KEY values as described on Marvel documentation

For the web service area, it was integrated with Marvel API, this API is consumed with Retrofit2 and using Kotlin Coroutines.

Also the app includes dependency injections being used Koin for that part.

The app implements pagination with the implementation of recomended Google Library Paging3

The project includes Unit Testing for mappers, usecase, repository and UI

The information displayed of the characters comes from the mentionated API.

The app uses the following libraries:

Screenshots

Home Detail Character (No favorite selected) Detail Character (Favorite selected) Error message while scrolling Error message on Main and Detail at open

About

Project for Android using MVVM architecture connecting with Marvel Open API

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages