登录

去注册 忘记密码?

登录

注册

去登录

  • 扫码关注公众号
  • 发送“我爱安卓
  • 即可获取验证码

注册

解锁回答区域

  • 扫码关注公众号
  • 发送“我爱安卓

若你登陆,将永久解锁;
若未登录,仅本机解锁。

解锁回答区域

获取注册验证码

  • 扫码关注公众号
  • 发送“我爱安卓
  • 即可获取验证码

仿pixiv android客户端 kotlin + kotlin-coroutines + MVVM + DataBinding

ColorfulHorse   2020-12-24 00:39   收藏

badge
thanks for open source license by JetBrains

kotlin + MVVM + DataBinding + 协程 练手项目,仿pixiv android客户端。

目前基本功能已经完成,包括插画、漫画、小说列表;详情、评论 、搜索、排行榜、收藏、用户等相关功能;另外用vert.x做了个小服务提供热更新和浏览记录(原版会员功能)。 项目代码约1w行。

相关博客 https://www.jianshu.com/p/b1ad3f4a722e

MVVM解决了什么问题

  • 逻辑分离,ViewModel通过Model获取数据;View与ViewModel绑定,互相监听(ui/数据)变化更新自身;View层和Model层完全分离
  • 逻辑复用的问题,通过把一个大的页面拆分为若干独立模块,更加方便自由拆装。
    比如在一个作品详情页,需要显示部分评论,点击更多需要跳转到评论列表页显示更多评论,我们应该怎么做?
    显然我们应该拆分出一个评论模块作为详情页的子模块,然后和评论列表页共用ViewModel,这样很轻松就做到了逻辑复用。

有必要应用MVVM吗

就我个人目前的感觉来看,熟悉android开发的人自然能借此写出更好的代码(不需要mvvm也行),但是如果团队水平参差不齐意义也不大。另外databinding不利于调试的缺点也非常明显,不用它也未尝不可,希望能有更好用的库吧。
如果打算尝试一下mvvm,并不建议上手二次封装的重型库,比如提供什么文件模板一键生成的那类,它们往往会让你陷入泥沼。本身并不是那么复杂的东西,了解多了水到渠成而已。

2019-10-16

  • 基本功能完成

2019-10-24

  • gradle脚本替换为kotlin,改变依赖管理方式

2019-10-31

  • 集成tinker

2019-11-8

  • 升级到AndroidX

2019-12-31

  • 添加作品评论,修复若干bug

todo list

  • 用户页关注人列表
  • 加入屏蔽设置
  • commonDecoration添加新item底部分割线未刷新

项目地址:https://github.com/ColorfulHorse/fakepixiv