fashare2015 / Mvvm Juejin
Licence: mit
高仿"掘金Android App": databinding + kotlin + rx 的优雅实践。(持续打磨中~)
Stars: ✭ 403
Projects that are alternatives of or similar to Mvvm Juejin
Mvvmhabitcomponent
👕基于MVVMHabit框架,结合阿里ARouter打造的一套Android MVVM组件化开发方案
Stars: ✭ 857 (+112.66%)
Mutual labels: okhttp, mvvm, retrofit, databinding
Jetpackmvvm
🐔🏀一个Jetpack结合MVVM的快速开发框架,基于MVVM模式集成谷歌官方推荐的JetPack组件库:LiveData、ViewModel、Lifecycle、Navigation组件 使用Kotlin语言,添加大量拓展函数,简化代码 加入Retrofit网络请求,协程,帮你简化各种操作,让你快速开发项目
Stars: ✭ 1,100 (+172.95%)
Mutual labels: okhttp, mvvm, retrofit, databinding
Mvvmhabit
goldze: 本人喜欢尝试新的技术,以后发现有好用的东西,我将会在企业项目中实战,没有问题了就会把它引入到MVVMHabit中,一直维护着这套框架,谢谢各位朋友的支持。如果觉得这套框架不错的话,麻烦点个 star,你的支持则是我前进的动力!
Stars: ✭ 6,789 (+1584.62%)
Mutual labels: okhttp, mvvm, retrofit, databinding
Mvvmsmart
基于谷歌最新AAC架构,MVVM设计模式的一套快速开发库,整合ViewModel+Lifecycles+Navigation+DataBinding+LiveData+Okhttp+Retrofit+RxJava+Glide等主流模块,满足日常开发需求。使用该框架可以快速开发高质量、易维护的Android应用。 项目组会持续维护,请放心使用.欢迎Start并Fork交流.
Stars: ✭ 382 (-5.21%)
Mutual labels: okhttp, mvvm, databinding
AndroidGo
Android、Flutter 开发者帮助 APP。包含事件分发、性能分析、Google Jetpack组件、OkHttp、RxJava、Retrofit、Volley、Canvas绘制以及优秀博文代码案例等内容,帮助开发者快速上手!
Stars: ✭ 30 (-92.56%)
Mutual labels: retrofit, mvvm, okhttp
PlayAndroid
✌️✊👋玩安卓Mvvm组件化客户端,整合Jetpack组件DataBinding、ViewModel以及LiveData;屏幕适配✔️状态栏沉浸式✔️黑夜模式✔️,无数据、加载失败状态页;骨架屏、Koin依赖注入等
Stars: ✭ 193 (-52.11%)
Mutual labels: retrofit, mvvm, databinding
Awesomegithub
🔥Android Github客户端,基于组件化开发,支持账户密码与认证登陆。使用Kotlin语言进行开发,项目架构是基于JetPack&DataBinding的MVVM;项目中使用了Arouter、Retrofit、Coroutine、Glide、Dagger与Hilt等流行开源技术。
Stars: ✭ 128 (-68.24%)
Mutual labels: mvvm, retrofit, databinding
Viabus Architecture
让 Android 开发可以像流水线一样高效的,职责分离架构 ⚡ 不同于 MVP 的配置解耦,也不能和 似是而非 的 MVVM - Clean 同日而语。VIABUS 是世界范围内首个明确提出,通过职责分离,来真正实现 UI 和 业务并行开发的 Android 项目级开发架构和设计模式理念。
Stars: ✭ 485 (+20.35%)
Mutual labels: okhttp, mvvm, retrofit
Wandroid
首款适配玩Android、掘金、简书、CSDN、公众号文章黑夜模式,无广告,支持离线阅读,代码图片显示,关注内容本身,阅读体验升级。
Stars: ✭ 199 (-50.62%)
Mutual labels: mvvm, retrofit, databinding
Askme
Social media app to ask and answer user questions and interact with users
Stars: ✭ 16 (-96.03%)
Mutual labels: retrofit, mvvm, databinding
Weaponapp
一个尽量做到极致的集大成App,努力做到最好(开发阶段)——MVVM+Retrofit+RxJava+Small 插件化+单元测试+MD
Stars: ✭ 1,011 (+150.87%)
Mutual labels: okhttp, mvvm, databinding
Aachulk
️🔥️🔥️🔥AACHulk是以Google的ViewModel+DataBinding+LiveData+Lifecycles框架为基础, 结合Okhttp+Retrofit+BaseRecyclerViewAdapterHelper+SmartRefreshLayout+ARouter打造的一款快速MVVM开发框架
Stars: ✭ 109 (-72.95%)
Mutual labels: okhttp, mvvm, retrofit
Mentorship Android
Mentorship System is an application that matches women in tech to mentor each other, on career development, through 1:1 relations during a certain period of time. This is the Android application of this project.
Stars: ✭ 117 (-70.97%)
Mutual labels: mvvm, retrofit, databinding
AvengersChat
💙 Android sample Avengers chat application using Stream Chat SDK based on MVVM (ViewModel, Coroutines, Room, Hilt, Repository) architecture.
Stars: ✭ 350 (-13.15%)
Mutual labels: retrofit, okhttp, databinding
Newandroidarchitecture Component Github
Sample project based on the new Android Component Architecture
Stars: ✭ 229 (-43.18%)
Mutual labels: rx, mvvm, retrofit
WanAndroidJetpack
🔥 WanAndroid 客户端,Kotlin + MVVM + Jetpack + Retrofit + Glide。基于 MVVM 架构,用 Jetpack 实现,网络采用 Kotlin 的协程和 Retrofit 配合使用!精美的 UI,便捷突出的功能实现,欢迎下载体验!
Stars: ✭ 124 (-69.23%)
Mutual labels: retrofit, okhttp, databinding
TMDbMultiplatform
Step-by-step guide on Kotlin Multiplatform
Stars: ✭ 86 (-78.66%)
Mutual labels: mvvm, rx
LoginMVVM
Android login application with form validation and Database storage made using MVVM and Data binding
Stars: ✭ 19 (-95.29%)
Mutual labels: mvvm, databinding
高仿掘金App —— 基于 databinding
1. 项目初衷
不同于前端 vue、 react 的火热, 移动端的 databinding 好像不受待见。鉴于 vue、 react 都有各自成熟的生态圈,我希望通过这个项目打磨出一个简单易用的
databinding 组件库
。
1.1 data -> view,舍弃 Adapter
之前有不少前辈专门针对 RecyclerView 做了各自的封装,完全省去了 Adapter, 比如:
1.2 更进一步:view -> data -> view
在本项目中,你将会看到一个带有 下拉刷新
+ 上拉加载
的页面如何简化到10+行java代码
! see NotifyVM.kt
2. 模块概览
接口全抓自掘金app, 支持登录、注册(走的官方接口,并非假数据哦~)
- 已完成:
- 登录、注册:可以用自己的掘金帐号登录,或者临时注册一个
- 首页:热门推荐及文章列表,以及各个分类页面(Android、前端、产品。。。)
- 发现:一级页面,包括 banner、活动、沸点、热门文章
- 消息:完成消息列表
- 我的:一级页面,包括登录与未登录两个状态
- 文章详情页面: 文章 html 以及 下方的评论列表
- TODO:
- splash 页
- 第三方登录
- 发现页 - 搜索模块、活动、沸点的二级页面
- 我的 - 个人信息页,包括从用户头像跳转
- 我的 - 喜欢、收藏、设置等二级页面
- 发布文章页
- 收藏、评论、分享等其他功能
- 夜间模式
- ...
3. 效果图
4. 技术栈
- databinding
- kotlin
- rxJava + rxAndroid
- retrofit + okhttp
- glide
5. 关于 "10+行" 实现的分页列表
我们来看第3个tab - 消息列表: see NotifyVM.kt
// NotifyListVM.kt
@ResHolder(R.layout.item_notify_list) // item 布局
@HeaderResHolder(R.layout.header_notify) // header 布局
class NotifyListVM : TwoWayListVM<NotifyBean>() {
override val loadTask = { lastItem: NotifyBean? -> // 网络请求(refresh、loadMore 二合一)
ApiFactory.getApi(JueJinApis.Notify:: class.java)
.getUserNotification(lastItem?.createdAtString?: "")
.compose(Composers.handleError())
}
override val onItemClick = ArticleActivity.START_FROM_NOTIFY // 点击事件
override val headerData = Any()
}
框架中封装了TwoWayListVM
,我们的NotifyListVM
继承与它,并在布局中与RecyclerView
绑定在一起。
重点来了:
- view(pullToRefresh) -> data(list): 当view有动作(下拉刷新 or 上拉加载),框架会自行调用
loadTask
,然后更新TwoWayListVM.data
- data(list) -> view(RecyclerView): 而当
TwoWayListVM.data
发生变化,会自动触发RecyclerView
刷新。
然后,配合 kotlin 简洁的语法,我们实现了也许是史上最简洁???
的分页列表。
6. 项目持续打磨中,有兴趣给个star~
7. 参考
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].