标准化开发模式

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 就是来解决这些问题

  • 综上

最后更新于