Download sample apk from here
Before starting, I assume
- you know basics of android application development
- Heard about Android MVP Architecture.
- And are eager to learn Android MVP Architecture with different types of implementation.
AndroidMVPArchitecure Includes:
- Three branches viz master, mvp_with_rx_and_dagger and mvp_with_rx_and_kotlin
- master -> Implementation of MVP Architecture without using Dagger, RxJava, RxAndroid
- mvp_with_rx_and_dagger -> Implementation with Dagger2, RxJava, RxAndroid
- mvp_with_rx_and_kotlin -> Implementation with Dagger2, RxJava, RxAndroid, Kotlin
- Unit testing with Mockito
MVC vs MVP
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
Model-View-Presenter: Android guidelines
An Introduction to Model View Presenter on Android
The Model-View-Presenter (MVP) Pattern by Microsoft
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
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.