Herois da Marvel é baseado em uma arquitetura moderna usando a plataforma android e como padrão de desenvolvimento MVVM.
- Minimum SDK level 21
- Kotlin based + Coroutines for asynchronous.
- JetPack
- Lifecycle - dispose of observing data when lifecycle state changes.
- ViewModel - UI related data holder, lifecycle aware.å
- Room Persistence - construct a database using the abstract layer.
- Architecture
- MVVM Architecture (View - DataBinding - ViewModel - Model)
- Repository pattern
- Koin - dependency injection.
- Retrofit2 & Gson - construct the REST APIs.
- OkHttp3 - implementing interceptor, logging and mocking web server.
- Sandwich - construct lightweight http API response and handling error responses.
- Glide - loading images.
- TransformationLayout - implementing transformation motion animations.
- WhatIf - checking nullable object and empty collections more fluently.
- AndroidVeil - easy way to implement veil skeletons and shimmering effect.
- DiscreteScrollView - implementing a scrollable list of items.
- Timber - logging.
- Material-Components - Material design components like ripple animation, cardView.
Unit Tests verify the interactions of viewmodels between repositories and dao & REST api requests.
- Robolectric - Robolectric is the industry-standard unit testing framework for Android.
- Mockito-Kotlin - a small library that provides helper functions to work with Mockito in Kotlin.
MarvelHeroes is based on MVVM architecture and a repository pattern.