All Projects → jshvarts → Conductormvp

jshvarts / Conductormvp

Licence: apache-2.0
Multi-project Clean Architecture MVP app in Kotlin using Conductor, Room, RxJava 2, Dagger 2 with custom scopes

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Conductormvp

Android-Starter-Kit
This is up-to-date android studio project for native android application, that is using modern tools and libraries.
Stars: ✭ 16 (-91.67%)
Mutual labels:  rxandroid, butterknife, rxjava2, mvp-android
KeepSafeNew
Sample app to demonstrate MVP (Model - View - Presenter), Android Architecture Components (Room Persistence, LiveData), RxJava2, ButterKnife in Android.
Stars: ✭ 58 (-69.79%)
Mutual labels:  butterknife, rxjava2, mvp-android, room-persistence-library
Mvpframes
整合大量主流开源项目并且可高度配置化的 Android MVP 快速集成框架,支持 AndroidX
Stars: ✭ 100 (-47.92%)
Mutual labels:  rxjava2, rxandroid, mvp-android, butterknife
Offlinesampleapp
Sample Offline-First MVVM app that uses Android Priority Job Queue, Room, Retrofit2, LiveData, LifecycleObserver, RxJava2, Dagger Android
Stars: ✭ 653 (+240.1%)
Mutual labels:  rxjava2, rxandroid, room, butterknife
Weather-Guru-MVP
Sample Material-design Android weather application build with MVP architectural approach using Dagger2, RxJava2, Retrofit2, Event-Bus, GreenDao, Butterknife, Lottie etc.
Stars: ✭ 15 (-92.19%)
Mutual labels:  rxandroid, butterknife, rxjava2
Android Clean Architecture Boilerplate
Apply clean architecture on Android
Stars: ✭ 141 (-26.56%)
Mutual labels:  rxjava2, rxandroid, mvp-android
mvp-android-template
MVP Android Template to give you a Quick Head Start for your next Android Project. It implements MVP Architecture using Dagger2, Room, RxJava2 , Retrofit2
Stars: ✭ 20 (-89.58%)
Mutual labels:  room, rxjava2, mvp-android
Fountain
Android Kotlin paged endpoints made easy
Stars: ✭ 175 (-8.85%)
Mutual labels:  rxjava2, room, room-persistence-library
Mvp Android Arch Component
Android MVP sample adapts with new Android architecture components (Lifecycle, Room).
Stars: ✭ 446 (+132.29%)
Mutual labels:  rxjava2, room, mvp-android
Moviehub
Showcases popular movies, tv shows, and people from The Movie Database
Stars: ✭ 325 (+69.27%)
Mutual labels:  rxjava2, rxandroid, butterknife
Android Kotlin Mvp Architecture
This repository contains a detailed sample app that implements MVP architecture in Kotlin using Dagger2, Room, RxJava2, FastAndroidNetworking and PlaceholderView
Stars: ✭ 615 (+220.31%)
Mutual labels:  rxjava2, room, mvp-android
situp android proj
🚀一个基组件化、模块化、MVP + MVVM 计划 App,兼容安卓 10.0 9.0 8.0 等 🔥a app like keep, you can edit your plans here, and you can share your life to others by post, too.🔥
Stars: ✭ 15 (-92.19%)
Mutual labels:  butterknife, rxjava2, mvp-android
BakingApp
Udacity Android Developer Nanodegree, project 2.
Stars: ✭ 54 (-71.87%)
Mutual labels:  butterknife, rxjava2, mvp-android
Base Mvvm
App built to showcase basic Android View components like ViewPager, RecyclerView(homogeneous and heterogeneous items), NavigationDrawer, Animated Vector Drawables, Collapsing Toolbar Layout etc. housed in a MVVM architecture
Stars: ✭ 18 (-90.62%)
Mutual labels:  rxjava2, room, room-persistence-library
Android Audiorecorder App
Android application to record audio. RxJava2, Dagger2, MVP, RoomDb.
Stars: ✭ 180 (-6.25%)
Mutual labels:  rxjava2, rxandroid, room-persistence-library
Androidbasemvp
🚀一个快速搭建MVP+RxJava2+Retrofit 基础框架,主要是封装有Http网络请求、日志、缓存、加载等待、toast、页面状态布局管理、权限、RxBus、Glide图片加载等组件,方便快速开发新项目、减少开发成本。
Stars: ✭ 184 (-4.17%)
Mutual labels:  rxjava2, rxandroid, mvp-android
Android Kotlin Mvp Clean Architecture
Clean architecture blueprint using Kotlin and MVP pattern.
Stars: ✭ 105 (-45.31%)
Mutual labels:  rxjava2, mvp-android, room-persistence-library
Pagingroom
Demonstrates various ways of using Paging library with Room (LiveData, RxJava, custom datasource)
Stars: ✭ 139 (-27.6%)
Mutual labels:  rxjava2, rxandroid, room-persistence-library
Mvvm Architecture Android Beginners
This repository contains a sample app that implements MVVM architecture using Kotlin, ViewModel, LiveData, and etc.
Stars: ✭ 176 (-8.33%)
Mutual labels:  rxjava2, rxandroid
Devmvp
一键生成MVP架构基础代码-Android Studio模板
Stars: ✭ 145 (-24.48%)
Mutual labels:  rxjava2, mvp-android

ConductorMVP

Build Status

The source code in this repo accompanies my article Creating Clean Architecture Multi-Project MVP App.

Here you will find a multi-project single Activity TODO app using Conductor implementing MVP pattern (each Controller is a View).

Main Libraries

  • Conductor
  • Room (with fully reactive data types)
  • RxJava 2 and RxAndroid
  • Dagger 2 with custom scopes
  • ButterKnife for view binding

Multi-Project setup

The app is configured as multi-project Gradle setup which improves build and testing speed in addition to providing clear isolation between the components of the app:

  • domain module contains business logic/use-cases/repository interfaces as well as Model
  • data module contains implementation of the domain layer abstractions
  • presentation module contains Views and Presenters as well as Dependency Injection setup that glues all layers together

Relationship between modules

This setup enables you to swap your backend implementation (for instance, migrate to Firebase or Realm) simply by replacing your data layer module and modifying a dependency in the presentation module. If the data layer changes, domain layer is not affected.

Screenshots

List of notes

Note detail

Edit a note

Code Quality

This project aims to maintain high test coverage for all modules.

Unit test code coverage is at 96% (Views are excluded from unit tests since they are rather passive).

Main libraries used for testing are:

  • JUnit
  • Mockito-kotlin
  • Hamcrest
  • Jacoco

License

Copyright 2017 James Shvarts

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].