All Projects → xiazunyang → Brick

xiazunyang / Brick

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

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Brick

Jetpackmvvm
🐔🏀一个Jetpack结合MVVM的快速开发框架,基于MVVM模式集成谷歌官方推荐的JetPack组件库:LiveData、ViewModel、Lifecycle、Navigation组件 使用Kotlin语言,添加大量拓展函数,简化代码 加入Retrofit网络请求,协程,帮你简化各种操作,让你快速开发项目
Stars: ✭ 1,100 (+909.17%)
Mutual labels:  mvvm, retrofit, wanandroid
Wandroid
首款适配玩Android、掘金、简书、CSDN、公众号文章黑夜模式,无广告,支持离线阅读,代码图片显示,关注内容本身,阅读体验升级。
Stars: ✭ 199 (+82.57%)
Mutual labels:  mvvm, retrofit, wanandroid
Playa
玩Android(http://www.wanandroid.com/) APP(MVP + RxJava2 + Retrofit2 + Dagger2)
Stars: ✭ 93 (-14.68%)
Mutual labels:  retrofit, wanandroid
Viabus Architecture
让 Android 开发可以像流水线一样高效的,职责分离架构 ⚡ 不同于 MVP 的配置解耦,也不能和 似是而非 的 MVVM - Clean 同日而语。VIABUS 是世界范围内首个明确提出,通过职责分离,来真正实现 UI 和 业务并行开发的 Android 项目级开发架构和设计模式理念。
Stars: ✭ 485 (+344.95%)
Mutual labels:  mvvm, retrofit
Mvvmhabitcomponent
👕基于MVVMHabit框架,结合阿里ARouter打造的一套Android MVVM组件化开发方案
Stars: ✭ 857 (+686.24%)
Mutual labels:  mvvm, retrofit
Mvvm Juejin
高仿"掘金Android App": databinding + kotlin + rx 的优雅实践。(持续打磨中~)
Stars: ✭ 403 (+269.72%)
Mutual labels:  mvvm, retrofit
Wanandroid
🏄 基于Architecture Components dependencies (Lifecycles,LiveData,ViewModel,Room)构建的WanAndroid开源项目。 你值得拥有的MVVM快速开发框架:https://github.com/jenly1314/MVVMFrame
Stars: ✭ 410 (+276.15%)
Mutual labels:  mvvm, wanandroid
Mvvmhabit
goldze: 本人喜欢尝试新的技术,以后发现有好用的东西,我将会在企业项目中实战,没有问题了就会把它引入到MVVMHabit中,一直维护着这套框架,谢谢各位朋友的支持。如果觉得这套框架不错的话,麻烦点个 star,你的支持则是我前进的动力!
Stars: ✭ 6,789 (+6128.44%)
Mutual labels:  mvvm, retrofit
WanAndroid
💪 WanAndroid应用,持续更新,不断打造成一款持续稳定, 功能完善的应用
Stars: ✭ 50 (-54.13%)
Mutual labels:  retrofit, wanandroid
Awesome Android Kotlin Apps
👓 A curated list of awesome android kotlin apps by open-source contributors.
Stars: ✭ 1,058 (+870.64%)
Mutual labels:  mvvm, retrofit
Tdcapp
Sample app which access the TDC (The Developer's Conference) REST API.
Stars: ✭ 55 (-49.54%)
Mutual labels:  mvvm, retrofit
Githubfollows
A demo project based on MVVM architecture and material design & animations.
Stars: ✭ 272 (+149.54%)
Mutual labels:  mvvm, retrofit
Kotlinwanandroid
Kotlin+模块化+响应式+MVVM 实现的风格简约、代码优雅的WanAndroid客户端
Stars: ✭ 265 (+143.12%)
Mutual labels:  retrofit, wanandroid
Cloudreader
🗡️ 云阅:一款基于网易云音乐UI,使用玩Android Api,Retrofit2 + RxJava2 + Room + MVVM-databinding架构开发的Android客户端
Stars: ✭ 4,611 (+4130.28%)
Mutual labels:  mvvm, wanandroid
AndroidGo
Android、Flutter 开发者帮助 APP。包含事件分发、性能分析、Google Jetpack组件、OkHttp、RxJava、Retrofit、Volley、Canvas绘制以及优秀博文代码案例等内容,帮助开发者快速上手!
Stars: ✭ 30 (-72.48%)
Mutual labels:  retrofit, mvvm
Countries
An example Android app using Retrofit, Realm, Parceler, Dagger and the MVVM pattern with the data binding lib.
Stars: ✭ 616 (+465.14%)
Mutual labels:  mvvm, retrofit
Androcat
AndroCat is a GitHub client for Android phones and provides to user GitHub user interface like how they used to.
Stars: ✭ 87 (-20.18%)
Mutual labels:  mvvm, retrofit
Askme
Social media app to ask and answer user questions and interact with users
Stars: ✭ 16 (-85.32%)
Mutual labels:  retrofit, mvvm
PlayAndroid
✌️✊👋玩安卓Mvvm组件化客户端,整合Jetpack组件DataBinding、ViewModel以及LiveData;屏幕适配✔️状态栏沉浸式✔️黑夜模式✔️,无数据、加载失败状态页;骨架屏、Koin依赖注入等
Stars: ✭ 193 (+77.06%)
Mutual labels:  retrofit, mvvm
Wanandroid
Jetpack MVVM For Wanandroid 最佳实践 !
Stars: ✭ 1,004 (+821.1%)
Mutual labels:  mvvm, wanandroid

此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'
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].