All Projects → AnyLifeZLB → Mvp Dagger2 Rxjava2

AnyLifeZLB / Mvp Dagger2 Rxjava2

Android 基本mvp+dagger(dagger2.android)+rxjava2+retrofit+ormdb框架。简单组件化架构 with Base Activity,Presenter ,View,Model 的抽象封装,http 请求封装&错误统一处理

Projects that are alternatives of or similar to Mvp Dagger2 Rxjava2

mvp-android-template
MVP Android Template to give you a Quick Head Start for your next Android Project. It implements MVP Architecture using Dagger2, Room, RxJava2 , Retrofit2
Stars: ✭ 20 (-92.7%)
Mutual labels:  mvp, dagger2, rxjava2, mvp-architecture, retrofit2, dagger2-android
Armscomponent
📦 A complete android componentization solution, powered by MVPArms (MVPArms 官方快速组件化方案).
Stars: ✭ 1,664 (+507.3%)
Mutual labels:  rxjava2, dagger2, mvp, mvp-architecture, retrofit2
AndroidMVPArchitecture
Android MVP architecture sample project with or without RxJava and Dagger2 and Kotlin
Stars: ✭ 78 (-71.53%)
Mutual labels:  mvp, dagger2, mvp-architecture, retrofit2, dagger2-android
Weather-Guru-MVP
Sample Material-design Android weather application build with MVP architectural approach using Dagger2, RxJava2, Retrofit2, Event-Bus, GreenDao, Butterknife, Lottie etc.
Stars: ✭ 15 (-94.53%)
Mutual labels:  mvp, dagger2, rxjava2, mvp-architecture, retrofit2
Wanandroid
WanAndroid客户端,项目基于 Material Design + MVP +dagger2 + RxJava + Retrofit + Glide + greendao 等架构进行设计实现,极力打造一款 优秀的玩Android https://www.wanandroid.com 客户端,是一个不错的Android应用开发学习参考项目
Stars: ✭ 223 (-18.61%)
Mutual labels:  rxjava2, dagger2, mvp, retrofit2
Fineract-CN-mobile
DEPRECATED project - Check the Apache fineract-cn-mobile project instead
Stars: ✭ 17 (-93.8%)
Mutual labels:  mvp, dagger2, mvp-architecture, retrofit2
Android Mvp Mvvm Flytour
🔥🔥🔥 FlyTour是Android MVVM+MVP+Dagger2+Retrofit+RxJava+组件化+插件组成的双编码架构+双工程架构+双语言Android应用开发框架,通过不断的升级迭代该框架已经有了十个不同的版本,5.0之前工程架构采用gradle配置实现组件化,5.0之后的工程架构采用VirtualAPK实现了插件化,5.0之前采用Java编码实现,5.0之后采用Kotlin编码实现,编码架构由MVVM和MVP组成,工程架构和编码架构及编码语言开发者可根据自己具体的项目实际需求去决定选择使用,该框架是Android组件化、Android插件化、Android MVP架构、Android MVVM架构的集大成者,帮助你快速的搭建自己的App项目开发框架,以便把主要的精…
Stars: ✭ 2,948 (+975.91%)
Mutual labels:  rxjava2, dagger2, mvp-architecture, retrofit2
flickr-android
A small sample app to showcase architecting app using Clean Architecture and MVVM
Stars: ✭ 25 (-90.88%)
Mutual labels:  dagger2, rxjava2, retrofit2, dagger2-android
Roomrxjava
Room with Rxjava Example
Stars: ✭ 130 (-52.55%)
Mutual labels:  rxjava2, dagger2, retrofit2, dagger2-android
android-template
Template for android development at Tiki
Stars: ✭ 17 (-93.8%)
Mutual labels:  mvp, dagger2, rxjava2, mvp-architecture
uv-index
This is a work-in-progress (🔧️) ultraviolet index viewer app for demonstrating Instant Apps + Kotlin + Dagger + MVP
Stars: ✭ 64 (-76.64%)
Mutual labels:  mvp, mvp-architecture, retrofit2, dagger2-android
Awesome Wanandroid
⚡致力于打造一款极致体验的 http://www.wanandroid.com/ 客户端,知识和美是可以并存的哦QAQn(*≧▽≦*)n
Stars: ✭ 2,525 (+821.53%)
Mutual labels:  rxjava2, dagger2, mvp-architecture, retrofit2
Eve
Eve and Wall-e
Stars: ✭ 133 (-51.46%)
Mutual labels:  rxjava2, mvp, mvp-architecture, retrofit2
CleanArchitecture-SocketIO
CleanArchitecture with SocketIo 📡
Stars: ✭ 32 (-88.32%)
Mutual labels:  mvp, dagger2, rxjava2, dagger2-android
GithubApp-android-architecture
Let's learn a deep look at the Android architecture
Stars: ✭ 16 (-94.16%)
Mutual labels:  mvp, dagger2, rxjava2, retrofit2
MVPArchitecture
Android MVP architecture in Kotlin using Dagger2, RxJava2, Retrofit2 and so on
Stars: ✭ 27 (-90.15%)
Mutual labels:  dagger2, rxjava2, mvp-architecture, retrofit2
AndroidCleanArchitecture
Android Project with clean android architecture contain Dagger, Retrofit, Retrofit, Android archtecture components, LiveData with MVVM architecture
Stars: ✭ 22 (-91.97%)
Mutual labels:  dagger2, rxjava2, retrofit2, dagger2-android
Open Source Android Weather App
☔️ Open source android weather app. See "Issues" tab for current tasks queue. Tasks suitable for beginners are labeled with green "beginner friendly" tags.
Stars: ✭ 81 (-70.44%)
Mutual labels:  rxjava2, dagger2, mvp-architecture, retrofit2
Mvpframes
整合大量主流开源项目并且可高度配置化的 Android MVP 快速集成框架,支持 AndroidX
Stars: ✭ 100 (-63.5%)
Mutual labels:  rxjava2, dagger2, mvp, retrofit2
Cucumber
A recipe finding app written in Kotlin with MVP architecture
Stars: ✭ 64 (-76.64%)
Mutual labels:  dagger2, rxjava2, mvp-architecture, retrofit2

FBI WARMIMNG:api 仅供交流,不要外传

关于本Demo

一直在纠结在何种开发模式之中,重构希望能把关注点集中到代码结构、整体架构、可测试性、可维护性这四个方面 Rxjava2 + retrofit2 + MVP + Drager2 +,应该是当前Android开发主流的框架 ,我们都会参考Google的官方框架https://github.com/googlesamples/android-architecture 或者 Google 的最新的项目架构组件https://github.com/googlesamples/android-architecture-components

本 Demo目前已经完善了组件化架构,解决大型项目需要按需编译,模块化,代码隔离的问题

[New]Android 组件化架构

简单的分为BaseLib(抽象出来的其他Module共用),ModuleA,ModeleJsbridge和科大讯飞语音识别的module。 Android 组件化架构带来的好处和副作用网络上相关文章很多,在实际的项目中实施过程如果有使用Dagger&Dager.android ,可能会遇到一些麻烦,本Demo演示了如何处理。集成模式还是组建模式可以通过修改gradle.properties 的isModule 值,然后Sync Project 生效 但是删除了以前的ButterKnife,因为烦人的R 资源问题

Error,empty,Loading,timeout等通用的场景处理,一处Root注入,处处可用

项目中的toolbar几乎每个页面都要使用,每个Layout 都写?NONONO 进行网络请求时候的Error,empty,Loading,timeout等通用场景也是必须要处理的,Demo中一处Root注入,处处可用(Power by Loadsir)

关于Http网络请求 (Rxjava2+Retrofit2)

应该没有比Retrofit2 更好的了吧?不过api 不是restful 就需要再封装一下了,网路模块就是数据命脉,做好了 整个app 的结构会简化很多,结合Rxjava2不是更快哉;配合RxLifeCycle 控制生命周期; BaseObserver 中getErrorMsg(HttpException httpException) 方法中的处理和我们的Api 结构有关,请知悉。可以在Activity,fragment,service,broadcast 等发起http请求。

UI架构模型-MVP (结合rxjava&dagger2)

Android应用的UI架构模型经历了MVC,MVP 和 MVVM 的演变过程。MVC中View 层(Activity,Fragment/自定义的View) 可能代码会随着业务的复杂变得很大,里面不但要处理界面,还要处理很多业务逻辑里面承载了太多的东西,试试MVP吧, 已经是很流行的UI架构模型了。 使用MVP多关注代码结构、整体架构、可测试性、可维护性这四个方面

关于Dagger

以前在使用dagger2的时候感觉理解绕,而且也违背依赖注入的核心原则:一个类不应该知道如何实现依赖注入;它要求注射类型知道
其注射器; 即使这是通过接口而不是具体类型完成的。dagger.android 出来后还大大的减少了模版代码😄, 不用在需要Inject 的地方写xx.build().inject(this);

如果没有Dagger.android 我是不想使用dagger2的。写下面的类似代码实在太多了

我自己翻译的官方的链接:https://www.jianshu.com/p/879e0fe4ef36

public class FrombulationActivity extends Activity {
  @Inject Frombulator frombulator;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    
    // DO THIS FIRST. Otherwise frombulator might be null!
    ((SomeApplicationBaseType) getContext().getApplicationContext())
        .getApplicationComponent()
        .newActivityComponentBuilder()
        .activity(this)
        .build()
        .inject(this);
    // ... now you can write the exciting code
    
  }
}

关于热修复

阿里的HotFix&微信的Tinker android的热修复原理大体上分为两种,其一是通过dex的执行顺序实现Apk热修复的功能(Tinker),但是其需要将App重启才能生 效;其二是通过Native修改函数指针的方式实现热修复(HotFix)。

显然对于修复紧急BUG这个场景,阿里百川HotFix的更为合适,它更加轻量,可以在不重启的情况下生效,且对性能几乎没有影 微信Tinker、QQ空间超级补丁技术更多地把场景定位在发布小的新功能上,采用ClassLoader的模式,牺牲较高的性能代价去实现 类、资源新增或替换的功能。 阿里百川HotFix对应用本身做到无侵入,无性能损耗。

2017年6月阿里手淘推出了首个非侵入式移动热更新解决方案——Sophix。 在Android热修复的三大领域:代码修复、资源修复、SO修复方面,以及方案的安全性和易用性方面,Sophix都做到了业界领先,可是要收费

Rxjava2

谁用谁知道,勇敢的开始使用吧

JSBridge Module

简单的JSBridge,前端的对应代码放在Assert目录

关于单元测试

正在学怎么处理?

项目中包含的基本的通用模块

  • Dagger.android 大大的优化Dagger 在android 中的使用,
  • BaseActivity 中Toolbar 的处理
  • 进行网络请求时候的Error,empty,Loading,timeout等通用场景处理,Demo中一处Root注入,处处可用
  • 通用的BaseActivity 和BaseFragment的封装(跳转PV打点,事件打点,不放和base 无关的东西)
  • Http (Rxjava2+Retrofit2)的闭环处理
  • Proguard 混淆 打包优化
  • 混淆压缩打包优化 Proguard proguard-android-optimize 和 proguard-android 区别 ?
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]