/brick

使用ViewModel、LiveData等Android Jetpack组件搭建而成的MVP、MVVM架构框架。实现了业务代码的高复用性的核心特点,并且使用简单、代码简洁。 如果使用Retrofit作为网络请求工具,可以为Model层自动注入Retrofit Api实例,进一步精简代码。同样的,也可以注入Room数据库框架的Dao层接口。注:配合http模块食用,风味更佳!

Primary LanguageKotlin

此项目是我个人在工作(Android开发)中不断总结、抽象而来,囊括了架构、网络、线程、UI等,每个功能都单独整理到一个模块之中,可以单独引用。看得上哪个模块,按需自取,更欢迎不吝赐教。

模块功能介绍

  • app
    • 示例工程,使用了以下所有的模块以及Kotlin协程、Room和Paging,极少的代码即可实现【Network->Database->UI】的软件架构。
  • brick
    • 兼容纯Java项目。
    • 利用ViewModel实现的、支持Kotlin协程的MVP、MVVM架构。
    • 模块内提供ViewModel抽象类,是原ViewModel的子类,可以在ViewModel中直接启动协程,协程拥有与ViewModel一致的生命周期。查看示例
    • 提供Kotlin扩展方法和静态工厂方法来创建ViewModel,可以向ViewModel的实例中传入参数。使用示例
    • 在创建Model时,可以通过构造方法注入Retrofit Api接口实例和Room Dao的接口实例,并且可以通过Kotlin代理特性,精简Model类中的代码。查看使用示例
  • http
    • 兼容纯Java项目。
    • HTTP网络工具,是对Retrofit2.6.1的再封装,请在自己的工程中实现AbstractHttpUtil抽象类(查看示例)。
    • 提供常用的Date转换器和反序列化工具,重写
  • adapter
    • RecyclerView.Adapter辅助工具,完成Adapter仅需实现1个方法(查看示例)。
    • 另外提供列表差异对比并自动处理动画的工具。
  • result
    • 能够精简在申请权限时和Activity之间传递参数和回传参数的代码。
  • rx
    • 当使用RxJava时,让数据流与ViewModel的生命周期绑定,数据流将在ViewModel被弃用时停止订阅。
  • context-util
    • 提供全局获取Context和Application的扩展方法、dp/sp计算的相关扩展方法以及Toast的相关扩展方法。需要通过initContext方法进行初始化。
  • delegate
    • 提供属性代理的工具类。
    • SharedPreferences属性读写代理。 查看示例
    • Activity intent extra属性只读代理。查看示例
    • Fragment arguments bundle属性只读代理。
  • starter
    • start系列的扩展方法以及Intent相关的扩展方法查看示例
  • status-layout
  • status-livedata
    • 提供一个在多线程的环境中方便向UI线程发送数据状态的LiveData。查看示例
    • 配合status-layout模块食用,风味更佳!查看示例