An android application that consumes RAWG API to display a list of popular video games built using Jetpack Compose and Koin for dependency injection based on modern android techstack and multi-modular clean architecture.
-
Koin - Dependency Injection library.
-
- Jetpack Compose- Modern toolkit for building native UI.
- Android KTX - Provide concise, idiomatic Kotlin to Jetpack and Android platform APIs.
- AndroidX - Major improvement to the original Android Support Library, which is no longer maintained.
- Lifecycle - Perform actions in response to a change in the lifecycle status of another component, such as activities and fragments.
- ViewModel - 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.
- Room - Provides an abstraction layer over SQLite used for offline data caching.
- Navigation Component-Component that allows easier implementation of navigation from simple button clicks to more complex patterns.
-
Retrofit - Type-safe http client and supports coroutines out of the box.
-
GSON - JSON Parser,used to parse requests on the data layer for Entities and understands Kotlin non-nullable and default parameters.
-
OkHttp-Logging-Interceptor - Logs HTTP request and response data.
-
Coroutines - Library Support for coroutines.
-
Flow - Flows are built on top of coroutines and can provide multiple values. A flow is conceptually a stream of data that can be computed asynchronously.
-
Timber-Library for easier logging.
-
Coil- Image Library from loading images from the database and caching in memory.
-
Palette API - Helper class to extract prominent colors from an image.
-
kotlinx.coroutines - Library Support for coroutines,provides runBlocking coroutine builder used in tests.