The app I developed using RAWG api based on Mvvm architecture.
Utils -> Constants -> API_KEY = "yourOwnApiKey" don't forget to replace it with your own api key.
- Flow - In coroutines, a flow is a type that can emit multiple values sequentially, as opposed to suspend functions that return only a single value.
- ViewModel - The ViewModel class is designed to store and manage UI-related data in a lifecycle conscious way.
- Jetpack Navigation - Navigation refers to the interactions that allow users to navigate across, into, and back out from the different pieces of content within your app.
- Coroutines - A coroutine is a concurrency design pattern that you can use on Android to simplify code that executes asynchronously.
- LiveData - 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.
- Hilt - Hilt is a dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project.
- Paging3 - The Paging library helps you load and display pages of data from a larger dataset from local storage or over network.
- Retrofit2 - A type-safe HTTP client for Android and Java.
- RxJava3 - RxJava is a Java VM implementation of Reactive Extensions: a library for composing asynchronous and event-based programs by using observable sequences.
- Room - The Room persistence library provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite.