0
点赞
收藏
分享

微信扫一扫

Android真的推荐用MVI模式?MVI和MVVM有什么区别?

全称

1到底谁是“卷王”?

android自己卷自己,自己造一个MVI架构模式吗?

MVI架构模式是国内android开发者最近一两年造出来的吗?

看了很多MVI的资料,发现都提到cycle.js框架。android的mvi架构就是启发于cycle.js框架。

我们再看看Cycle.js框架是什么时候开始的,又是什么时候开始使用MVI模式的。

Cycle.js框架第一个预发版本:

https://github.com/cyclejs/cyclejs/releases?page=6

再结合官方文档来看,Cycle.js框架就是为了MVI架构模式而生的。

虽然不知道,Cycle.js框架是不是首个MVI模式框架。

但是从很多资料可以推测,MVI架构模式就是Cycle.js框架推广开来的。

而且早在2014年就已经在前端开发中用得飞起了。

想想2014年,咱们在干嘛?android在用什么架构模式。

正所谓,天下武功出少林啊。

我们android的很多技术,在前端早就用“烂了”。

2为什么要创造MVI模式?— MVI模式为了解决什么问题?

1、MVC也是MVI的爹

我们知道MVP和MVVM的爹都是MVC。MVI的爹也是MVC。

2、MVI在MVC思想的基础上,实现了响应式编程(Reactive)范式

MVC的Controller是命令是编程组件,不能直接实现响应式编程思想。

3、什么是响应式编程?

响应式编程范式(Reactive programming):

安卓官方的compose框架、微信小程序、Flutter、React、鸿蒙UI的开发框架,都是使用响应式开发框架。

这里就不拓展开来讲了,上面提到的任何一个开发框架,你只要会一个基本就能理解响应式编程范式。

如果一个都不会也没关系,现在不理解响应式编程也没关系,等你学会MVI就理解了,这种只有实际使用过才能深刻理解。

3我们要不要学,学不会怎么办?

1、我们要不要学?
2、学不会怎么办?

学不会也没关系,不要焦虑(尤其那些工作不久的小伙伴,学不会属于正常现象~)

MVI,咱第一遍学不会,就等2年,再学一遍~

2年后也没学会,那就再等2年~ 一定要有耐心~

如果还是学不会,那也没关系,因为MVI早晚也会过时~ 等过时了就不用学了~

哈哈哈~ 憋笑,正经Android可不会开玩笑的。

就像rxjava,当年有多少人死活学不会,android开发现在谁还学Rxjava?哈哈哈~

4android官方真的推荐用MVI模式?《应用架构指南》到底改了啥?

用张图来总结这次升级的核心思想:

旧版架构指南 - MVVM
升级版架构指南

新版架构指南在旧版的基础上,做了如下调整和建议:

data class NewsUiState(
val isSignedIn: Boolean = false,
val isPremium: Boolean = false,
val newsItems: List<NewsItemUiState> = listOf()
)

我们再看下官方新版架构图:

当然不仅仅MVVM可以改造成响应式开发范式,MVP也是可以的。

不信你看这篇blog:

https://www.raywenderlich.com/817602-mvi-architecture-for-android-tutorial-getting-started

5android应用架构,学习路线建议

1. 理解MVC架构模式的思想【MVC是其他架构模式之爹,他的思想是MVP、MVVM、MVI的基础,学会它是关键步骤~】。

2. 理解声明式编程、响应式编程、命令式编程的区别。

3. 学习kotlin的StateFlow组件,的使用:Sequence->Flow->StateFlow。

4. 学习ViewModel组件的使用(虽然不用ViewModel也能实现MVI架构,但是ViewModel还是值得学习)。

5. 理解DRY(Don’t Repeat Yourself)原则。

6. 理解MVVM(因为官方的MVI模式是基于MVVM的基础改造的~)。

7. 学习官方架构指南。

8. 实战。

前段时间收集整理了Android高工必备技能知识脑图和核心知识点笔记文档!既能够夯实底层原理核心技术点,又能够掌握普通开发者,难以触及的架构设计方法论。那你在工作中、团队里、面试时,也就拥有了同行难以复制的核心竞争力。

相关的一些知识点解析都已经做了收录整理上传至公号中:Android开发之家,大家可以自行访问查阅。

举报

相关推荐

0 条评论