Barebones sample project demonstrating use of Retrofit, OkHttp, Hilt, Kotlin Coroutines, as well as a few Android Jetpack Libraries like Navigation Components, View Model, Live Data, View Binding, Data Binding, all through a single-activity, MVVM architecture.
Samples tests using Espresso, Truth, Navigation, and Hilt can also be found in this project.
For the sake of brevity, only the Games and Bosses endpoint are implemented in the project.
A type-safe HTTP client for Android and Java.
OkHttp
is an efficient HTTP & HTTP/2 client for Android and Java applications
Hilt
provides a standard way to incorporate Dagger dependency injection into an Android application.
Coroutines help to manage long-running tasks that might otherwise block the main thread and cause your app to become unresponsive.
Android Jetpack's Navigation Component helps you implement navigation, from simple button clicks to more complex patterns, such as app bars and the navigation drawer.
The ViewModel
class is designed to store and manage UI-related data in a lifecycle conscious way. The ViewModel
class allows data to survive configuration changes such as screen rotations.
LiveData
is an observable data holder class. Unlike a regular observable, LiveData is lifecycle-aware, meaning it respects the lifecycle of other app components, such as activities, fragments, or services. This awareness ensures LiveData only updates app component observers that are in an active lifecycle state.
ViewBinding
is a feature that allows you to more easily write code that interacts with views.
The DataBinding
Library is a support library that allows you to bind UI components in your layouts to data sources in your app using a declarative format rather than programmatically.
Use Espresso
to write concise, beautiful, and reliable Android UI tests.
Truth
makes your test assertions and failure messages more readable.