美文网首页程序人生
组件化项目简介

组件化项目简介

作者: 为自己代颜_ | 来源:发表于2019-03-25 15:54 被阅读0次

    组件化

    • app:主项目
    • home,product,mall,account分别对应项目四个tab
    • productDetail是home和product公用的产品详情页
    • basilib:基础类库,一些公共的第三方包放在这里
    • basicres:公共资源,BaseActivity,BaseFragment,BaseApplication,图片等
    • remote:网络
    • mediator:中介者,组件之间通过中介者来通讯

    组件之间的组合

    在每个组件的gradle.properties可以设置这个组件依赖了哪些组件

    如app的gradle.properties
    product的gradle.properties

    关于组件化详细内容参考

    https://github.com/luojilab/DDComponentForAndroid

    Dagger2

    Dagger2是一个依赖注入的框架,目的是为了解耦,达到控制反转的目的

    项目中di包里的都是Dagger2的内容

    官方地址:

    https://github.com/google/dagger

    网络

    网络使用了okhttp + retrofit2 + rxjava2

    官网

    rxlifecycle

    rxJava存在一个普遍的问题就是有可能会发生内存泄露(比如从页面A跳转到页面B,页面A应该及时取消订阅),所以需要用到rxlifecycle

    如com.madai.remote.repository.ProductRepository中的bindUntilEvent

    项目架构

    业务组件(如home,product等)的设计参照了看这里

    并且做了一些精简

    考虑到本项目对于数据持久化的需求不是很大,所以去掉了ROOM(本地数据库)

    使用到了LiveData,ViewModel

    第三方库的引入

    所有第三方库的内容都写在versions.gradle,以保证各个组件引用的库版本一致

    Databinding

    Databinding用于界面和数据的绑定

    官方文档: https://developer.android.com/topic/libraries/data-binding/index.html

    相关文章

      网友评论

        本文标题:组件化项目简介

        本文链接:https://www.haomeiwen.com/subject/ofhbvqtx.html