Skip to content

Repository files navigation

Android MVVM Example with Hilt, Coroutines, Retrofit, View Binding, Data Binding

This Android example project demonstrates the implementation of the MVVM (Model-View-ViewModel) architectural pattern in combination with Hilt for dependency injection, Coroutines for asynchronous programming, Retrofit for making API calls, View Binding for UI, and Data Binding with Binding Adapters for data binding and UI updates. The project also showcases state-based API responses using sealed classes and named qualifiers for Hilt using annotations.

Project Overview

MVVM Architecture

The project follows the MVVM architectural pattern, which separates the application logic into three main components:

  • Model: Represents the data and business logic.
  • View: Represents the UI components, including Activities and Fragments.
  • ViewModel: Acts as a bridge between the Model and the View, handling the UI-related logic.

Libraries Used

The project utilizes several popular libraries and technologies:

  • Hilt: For dependency injection, enabling easier and cleaner code by providing dependencies where needed.
  • Coroutines: For handling asynchronous operations in a more concise and readable way.
  • Retrofit: To make API calls and handle network operations.
  • View Binding: For type-safe, null-safe access to the UI components.
  • Data Binding: For binding UI components directly to data, reducing boilerplate code.
  • Binding Adapters: Custom adapters to enable data binding for complex UI components.

State-Based API Response

The project uses sealed classes to represent different states of the API response, such as Success, Error, Loading, etc. This approach simplifies error handling and UI updates based on the API response.

Named Qualifiers for Hilt

Named qualifiers are used in Hilt to provide different instances of the same type of dependency with unique names. This allows for fine-grained control over the injection of dependencies in different parts of the application.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages