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.