背景
响应式编程便于单元测试,但其自身存在漏洞,MVI 即是来消除漏洞,
MVI 有一定门槛,实现较繁琐,且存在性能等问题,难免同事撂挑子不干,一夜回到解放前,
综合来说,MVI 适合与 Jetpack Compose 搭配实现 “现代化的开发模式”,
反之如追求 “低成本、复用、稳定”,可通过遵循 “单一职责原则” 从源头把问题消除。
MVI-Dispatcher 应运而生。
收藏或置顶 | 顺滑转场 | 删除笔记 |
---|---|---|
项目简介
笔者长期专注 “业务架构” 模式,致力消除敏捷开发过程中 “不可预期问题”。
在本案例中,我将为您展示,MVI-Dispatcher 是如何将原本 "繁杂易出错" 消息分发流程,通过 寥寥几行代码 轻而易举完成。
implementation 'com.kunminx.arch:mvi-dispatch:7.5.0'
一个完备的 “领域层” 消息分发组件,至少应满足以下几点:
1.内含消息队列,可暂存 “发送过且未消费” 的消息,
2.页面不可见时,队列暂存期间发来的消息,页面重新可见时,自动消费未消费的消息。
MVI-Dispatcher 应运而生,
此外,MVI-Dispatcher 改进和优化还包括:
1.可彻底消除 mutable 样板代码,一行不必写
2.可杜绝团队新手滥用 mutable.setValue( ) 于 Activity/Fragment
3.开发者只需关注 input、output 二处,从唯一入口 input 注入 Event,并于唯一出口 output 观察
4.团队新手在不熟 LiveData、UnPeekLiveData、SharedFlow、mutable、MVI 情况下,仅根据 MVI-Dispatcher 简明易懂 input-output 设计亦可自动实现 “响应式” 开发
5.可无缝整合至 Jetpack MVVM 等模式项目
MVI-Dispatcher 以 “备忘录场景” 为例,提供完成一款 “记事本软件” 最少必要源码实现,
故通过该示例,您还可获得内容包括:
1.整洁代码风格 & 标准命名规范
2.对 “响应式编程” 知识点深入理解 & 正确使用
3.AndroidX 和 Material Design 全面使用
4.ConstraintLayout 约束布局使用
5.十六进制复合状态管理最佳实践
6.优秀用户体验 & 交互设计
The one more thing is:
详见 GitHub 仓库 KunMinX/MVI-Dispatcher