Skip to content
This repository has been archived by the owner on Aug 10, 2020. It is now read-only.
/ brick Public archive

【此git仓库已停止更新,其中的若干个模块将被拆分为多个仓库,详情请点开本人的仓库列表查看。】使用Kotlin Coroutine和ViewModel、LiveData等Android Jetpack组件搭建而成的MVP、MVVM架构框架。实现了业务代码的高复用性的核心特点,并且使用简单、代码简洁。 如果使用Retrofit作为网络请求工具,可以为Model层自动注入Retrofit Api实例,进一步精简代码。同样的,也可以注入Room数据库框架的Dao层接口。注:配合http模块食用,风味更佳!

Notifications You must be signed in to change notification settings

xiazunyang/brick

Folders and files

NameName
Last commit message
Last commit date

Latest commit

a993e5f · Aug 10, 2020

History

62 Commits
Jan 12, 2020
May 7, 2020
Dec 12, 2019
Jan 12, 2020
May 7, 2020
Dec 4, 2019
Dec 4, 2019
Sep 18, 2019
Dec 4, 2019
Dec 4, 2019
Oct 30, 2019
Dec 4, 2019
Dec 4, 2019
May 7, 2020
Sep 18, 2019
Aug 10, 2020
Dec 12, 2019
Sep 18, 2019
Sep 18, 2019
Sep 18, 2019
Dec 4, 2019

Repository files navigation

此git仓库已停止更新,其中的若干个模块将被拆分为多个仓库,详情请点击此处查看。

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

jitpack

模块功能介绍

  • 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抽象类(查看示例)。
    • AbstractHttpUtil中默认已集成下载文件的拦截器和转换器,当Retrofit Api的方法里面有用Tag注解标记的File类型的参数、并且返回结果指定为Response或ResponseBody或File类型时,作为下载请求来处理。查看示例
    • 提供常用的Date转换器和反序列化工具。
  • adapter
    • RecyclerView.Adapter辅助工具,完成Adapter仅需实现1个方法(查看示例)。
    • 另外提供列表差异对比并自动处理动画的工具。
  • chameleon
    • 可以动态切换主题颜色的工具,非常轻量级,侵入性低,切换时无卡顿。
      image
  • 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相关的扩展方法查看示例
  • stateful-layout
  • stateful-livedata
    • 提供一个在多线程的环境中方便向UI线程发送数据状态的LiveData。查看示例
    • 配合stateful-layout模块食用,风味更佳!查看示例

在自己的项目中使用

  • 在你的项目的根目录下的build.gradle文件中添加以下代码,如果已存在则忽略
allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}
  • 在你的子模块的build.gradle文件中添加以下依赖:
模块 依赖
adapter implementation 'com.github.xiazunyang.brick:adapter:1.6.1'
brick implementation 'com.github.xiazunyang.brick:brick:1.6.1'
chameleon implementation 'com.github.xiazunyang.brick:chameleon:1.6.1'
context-util implementation 'com.github.xiazunyang.brick:context-util:1.6.1'
delegate implementation 'com.github.xiazunyang.brick:delegate:1.6.1'
http implementation 'com.github.xiazunyang.brick:http:1.6.1'
result implementation 'com.github.xiazunyang.brick:result:1.6.1'
rx implementation 'com.github.xiazunyang.brick:rx:1.6.1'
stateful-layout implementation 'com.github.xiazunyang.brick:stateful-layout:1.6.1'
stateful-livedata implementation 'com.github.xiazunyang.brick:stateful-livedata:1.6.1'

About

【此git仓库已停止更新,其中的若干个模块将被拆分为多个仓库,详情请点开本人的仓库列表查看。】使用Kotlin Coroutine和ViewModel、LiveData等Android Jetpack组件搭建而成的MVP、MVVM架构框架。实现了业务代码的高复用性的核心特点,并且使用简单、代码简洁。 如果使用Retrofit作为网络请求工具,可以为Model层自动注入Retrofit Api实例,进一步精简代码。同样的,也可以注入Room数据库框架的Dao层接口。注:配合http模块食用,风味更佳!

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published