This framework is designed to solve the traditional MVP class and interface too much, and Presenter and View communicate too complicated through the interface, reuse Presenter too much cost.
Android MVP architecture in Kotlin using Dagger2, RxJava2, Retrofit2.
This is simple Kotlin MVP demo. Here we are using following technologies:
The app has following packages:
Quantum is a general purpose state management library designed for building easy, stable and thread safe Android applications. It was inspired by AirBnb's MvRx and tailored for building reliable ViewModels.
Android reactive MVP stack.
The library encourages developers to use Android Clean MVP architecture pattern.
Base is a lightweight library that gives you a clean architecture foundation for your Android MVP's.
Simple, Tiny, Extendable Android MVP library. No complex Base Activity, Base Fragment or Base View. Just base Presenters and View interface for you to extend from.
Fluxxan Fluxxan is an Android implementation of the Flux Architecture that combines concepts from both Fluxxor and Redux.
A Mosby based VIPER library for Android.
It allows you to create clean, modular, decoupled and easy to test apps with ease by providing you a neat toolkit for applying the VIPER architecture. It is shipped with the modules generator to relieve you from composing modules by hand and to speed up your development even more!
Droidux is "predictable state container" implementation, inspired by Redux.
An Android MVVM helper library which works really well with Android Data binding.
An extremely lightweight collection of classes for implementing a state based decoupled architecture for Android applications.
A major benefit of this is that it also keeps asynchronous code away from the Android lifecycle.
GraphFlow is a lightweight library for designing 'logic based' UI flows.
You create a graph of nodes logically connected where each node represents a UI renderable object (fragment/view/whatever you prefer).
ngAndroid is bringing angularjs type directives to android xml attributes.
It's a simple MVP implementation. With this library every developer can integration pattern MVP in him project. To add presenter to Activity or Fragment, the developer need write only one row - setPreseter(ExamplePresenter.class);
This library does support MVP pattern for Activities
, Fragments
and RecyclerViewAdapter
.
Unify activity and fragment life cycle for MVVM architecture.
Binds Android Activity lifecycle callbacks to Activity fields annotated with @AirCycle
.
Fields annotated with @AirCycle
that are defined in an Activity will receive lifecycle callbacks of the enclosing Activity. The Activity does NOT need to implement any interface or extend any specific base class.
The field itself also does NOT need to implement any interface or extend any specific base class.
The binding class is generated in compile time using Java annotation processing, NO reflection is used at runtime. Since all classes are generated in compile time, it can safely be used with ProGuard.
Inspired by SoundCloud's LightCycle library. Compared to LightCycle, AirCycle supports passing of Activity lifecycle callbacks without the need to extend from a specific base Activity. Additionally, the listener classes are completely flexible, without the need to extend from any class or interface. This enables more flexibility when developing and further promotes composition over inheritance.
A minimalist, View-based application framework for Android.
A multi-purpose Groovy library containing view injection and threading for Android using annotations. It's based on both ButterKnife and AndroidAnnotations.
Get your Android applications off the ground and running fast with this archetype. This bootstrap should contain everything you need to get going but not so much you have to spend time stripping things out. If you find your self deleting something frequently then it should probably be removed. This application is highly based off of Jake Wharton's u2020 and has a debug drawer ready and waiting for more awesomeness.
Kick-starts Android application development.
Areas covered by ignition encompass:
ViewModel Lifecycle allows you to track and observe Jetpack ViewModel's lifecycle changes.
Premo is a Kotlin Multiplatform library that helps to implement the Presentation Layer and share it on iOS, Android, Desktop and Web. Focus on writing logic instead of solving common and boring UI related issues: lifecycle, persistence, navigation, etc.
Kotlin Multiplatform Mobius implementation - A functional reactive framework for managing state evolution and side-effects.
Shuttle provides a modern, guarded way to pass large Serializable
objects with Intent objects or saving them in Bundle
objects to avoid app crashes.
MobX architecture pattern to Android written in Kotlin.
Vita is a light and simple library that helps you to share ViewModel
between fragments and activities, even you can create ViewModels
in application scope.
Inversion simplifies the ServiceLoader usage to retrieve all the implementations of a certain interface. Using Inversion it's easy to use the dependency inversion in a multi module project.
The library provides the means necessary to easily integrate the MVVM Architectural Pattern into your application; it includes the adaptations for the dagger 2 DI library, as well as the new Android Navigation Architecture Component one.
The library is accompanied by a comprehensive Demo Application that is built upon the MVVM and Clean Architecture concepts and utilizes such libraries as RxJava, Dagger2, Android Navigation Architecture Component, OkHttp, Retrofit, Room, Glide.
Krate is a predictable state container for Kotlin and RxJava. It brings order to the chaos by taking care of the data flow in your app. Krate is heavily inspired by This talk by Jake Wharton but also Flux and Redux.
AbstractMvp is a library that provides abstract components for MVP architecture realization, with problems solutions that are exist in classic MVP.