Skip to content

A showcase of different MVP frameworks and libraries for Android

License

Notifications You must be signed in to change notification settings

NikolayKul/Android-mvp-comparison

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Android MVP comparison

There's a decent amount of different MVP frameworks and libraries for Android. This repo is aimed to help you to choose the one that suits your needs.

TL;DR

Library Support screen rotations Keep Presenter alive Can be applied to a custom View Dagger friendly Kotlin friendly
EasyMvp
Moxy somewhat

Application

Application consists of a single login screen:

Libraries

Every branch represents a single library

🔹 Uses annotation processing
🔹 The API consists of a few classes and annotations
⚠️ Doesn't restore previous view state after configuration changes
⚠️ There's a bug with the latest Dagger release

Furthermore it has a few additional features like RxApi, but they are not particularly useful.

🔹 Uses annotation processing
🔹 Flexible API
⚠️ It's not that easy to provide a Presenter using Dagger

The main feature is a ViewState. It's a stack of view commands (e.g. showLoading, showError) defined in the view interface. Moxy restores the previous view state by applying these commands from the stack depending on StateStrategies (e.g. it can apply a command every phone rotation or only once)

TODO

License

Copyright 2018 NikolayKul

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.

Releases

No releases published

Packages

No packages published

Languages