FlyTourAndroid MVVM+MVP+Dagger2+Retrofit+RxJava++++Android5.0gradle5.0VirtualAPK5.0Java5.0KotlinMVVMMVPAndroidAndroidAndroid MVPAndroid MVVMApplib_commonutil
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
4.1.0TokenTokenFlyCloudhttp://106.12.61.238:8080/swagger-ui.html
5.0.0Kotlin5.1.0VirtualAPK
2.0.0VirtualAPKAndroid
2.0.0KotlinandroidX
+MVVM+DataDinding+RxJava+Retrofit4.0.0MVVMDataBindingFlyCloud
+MVVM+RxJava+Retrofit3.0.0MVPMVVMFlyCloud
+MVP+RxJava+Retrofit+Dagger2,2.1.0ModelFlyCloud
+MVP+Dagger22.0.0Dagger2PresentModelDagger2
+MVPSQLLite app * *
*
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();
}
abstract class BaseActivity implements IBaseView{
public abstract int onBindLayout();
public abstract void initView();
public abstract void initData();
public void initListener();
}
abstract class BaseMvvmActivity extends BaseActivity{
initViewDataBinding();
initBaseViewObservable();
initViewObservable();
}
abstract class BaseMvvmRefreshActivity extends BaseMvvmActivity{
private void initBaseViewRefreshObservable();
public abstract DaisyRefreshLayout getRefreshLayout();
public void initRefreshView();
public void stopRefresh();
public void stopLoadMore();
public void autoLoadData();
}
class BaseFragment implements IBaseView{
initCommonView(mView);
initView(mView);
initListener();
}
class BaseMvvmFragment extends BaseFragment{
initViewModel();
initBaseViewObservable();
initViewObservable();
}
class BaseMvvmRefreshFragment extends BaseMvvmFragment{
private void initBaseViewRefreshObservable();
public abstract DaisyRefreshLayout getRefreshLayout();
public void initRefreshView();
public void stopRefresh();
public void stopLoadMore();
public void autoLoadData() ;
}
public abstract class BaseActivity extends RxAppCompatActivity implements BaseView {
...
}
public abstract class BaseMvpActivity<M extends BaseModel,V,P extends BasePresenter<M,V>> extends BaseActivity {
...
}
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> {
}
public boolean enableToolbar() {
return true;
}
public int onBindToolbarLayout() {
return R.layout.common_toolbar;
}
public void showInitLoadView() {
showInitLoadView(true);
}
public void hideInitLoadView() {
showInitLoadView(false);
}
@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);
}
private void lazyLoad() {
//,onCreateView,
if (isViewCreated && isViewVisable) {
initData();
//,,
isViewCreated = false;
isViewVisable = false;
}
}
//
public boolean enableLazyData() {
return false;
}
mvp
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.xmlisModuleAndroidManifest.xmlAndroidManifest.xml
module_main
sourceSets {
main {
if (isModule.toBoolean()) {
manifest.srcFile 'src/main/module/AndroidManifest.xml'
} else {
manifest.srcFile 'src/main/AndroidManifest.xml'
}
}
}
debugApplicationmoduleAndroidManifest.xml
call https://awesomeopensource.com/project/geduo83/FlyTour AndroidJava
var mxdl = {
name : "",
blog : "https://menxindiaolong.blog.csdn.net"
}
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.