Giter Site home page Giter Site logo

evgenbes / android-clean-architecture-java Goto Github PK

View Code? Open in Web Editor NEW

This project forked from timofeykovalenko/android-clean-architecture-java

0.0 1.0 0.0 167 KB

Basic concept and the skeleton of the android application with a clean architecture written on Java. In addition we use patterns: Repository, MVVM, Router and Room database.

License: Apache License 2.0

Java 100.00%

android-clean-architecture-java's Introduction

android clean architecture java

Basic concept and the skeleton of the android application with a clean architecture written on Java. Additionaly we use patterns: Repository, MVVM, Router and Room database.

Domain module

Independent layer, it contains only business logic written on java or kotlin - no dependencies from Android SDK, other modules or libs, except RxJava(Not RxAndroid!!!) and Injection because thay are very common libraries. Here we have contracts(interfaces) that should be implemented in other modules(data etc.).

Data module

It contains the functions for obtaining and storing data - network calls, database, files, shared preferences etc. This layer can depend on Android SDK and other libs(for exp: Gson, Retrofit). But we mustn't do any business logic here! The goal of this layer just retrieve and save data - nothing more!

Presentation module

First of all this layer contains UI. All interactions with the user should be here. The Presentation layer communicates with the domain layer for receiving and sending data(entity). We don't have to communicate directly with the data or other layers. Additionaly it is the main module in the android app so we should set up all modules here (Providers for Injections and ect.).

The key feature of the clean architecture is the Entity. Each module has own entities, it makes each layers independent as much as possible

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.