All Projects → sockeqwe → Mosby Conductor

sockeqwe / Mosby Conductor

Licence: apache-2.0
Plugin for conductor to integrate Mosby

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Mosby Conductor

Mvpart
🎨 A new Android MVP architecture (此框架旨在解决传统 MVP 类和接口太多, 并且 Presenter 和 View 通过接口通信过于繁琐, 重用 Presenter 代价太大等问题).
Stars: ✭ 776 (+479.1%)
Mutual labels:  architecture, mvp
Ios Architectures
Sample app for iOS architectures
Stars: ✭ 90 (-32.84%)
Mutual labels:  architecture, mvp
Snowball
Android Clean Code Sample Project
Stars: ✭ 26 (-80.6%)
Mutual labels:  architecture, mvp
Androidarchitecture
Android Architecture using Google guides
Stars: ✭ 127 (-5.22%)
Mutual labels:  architecture, mvp
Moxy
Moxy is MVP library for Android
Stars: ✭ 1,611 (+1102.24%)
Mutual labels:  architecture, mvp
Mosby
A Model-View-Presenter / Model-View-Intent library for modern Android apps
Stars: ✭ 5,473 (+3984.33%)
Mutual labels:  architecture, mvp
Thirtyinch
a MVP library for Android favoring a stateful Presenter
Stars: ✭ 1,052 (+685.07%)
Mutual labels:  architecture, mvp
Componentizationarch
Stars: ✭ 265 (+97.76%)
Mutual labels:  architecture, mvp
Armscomponent
📦 A complete android componentization solution, powered by MVPArms (MVPArms 官方快速组件化方案).
Stars: ✭ 1,664 (+1141.79%)
Mutual labels:  architecture, mvp
Android Architecture
🌇该项目结合 MVP 与 Clean 架构思想,探索在 Android 项目上的最佳实践。
Stars: ✭ 112 (-16.42%)
Mutual labels:  architecture, mvp
Viabus Architecture
让 Android 开发可以像流水线一样高效的,职责分离架构 ⚡ 不同于 MVP 的配置解耦,也不能和 似是而非 的 MVVM - Clean 同日而语。VIABUS 是世界范围内首个明确提出,通过职责分离,来真正实现 UI 和 业务并行开发的 Android 项目级开发架构和设计模式理念。
Stars: ✭ 485 (+261.94%)
Mutual labels:  architecture, mvp
Mvparms
⚔️ A common architecture for Android applications developing based on MVP, integrates many open source projects, to make your developing quicker and easier (一个整合了大量主流开源项目高度可配置化的 Android MVP 快速集成框架).
Stars: ✭ 10,146 (+7471.64%)
Mutual labels:  architecture, mvp
Kotlin Mvp Example
A small client server app on Kotlin that is using MVP architecture
Stars: ✭ 337 (+151.49%)
Mutual labels:  architecture, mvp
Ribs
Uber's cross-platform mobile architecture framework.
Stars: ✭ 6,641 (+4855.97%)
Mutual labels:  architecture, mvp
Avenging
MVP pattern example on Android: no Dagger or RxJava example
Stars: ✭ 279 (+108.21%)
Mutual labels:  architecture, mvp
Karchi
Repository that showcases 3 different Android app architectures, all with Java and Kotlin versions: "Standard Android", MVP and MVVM. The exact same app is built 6 times following the different patterns.
Stars: ✭ 20 (-85.07%)
Mutual labels:  architecture, mvp
react-mvp
Model-View-Presenter Proof of Concept in React
Stars: ✭ 38 (-71.64%)
Mutual labels:  architecture, mvp
SearchMovies
sample Android Application using MVP pattern
Stars: ✭ 47 (-64.93%)
Mutual labels:  architecture, mvp
Easymvp
A full-featured framework that allows building android applications following the principles of Clean Architecture.
Stars: ✭ 1,312 (+879.1%)
Mutual labels:  architecture, mvp
Rxviper
Android micro framework for developing apps based on clean VIPER architecture.
Stars: ✭ 112 (-16.42%)
Mutual labels:  architecture, mvp

Mosby - Conductor

Plugin for using Mosby with Conductor, a small, yet full-featured framework that allows building View-based Android applications.

Dependencies

Build Status

For Conductor 2.x with Mosby 3.x use:

dependencies {
    compile 'com.hannesdorfmann.mosby3:mvp-conductor:3.1.0'
    // or
    compile 'com.hannesdorfmann.mosby3:viewstate-conductor:3.1.0' // optional viewstate feature
    // or
    compile 'com.hannesdorfmann.mosby3:mvi-conductor:3.1.0' // Model-View-Intent
}

Snapshot

Latest snapshot (from master branch):

dependencies {
    compile 'com.hannesdorfmann.mosby3:mvi-conductor:3.1.1-SNAPSHOT' // Model-View-Intent
    // or
    compile 'com.hannesdorfmann.mosby3:mvp-conductor:3.1.1-SNAPSHOT'
    // or
    compile 'com.hannesdorfmann.mosby3:viewstate-conductor:3.1.1-SNAPSHOT' // optional viewstate feature

}

You also have to add the url to the snapshot repository:

allprojects {
  repositories {
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
  }
}

Usage

Extend your own Conductor Controller from MvpController or from MvpViewStateController if you want to use ViewState feature or from or MviController if you want to use the Model-View-Intent feature.

There are also two base LCE (Loading-Content-Error) Controllers you can extend from: MvpLceController and MvpLceViewStateController.

If you don't want to extend from one of the base controller classes shown above, you can always bring in Mosby easily in any Conductor controller:

class MyController extends Controller
                  implements MvpView, MvpConductorDelegateCallback<V, P> {

  // Initializer block (will be copied into constructor)
  {
    addLifecycleListener(new MvpConductorLifecycleListener<V, P>(this);
  }

  // implement all methods from  MvpConductorDelegateCallback like createPresenter() etc.
  ...

}

If you need ViewState support simply use MvpViewStateConductorLifecycleListener and MvpViewStateConductorDelegateCallback. Do the same for Model-View-Intent but use MviConductorLifecycleListener and MviConductorDelegateCallback.

Lifecycle

Presenter will be created right after Controller.onCreateView() but before Controller.onAttach(). So in onAttach() presenter is ready to be used. View will be detached from Presenter in Controller.onDestroyView() by calling presenter.detachView(true) (true if view is just detached temporarily i.e. screen orientation change, false if view is detached permanently because Controller will be destroyed)

Example

There is a nice external repository that shows how to use Mosby-Conductor. All credit goes to James Shvarts.

This repository contains a simple TO DO List app which is still work in progress.

License

Copyright 2016 Hannes Dorfmann

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].