VettelGank
Introduction: Vettel's Gank 是基于 gank.io 开放 Api 实现的一款非官方干货集中营客户端。
Tags:
Vettel's Gank 是一款完全使用 Kotlin 作为编程语言实现的 干货集中营 客户端。本项目展示了一些 Kotlin 的优秀语言特性,并且分别使用 MVP、MVVM 两种方式来实现;使用了 Jetpack 中的 Architecture Components 以及 AndroidX,你可以 Checkout 到不同分支来对比它们之间的实现区别。
Room、LiveData、ViewModel、Paging、DataBinding 这些库怎么结合起来使用?怎样用 AndroidX 取代 Support Library?传统 MVP 和基于 Jetpack 实现的 MVVM 有什么区别?这个 App 应该能给大家一点启发。欢迎 star/fork。
分支含义
- kotlin-mvp-base: 使用 Kotlin + MVP 实现的基础版本,此分支主要展示了 Kotlin 基础的使用,对于入门 Kotlin 比较友好
- kotlin-mvvm-jetpack: 使用 Kotlin + MVVM 实现,展示了 Android Jetpack 中架构组件的使用(包括:DataBinding、LiveData、ViewModel、 Room)
- kotlin-mvvm-jetpack-paging: 在 kotlin-mvvm-jetpack 基础上,增加 Paging 作为 App 分页库,可以更加优雅地加载无限列表
架构规范
- MVP: 参考 android-architecture 中的 todo-mvp-kotlin
- MVVM: 参考 android-architecture 中的 todo-mvvm-live-kotlin
效果
流畅的操作体验,请戳视频哦
http://cjw-blog.oss-cn-shenzhen.aliyuncs.com/vettel_gank.mp4