Marvel SuperHeroes

Sample app reading from the official Marvel API, containing the following features:

  • A list of all possible superheroes in the Marvel Multiverse
  • Search the superheroes by their name
  • See the full detailed page of the selected superhero with its respective comics.

This app uses a package structure following clean architecture concepts:

  • data: Include Repositories, local and remote data sources
  • domain: Include the model objects and (if needed) use case classes
  • ui: Activities/Fragments/Views and ViewModels for the character/comic screens

The app uses Retrofit for accessing the Marvel API,
Room for local storage and the
Paging library for
scrolling through all the characters available in the API. Communication between layers is done
using Coroutines and Kotlin Flow.
Dependency injection is handled with Dagger Hilt.

The project includes a few unit and Espresso tests (test/ and androidTest/ using
Mockk, Barista as helper libraries.
The dependencies on the Espresso tests are replaced using Hilt.

Demo

GitHub

View Github