Skip to content
An example approach for modularization and reactive clean architecture.
Branch: master
Clone or download
Latest commit 7117c20 Mar 25, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app unit text env implemented Mar 13, 2019
art
base fixed page load blink Mar 13, 2019
buildSrc
gradle/wrapper
shows backing propery type refactored Mar 13, 2019
.gitignore initial commit Mar 11, 2019
README.md
build.gradle
common-android-library.gradle initial commit Mar 11, 2019
common.gradle unit text env implemented Mar 13, 2019
gradle.properties initial commit Mar 11, 2019
gradlew
gradlew.bat initial commit Mar 11, 2019
settings.gradle initial commit Mar 11, 2019

README.md

movies

An example approach for Android Application modularization and Reactive Clean architecture.

Modularization:

This repository is created to demonstrate how to implement modular android application and reactive clean architecture. In Base directory, there are four modules:

- core
- core_presentation
- core_domain
- core_data

Core module contains classes which can be used in every layer such as injection annotations, injection scopes, error factories, data holder models. Core presentation, includes core module and classes which can be used in other features presentation modules such as base ui classes, generic RecyclerView Adapter, ViewModel factories etc. Core data inclues core module and domain spesific interfaces such as Interactors. Core Data also includes core module, data source interfaces, default request interceptors and api module.

All features is implemented as 3 modules which are seperated by their scope.

- feature_presentation
- feature_domain
- feature_data

Presentation layer, contains, ui classes, injection modules for ui and view entities. Presentation layers includes core_presentation module. Domain layer containes feature spesific domain objects, interactor implementations and repository interace to provide a contract between data and domain layer of feature. Data layer contains core_data module and other data related classes such as repository implementaions, remote local data sources etc..

Tech Stack:

- Kotlin
- MVVM
- Clean Architecture 
- Repository Pattern
- RxJava
- Dagger2
- Retrofit
- Architecture Components
- Lifecycle Aware Components
- Modularization
- Unit Testing
- Mockito
- Kotlin DSL

Screenshots:

You can’t perform that action at this time.