Skip to content

farooqahmadm1/Modularization_Android

Repository files navigation

Description

Multi-module demo app that gets data from a RSS Url's.

Technologies

  • Compose
  • Clean Architecture + Modularization + MVI
  • Room
  • Retrofit
  • Kotlin Coroutines
  • JetPack (Material 3, ViewModel and etc.)
  • Kotlin DSL
  • Navigation Component Compose

Module Design

Module name Type Description
app Android Application MainActivity, BaseApplication, Hilt.
core Android Library Core business models and classes.
rssData Android Library Data-sources (network and cache), repositories and Hilt for the RSS Module.
rssDomain Android Library Use-cases, Domain models and classes for the RSS Module.
rss-ui-feeds Android Library UI components for the RSS Feeds screen.
rss-ui-stories Android Library UI components for the Rss Category Stories screen.
constants Java/Kotlin Library Random constants.
android-components Android Library Common Composables,Theme, and Android Classes.

build.gradle Files

There are 3 types of build.gradle files.

  1. android application (app module)
  2. android-library-build.gradle
    • For Android library modules.
  3. build.gradle.kts (pure java and kotlin library module)

API

https://www.index.hr/rss

Dependency

Data Module ------------> Domain Module <------------- UIModule

Data Flow

UniDirectional Flow

Module Dependency Graph Diagram