/AndroidMVPArchitecture

Android MVP architecture sample project with or without RxJava and Dagger2 and Kotlin

Primary LanguageJava

Download sample apk from here

apk

Android MVP Architecture

Before starting, I assume

  1. you know basics of android application development
  2. Heard about Android MVP Architecture.
  3. And are eager to learn Android MVP Architecture with different types of implementation.

AndroidMVPArchitecure Includes:

  1. Four branches viz master, mvp_with_rx_and_dagger, mvp_with_rx_and_kotlin and new_dagger_impl
  2. master -> Implementation of MVP Architecture without using Dagger, RxJava, RxAndroid
  3. mvp_with_rx_and_dagger -> Implementation with Dagger2, RxJava, RxAndroid
  4. mvp_with_rx_and_kotlin -> Implementation with Dagger2, RxJava, RxAndroid, Kotlin
  5. new_dagger_impl -> New Android Injector with Dagger 2, Java, RxJava, RxAndroid
  6. Unit testing with Mockito

MVC vs MVP

MVC vs MVP

What is MVP?

MVP Pattern

MVP is a user interface architectural pattern engineered to facilitate automated unit testing and improve the separation of concerns in presentation logic:

The model is an interface defining the data to be displayed or otherwise acted upon in the user interface. The view is a passive interface that displays data (the model) and routes user commands (events) to the presenter to act upon that data. The presenter acts upon the model and the view. It retrieves data from repositories (the model), and formats it for display in the view.

source: Model–view–presenter

Important Links:

RxJava

RxAndroid

MVP for Android

Dagger2

Kotlin for Android

Unit tests with Mockito

Model-View-Presenter: Android guidelines

google samples

An Introduction to Model View Presenter on Android

MVP vs MVC

The Model-View-Presenter (MVP) Pattern by Microsoft


Attribution

Thank you Subhash Acharya for your continuous guidance and support to improve the coding standard. I sincerely appreciate the time you spent and assistance you have provided me by reviewing my code and recommending me for achieving the best result.


Feel free to submit any type of issues and suggestions for improving the coding standard

Happy Coding!!!

License

Copyright 2017 Nawin Khatiwada

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.