Awesome Open Source
Awesome Open Source

Latest Stable Version Min Sdk Version License Author QQ Group

FlyTourAndroid MVVM+MVP+Dagger2+Retrofit+RxJava++++Android5.0gradle5.0VirtualAPK5.0Java5.0KotlinMVVMMVPAndroidAndroidAndroid MVPAndroid MVVMApplib_commonutil

FlyCloud

FlyTour 4.2.0+MVVM+RxJava+Retrofit+DataBindingFlyTour 5.2.0+MVP+KotlinFlyTour 5.1.0+MVP+Java5.0.0+MVP+Kotlin4.1.0+MVVM+RxJava+Retrofit+DataBinding4.0.0+MVVM+RxJava+Retrofit3.0.0+MVP+RxJava+Retrofit+Dagger22.1.0+MVP+Dagger22.0.0+MVP 1.1.01.0.0AndroidAndroid

FlyTourFlyTranslateFlyAndroidMVPFlyTranslateMVP+RxJava+Retrofit+Dagger2 FlyFunandroid mvp

starAndroidJava

FlyTour 4.2.0+MVVM+RxJava+Retrofit+DataBinding 2020-03-23

4.1.0TokenTokenFlyCloudhttp://106.12.61.238:8080/swagger-ui.html

  • token

FlyTour 5.2.0+MVP+Kotlin 2020-03-06

5.0.0Kotlin5.1.0VirtualAPK

  • Kotlin
  • VirtualAPK

FlyTour 5.1.0+MVP+Java 2020-03-02

2.0.0VirtualAPKAndroid

  • VirtualAPK

FlyTour 5.0.0+MVP+Kotlin 2020-02-18

2.0.0KotlinandroidX

  • androidX
  • Kotlin

FlyTour 4.1.0+MVVM+RxJava+Retrofit+DataBinding 2019-07-07

+MVVM+DataDinding+RxJava+Retrofit4.0.0MVVMDataBindingFlyCloud

  • DataBinding

FlyTour 4.0.0+MVVM+RxJava+Retrofit 2019-07-03

+MVVM+RxJava+Retrofit3.0.0MVPMVVMFlyCloud

  • MVVM

FlyTour 3.0.0+MVP+RxJava+Retrofit+Dagger2 2019-06-26

+MVP+RxJava+Retrofit+Dagger2,2.1.0ModelFlyCloud

  • Retrofit+RxJava

FlyTour 2.1.0+MVP+Dagger2 2019-06-06

+MVP+Dagger22.0.0Dagger2PresentModelDagger2

  • 1.PresenterDagger2
  • 2.ModleDagger2
  • 3.DAODagger2

FlyTour 2.0.0+MVP 2019-05-30

+MVPSQLLite app * *

  • ToolBar
  • ToolBar
  • loading
  • loading
  • Fragment
  • HeadViewFootView
  • DaisyRefreshLayout
  • ArrowRefreshLayout

FlyTour 1.1.0 2019-03-34

  • MVP

FlyTour 1.0.0 2019-01-26

  • MVP


*


lib_common

MVVM

  • ViewIBaseView
interface IBaseView{
    void initView();
    void initListener();
    void initData();
    void finishActivity();
    void showInitLoadView(boolean show);
    void showNoDataView(boolean show);
    void showTransLoadingView(boolean show);
    void showNetWorkErrView(boolean show);
    Context getContext();
}
  • BaseActivity
abstract class BaseActivity implements IBaseView{
    public abstract int onBindLayout();
    public abstract void initView();
    public abstract void initData();
    public void initListener();
}
  • BaseMvvmActivity
abstract class BaseMvvmActivity extends BaseActivity{
 initViewDataBinding();
 initBaseViewObservable();
 initViewObservable();
}
  • BaseMvvmRefreshActivity
abstract class BaseMvvmRefreshActivity extends BaseMvvmActivity{
  private void initBaseViewRefreshObservable();
    public abstract DaisyRefreshLayout getRefreshLayout();
    public void initRefreshView();
    public void stopRefresh();
    public void stopLoadMore();
    public void autoLoadData();
}
  • BaseFragment
class BaseFragment implements IBaseView{
   initCommonView(mView);
        initView(mView);
        initListener();
}
  • BaseMvvmFragment
class BaseMvvmFragment extends BaseFragment{
  initViewModel();
        initBaseViewObservable();
        initViewObservable();
}
  • BaseMvvmRefreshFragment
class BaseMvvmRefreshFragment extends BaseMvvmFragment{
    private void initBaseViewRefreshObservable();
     public abstract DaisyRefreshLayout getRefreshLayout();
        public void initRefreshView();
        public void stopRefresh();
        public void stopLoadMore();
        public void autoLoadData() ;
}

MVP

  • BaseActivity
public abstract class BaseActivity extends RxAppCompatActivity implements BaseView {
...
}
  • BaseMvpActivity
public abstract class BaseMvpActivity<M extends BaseModel,V,P extends BasePresenter<M,V>> extends BaseActivity {
...
}
  • BaseRefreshActivity
public abstract class BaseRefreshActivity<M extends BaseModel, V extends BaseRefreshView<T>, P extends BaseRefreshPresenter<M, V, T>, T> extends BaseMvpActivity<M, V, P> implements BaseRefreshView<T> {
}
  • BaseFragment
  • BaseMvpFragment
  • BaseRefreshFragment
  • BaseAdapter

  • ToolBar
public boolean enableToolbar() {
    return true;
}
  • ToolBar
public int onBindToolbarLayout() {
   return R.layout.common_toolbar;
}
  • loading
  public void showInitLoadView() {
        showInitLoadView(true);
    }

    public void hideInitLoadView() {
        showInitLoadView(false);
    }
  • loading
  @Override
    public void showTransLoadingView() {
        showTransLoadingView(true);
    }

    @Override
    public void hideTransLoadingView() {
        showTransLoadingView(false);
    }
    public void showNoDataView() {
        showNoDataView(true);
    }

    public void showNoDataView(int resid) {
        showNoDataView(true, resid);
    }

    public void hideNoDataView() {
        showNoDataView(false);
    }
public void hideNetWorkErrView() {
        showNetWorkErrView(false);
    }

    public void showNetWorkErrView() {
        showNetWorkErrView(true);
    }

  • Fragment
  private void lazyLoad() {
        //,onCreateView,
         if (isViewCreated && isViewVisable) {
            initData();
            //,,
            isViewCreated = false;
            isViewVisable = false;
        }
    }
    //
    public boolean enableLazyData() {
        return false;
    }

lib_refresh_layout

  • HeadViewFootView
  • DaisyRefreshLayout
  • ArrowRefreshLayout

  • appAPP
  • APP
  • appapk
  • APP
  • MainAPP
  • Common

MVVM

  • View
  • ViewModel
  • model

MVP

mvp

  • Activity

Fragment

FragmentActivitycommonbasemvp

FlyTourARouter

Module build.gradle application Android App library appAPP

FlyTourgradle.properties isModule true/false "Sync Project"

isModule=false

if (isModule.toBoolean()) {
    apply plugin: 'com.android.application'
} else {
    apply plugin: 'com.android.library'
}

AndroidManifest

AndroidManifest.xmlisModuleAndroidManifest.xmlAndroidManifest.xml module_main

sourceSets {
        main {
            if (isModule.toBoolean()) {
                manifest.srcFile 'src/main/module/AndroidManifest.xml'
            } else {
                manifest.srcFile 'src/main/AndroidManifest.xml'
            }
        }
}

Application

debugApplicationmoduleAndroidManifest.xml

Application

call https://awesomeopensource.com/project/geduo83/FlyTour AndroidJava

var mxdl = {
    name : "",
    blog : "https://menxindiaolong.blog.csdn.net"
}

License

Copyright (C)  menxindiaolong, FlyTour Framework Open Source Project

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.
Alternatives To Android Mvp Mvvm Flytour
Select To Compare


Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Plugin (113,352
Kotlin (53,372
Mvvm (5,350
Rxjava (4,216
Mvp (3,617
Toolbar (2,675
Retrofit2 (1,980
Dagger (1,786
Databinding (1,515
Mvvm Architecture (1,509
Dagger2 (1,317
Mvvm Android (597
Mvp Architecture (529
Mvp Android (271
Mvp Pattern (227
Databinding Android (140
Model View Presenter (96
Dagger2 Mvp (75
Mvvm Databing (27
Android Modules (13