标准化开发模式
View-Controller 之 “解决一致性问题” 的架构组件
前言
被提前提上日程的 Jetpack
Lifecycle 的目标只有三个
Lifecycle 问世前的混沌世界
Lifecycle 为什么能解决这三个问题?
那 Lifecycle 具体是依赖什么机制运作的呢?
引入 Lifecycle 后的世界
综上
附注
Note 2020.2.27 加餐:
造成人们误认为 “页面 onPause 时不会收到 LiveData 通知” 的原因
Note 2021.2.21 加餐:
对 “一致性” 及 “一致性问题” 本质的解析
前言
被人云亦云者埋汰的 LiveData
LiveData 的目标只有三个
LiveData 问世前的混沌世界
LiveData 为什么能解决这三个问题?
Note 2020.11.11 加餐:
举一个关于 “唯一可信源” 通俗易懂的生活案例
Note 2020.2.17 加餐:
Fragment owner 最新设计的变更及缘由
Note 2020.10.14 加餐:
对 “唯一可信源” 概念本质的补充说明
Note 2020.4.11 加餐:
注意不要重复注册 LiveData
Note 2021.8.16 加餐:
关于 “观察者模式” 和 “发布订阅模式” 的区别
Note 2021.01.12 加餐:
匿名内部类有个 “重复订阅” 的坑需要注意
Note 2021.04.12 加餐:
对 “Note 2021.01.12 加餐” 的进一步说明
综上
Note 2020.7.15 加餐:
LiveData 数据倒灌 背景缘由全貌 独家解析
Note 2020.09.14 加餐:
对 “LiveData 不宜用在 Repository” 的解读
Note 2020.11.08 加餐:
对 EventBus 适用场景的解析
前言
被严重低估的 Jetpack ViewModel
ViewModel 的目标只有三个
ViewModel 问世前的混沌世界
ViewModel 为何能解决这三个问题?
Note 2020.8.9 加餐:
对作用域机制本质描述的简化重制
引入 ViewModel 后的世界
Note 2021.07.18 加餐:
ViewModel 的好处之一是解决了 “状态管理的一致性问题”
Note 2020.10.28 加餐:
解析 ViewModel 在实际开发中 “两大高频场景” 下的使用
需要明确的 3 个小细节
Note 2020.2.10 加餐:
对 SavedStated 被单独抽取维护的缘由的解析
Note 2021.2.4 加餐:
对 ViewModel 潜在的内存泄漏的解析
Note 2021.07.20 加餐:
ViewModel 业务能力外的场景及应对方案
综上
前言
被不假思索地抵制的 DataBinding
DataBinding 的目标只有三个
DataBinding 问世前的混沌世界
DataBinding 为什么能解决这三个问题?
造成人们误认为 DataBinding 是在 xml 中写 UI 逻辑的原因
DataBinding 结合 LiveData 的使用
Note 2019.12.12 加餐:
LiveData 和 ObservableField 的本质区别
Note 2020.10.21 加餐:
对 BindingAdapter 存在缘由的解析
BindingAdapter 在解决 Drawable 复用问题上的绝妙使用
Note 2020.4.26 加餐:
DataBinding 参数语法为何如此设计
Note 2020.5.6 加餐:
BindingMethod 与 BindingAdapter 的本质区别
Note 2020.12.11 加餐:
ViewBinding 的本质、与 DataBinding 的区别,以及适用场景
DataBinding 的注意事项 和 屡试不爽的排错技巧
Note 2020.8.3 加餐:
注意自定义视图包名的书写规范
Note 2020.7.27 加餐:
现有条件下解决 视图调用一致性问题 的最优解
综上
前言
Navigation 的目标主要有 3 个
Navigation 问世前的混沌世界
Navigation 为什么能解决这三个问题?
那 Navigation 具体是依赖什么机制运作的呢?
1.定义声明式编程协议
2.抽象和封装控制器代码
3.对作用域的补充说明
引入 Navigation 后的世界
综上
作为压轴分享的痛点解决方案
Note 2019.8.7 加餐:
作为额外附赠的使用说明
Note 2019.11.4 加餐:
对官方使用 replace 的缘由的理解 和 专属解决方案
Note 2020.3.31 加餐:
不建议通过复用 View 的方式优化 onCreateView 的缘由
Note 2020.07.16 加餐:
GitHub 上的 Navigation Add Hide 修改版的致命通病 和 独家解决方案
Note 2021.07.10 加餐:
Navigation 有什么难以替代的好处?
前言
面向标准化开发已成现实
本文的目标
Jetpack Lifecycle
Lifecycle 存在前的混沌世界
Lifecycle 为什么能解决上述这些问题?
Jetpack LiveData
LiveData 存在前的混沌世界
LiveData 为什么能解决上述这些问题?
LiveData 有个坑需要注意
Note 2020.07.09 加餐
Jetpack ViewModel
ViewModel 存在前的混沌世界
ViewModel 为什么能做到这几点?
Jetpack DataBinding
DataBinding 存在前的混沌世界
DataBinding 就是来解决这些问题
综上
最后更新于
这有帮助吗?