A sample app that demonstrate how to build an Android application using the Uncle Bob's Clean Architecture approach

Overview

MVI-Clean-Architecture

This is a sample app & basic code that demonstrate how to build an Android application using the Uncle Bob's Clean Architecture approach.

The trick of the project is to demonstrate best practices, provide a set of guidelines, and present modern Android Application Architecture that is modular, scalable, maintainable and testable, suitable for bigger teams and long application lifecycle management.

Because it is an architectural project, UI has been kept simple. Sample data has been provided from Weather API

Flow

This app uses MVI (Model View Intent) architecture.

Modules

Modules are the collection of source files and build settings that allow you to divide your project into discrete units of functionality.

  • App Module

    :app module is an com.android.application, which is needed to create the app bundle. It contains dependency graph and UI related classes. It presents data to screen and handle user interactions.

  • Base Module

    :base module contains only framework related base classes that is used in other modules

  • Common Module

    :common module contains code and resources which are shared between other modules

  • Data Module

    :data module contains implementation of repository and local - remote repository interface adapt

  • Domain Module

    :domain module contains use cases and repository interface adapt

  • Local Module

    :local module contains local data source related classes

  • Remote Module

    :remote module contains remote data source related classes

  • Presentation Module

    :presentation module contains business logic

Each module has its own test.

Tech Stack

Contributions

You might also like...
 Booking - Android Architecture Sample
Booking - Android Architecture Sample

Booking - Android Architecture Sample A simple app that loads information from REST API to show one approach to using some of the best practices in An

Viper - Sample Viper (MVVMR) architecture pattern
Viper - Sample Viper (MVVMR) architecture pattern

Viper V I P E R = View + Interactor + Presenter + Entity + Router My versions Wi

A sample photo browsing app in Kotlin, Android using Picsum image API.
A sample photo browsing app in Kotlin, Android using Picsum image API.

Picsum Photo App Functionality The app's functionality includes: Fetch a list of images from picsum photos api (https://picsum.photos/) and show them

Quarkus Sample Application with extensions cache, kotlin, rest client, resteasy and smallrye

quarkus-sample Project This project uses Quarkus, the Supersonic Subatomic Java Framework. If you want to learn more about Quarkus, please visit its w

MVVM(Model View ViewModel) sample in Kotlin using the components ViewModel, LiveData and Retrofit library
MVVM(Model View ViewModel) sample in Kotlin using the components ViewModel, LiveData and Retrofit library

kotlin-mvvm Languages: English, Spanish MVVM(Model View ViewModel) sample in Kotlin using the components ViewModel, LiveData, the libraries Retrofit,

FTUE sample using Jetpack Navigation's Navigation-Compose, ViewModel, SavedStateHandle, Hilt

Jetpack Navigation's Navigation-Compose + Jetpack Compose + NavGraphs + SavedStateHandle + Dagger-Hilt + EventEmitter (toasts / navigation commands) T

This is an example implementation of android accessibility services with 5 Sample Actions
This is an example implementation of android accessibility services with 5 Sample Actions

Android Accessibility Services Example This is an example implementation of android accessibility services with 5 Sample Actions such as: Simulate Pow

A sample repo to play with modern Android technologies

MarvelCompose Marvel + Compose. Table of Contents Introduction Features Feedback Introduction This is a sample repo to play with modern Android techno

Sample projects for Android 13 (Developer Preview 1)
Sample projects for Android 13 (Developer Preview 1)

android-13-samples Sample projects for Android 13 (Developer Preview 1). Table of Content Themed App Icon (Github) (Tutorial) Quick Settings Placement

Owner
Ahmed Shaban Elhdad
Ahmed Shaban  Elhdad
A sample Album list app that shows how to use ViewModels and Room together with RxJava & Dagger2, in Kotlin by Clean Architecture.

Kotlin-MVVM-Hilt A sample Album list app that shows how to use ViewModels and Room together with RxJava & Dagger2, in Kotlin by Clean Architecture. Im

hpAndro 1 May 12, 2022
Sample Android Clean MVVM architecture

Sample Android Clean MVVM architecture ( Retrofit + Okhttp + Moshi + Coil + Room + Navigation Component + Coroutines + Flow + DataStore + ViewModel + Hilt + Compose )

Javad 3 Jun 30, 2022
PolitcalPreparedness is an example application built to demonstrate core Android Development skills recommended by Google.

PolitcalPreparedness is an example application built to demonstrate core Android Development skills recommended by Google.

Pranav Patel 1 Apr 13, 2022
This application features - Modern Minimalistic Design, MVVM, Pagination, Hilt, Retrofit, Room, Data Store, Flow, Live Data, Navigation Component (Clean Architecture)

NewsFly NewsFly is a modern news android application which features virtually ALL recent and recommended android development tech stack and tools used

Ibrahim 121 Nov 4, 2022
This is an example repository to demonstrate the good practices of using ViewModel and how usage of AndroidViewModel can make things worst in a codebase

ViewModel Good Practices ??‍♂️ This is a example repository to demonstrate the good practices of using ViewModel and how usage of AndroidViewModel can

Shreyas Patil 29 Sep 28, 2022
📚 Sample Android Components Architecture on a modular word focused on the scalability, testability and maintainability written in Kotlin, following best practices using Jetpack.

Android Components Architecture in a Modular Word Android Components Architecture in a Modular Word is a sample project that presents modern, 2020 app

Madalin Valceleanu 2.3k Dec 30, 2022
Saga of Star wars - An Android sample repo showcasing Clean Arch with MVVM and Epoxy models

Star Wars Universe This is a showcase android application written in Kotlin and follows Clean Code architecture to showcase Characters from the StarWa

Adit Lal 5 Dec 13, 2022
Template for MVVM Architecture Clean Code.

MVVM Template Kotlin Template for MVVM Architecture. This is basic template for android app follwing MVVM architecture and latest tech stack. You don'

mohamed tamer 28 Sep 26, 2022
MVI Architecture Android Beginners: Sample App

MVI Architecture Android Beginners: Sample App This repository contains a sample app that implements MVI architecture using Kotlin, ViewModel, LiveDat

null 16 Dec 7, 2022
Android Modern Architecture Sample

AndroidModernArchitectureSample TODO: write readme Download (playstore release - under review) https://play.google.com/store/apps/details?id=io.github

Ji Sungbin 22 Sep 10, 2022