Welcome to TheMovie, an Android application that consumes The Movie Database to retrieve up-to-date information about movies, enabling an exploration of the cinematic world.
An Android app with modular architecture, clean architecture, SOLID principles and MVVM.
Furthermore, some libraries and frameworks such as:
- Splash screen api and container HomeActivity.
- Network connectivity interceptor for HTTP requests.
- Hilt for dependencies injection.
- Room for local storage.
- Navigation Component as app navigation framework.
- Coil for loading and caching images.
- Retrofit2 for API requests.
- Paging3 for local & remote data pagination.
- PagingSource for pagination orchestration.
- Coroutines and Flow for Reactive Functional Programming.
- StateFlow and SharedFlow for observing and updating data.
- ViewBinding for activities and fragments.
- Timber for debug logging purposes.
- Android Studio EditorConfig file to maintain consistent coding styles.
- Gradle’s Kotlin DSL.
- ktlint for static code analysis.
- LeakCanary for memory leaks detection.
- jUnit, MockK and Turbine for unit testing.
- dokka for Kotlin's documentation generation.
Clone this repository and import it into Android Studio
git clone https://github.com/JorgeDiazz/android-rappipay-tech-test.git
Herein you can find multiple targets that the app takes into account:
Staging | Production | |
---|---|---|
Internal |
Debug | Debug |
External |
Release | Release |
Where the following formed variants are built for staging purposes:
- stagingInternalDebug
- stagingInternalRelease
And these ones for production purposes:
- productionInternalDebug
- productionInternalRelease
- productionExternalDebug
- productionExternalRelease
Sidenote: choose productionExternalDebug before executing the app