Skip to content

Latest commit

 

History

History
78 lines (65 loc) · 3.33 KB

Jetpack模块划分.md

File metadata and controls

78 lines (65 loc) · 3.33 KB

前言

Jetpack 系列的产品分为四个模块,基础模块,架构模块,行为模块,界面模块四个模块,其他模块的东西相对于来说比较简单容易上手,而且对于开发影响比较大的是架构这个模块的东西,所以希望把重心放在架构这一模块上,其他模块在之后推进。

模块列表(已包含优先级)

对于每一个模块都希望作者可以讲述出这基本的几点,对于每个模块需较为注意的点分别给出了。

  • 它是什么?
  • 它解决了什么问题?
  • 它怎么用?(这里其实就是组件的基本操作 如 Room基本的CRUD)
  • 它在真实开发过程中使用的案例是什么样的?
  • 它内部是怎么去做的?(这个可以放在文章最末出去讲解,但是不要大段源码贴上来,讲出最关键的几个就好,主要是思想!)
  • 总结,付源码地址(开源地址)

AndroidX

  • 首先并没有那么重要,东西也没那么多,但是对于以后的项目搭建是一个基础知识,所以作为先导篇先行讲述。
  • Android.* -> AndroidX 改变了什么?
  • 老项目迁移到AndroidX应该注意的事项。
  • 选择依赖库时我们应该怎么选择。

Lifecycle

  • 它是怎么和生命周期绑定在一起的?
  • 它的事件是如何分发到观察者的?

LiveData

  • 和 Rxjava 的对比,这里要注意一下 RxJava 不仅仅是 RxJava
  • 它怎么处理得内存泄漏以及空View?
  • 怎么感知的生命周期?
  • 怎么去除它本身得粘性?

ViewModel

  • 重点说明一下 VM 应该担负的责任和不应该去担负的责任
  • VM本身的复用
  • 一次性的数据怎么处理(可能是事件总线,或者一次Toast显示)
  • 如果要增加P层处理业务和 Repository(数据仓库)去获取数据,怎么去添加?

Data Binding

  • 业务和逻辑的分离边界怎么把握?什么代码写在 XML 里面,什么写在代码里面
  • 自定义属性

Room

  • 注解讲解
  • 数据库更新
  • 多表联查
  • 和其他组件配合使用, Rxjava LiveData

Paging

  • 什么情况下才用?(这里我觉得小数据加载完全没必要,只有一次性得到了大量数据的时候才用)
  • 多数据源
  • 多分页策略
  • DifffUtil 的配合使用
  • Rxjava 和 LiveData 的配合

WorkManager

  • 和 Service 的对比说明
  • 基本类的和方法
  • 任务约束条件
  • 链式任务
  • 真实 Demo 使用例子(网络请求,上传等操作)

Navigation

  • Api讲解一定要透彻。

待续。。。。

模块单独叙述

叙述模块的时候要可能需要注意几点,这样可以帮助没接触过的开发者有一个选择上手的过程,另外文章中的语言尽量是Kotlin毕竟要贴合另一个主题哒

- 是什么
- 做什么
- 为什么要用它们做? 其他可以不,优缺点对比。
- 怎么做

模块组合叙述

模块组合是比较有趣的事情,也是这个系列产品可以大大提高生产力的部分,这里我只简单的列出了几种搭配组合.

  • Data Binding + ViewModel + LiveData MVVM的标准架构
  • LiveData + Room 鸡儿好用的数据库
  • Paging + RecyclerView 大数据量下最便捷的分页列表

这个组合就很多了,这里希望可以多多讨论,碰撞出更多的组合来使用,但是不要为了组合和组合,一定要贴合真实开发环境