Jetpack Compose+架构=优秀APP?

Posted 冬天的毛毛雨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jetpack Compose+架构=优秀APP?相关的知识,希望对你有一定的参考价值。

Jetpack Compose是android推出的新一代声明式UI框架,Compose库是用响应式编程的方式对View进行构建,用更少更直观的代码拥有更强大的功能,同时还能提高开发速度。随着alpha版本的发布,其API也逐渐稳定,此时谁先掌握这一项新技术,谁就能在这一行业中抢占先机。

但一些使用过Compose的小伙伴反馈说Compose的实现效果不好,其实是他们没有搭配框架使用,任何代码都是需要依托于框架实现的,使用框架可以降低程序之间的依赖性和耦合性,使重复性达到最高。

那么Compose应该在哪个架构中实现呢?

目前市面上主流的几个架构有MVP、MVC、MVVM,那么在 Compose 项目中哪种架构最合适呢?

首先我们先来了解一下各大架构的特点。

MVP

MVP主要特点是presenter与View之间通过接口通信,presenter通过调用View的方法实现UI的更新。Compose无法获得Presenter 持有一个 View 层对象的引用,因为用来创建 UI 的 Composable 必须要求返回 Unit。所以MVP这种依赖接口通信的解耦方式无法在 Compose 项目中使用。

(图片来源网络)

MVC

MVC重要特点就是两种分离:视图和数据模型的分离和视图和表现逻辑(Controller)的分离

**优点:**耦合性低;重用性高;生命周期成本低;部署快;可维护性高;有利软件工程化管理。

**缺点:**没有明确的定义;**不适合小型,中等规模的应用程序;**增加系统结构和实现的复用性;视图与控制器间的过于紧密的连接;视图对模型数据的低效率访问;一般高级的界面工具或构造器不支持模式

MVVM

MVVM(Model-View-ViewModel)其实就是MVC(Model-View-Controller)的增强版,本质上和MVC没有什么区别,只是代码的位置变动而已。

MVVM的的优点:

  • 低耦合性
  • 重复使用性
  • 独立开发性
  • 可测试性

(图片来源网络)

MVVM的出现解决了:

1.开发者大量调用相同的 DOM API时的繁琐,操作冗余
2.大量的DOM操作会降低页面的渲染性能,导致加载的速度变慢,影响用户体验。
3.不论是用户的操作导致Model发生变化,还是Model频繁发生变化,开发者都需要主动更新将变化的数据同步更新,这样工作既繁琐又很难维护多变的数据状态。

总的来说与Compose最为契合的架构还是MVVM。MVVM凭借着Controller清晰简洁、方便测试、开发解耦等优势深得各开发大佬的青睐。

为了帮助大家系统的学习,在这里给大家分享一份谷歌大佬整理的《Jetpack Compose 入门到精通》,希望可以帮助大家快速入门Compose

如需要参考学习的小伙伴可以直接去我GitHub查阅
https://github.com/733gh/Android-T3

第一章

初识 Jetpack Compose

1.为什么我们需要一个新的UI 工具?

2.Jetpack Compose的着重点
3.API 设计
4.Compose API 的原则
5.深入了解Compose

6.插槽API

第二章

Jetpack Compose构建Android UI

1.Android Jetpack Compose 最全上手指南

2.深入详解 Jetpack Compose | 优化 UI 构建

3.深入详解 Jetpack Compose | 实现原理

第三章

Jetpack Compose 项目实战演练

1.Jetpack Compose应用1
2.Jetpack Compose应用2
3.Jetpack Compose应用做一个倒计时器

4.用Jetpack Compose写一个玩安卓App
5.用Compose Android 写一个天气应用
6.用Compose快速打造一个“电影App”

由于篇幅有限,这里只能展示部分知识点,下面给大家展示目录

如需要参考学习的小伙伴可以直接去我GitHub查阅
https://github.com/733gh/Android-T3

对于Compose学习困难的小伙伴,希望这份《Jetpack Compose从入门到精通》可以帮助大家快速上手。

如需要参考学习的小伙伴可以直接去我GitHub查阅
https://github.com/733gh/Android-T3

以上是关于Jetpack Compose+架构=优秀APP?的主要内容,如果未能解决你的问题,请参考以下文章

随便嵌套?Jetpack Compose 到底优秀在哪里

Jetpack Compose 到底适合什么架构?

Android高级Jetpack架构组件+Jetpack compose强化实战

jetpack compose 开发架构选择探讨

Jetpack Compose 中的架构思想

jetpack compose 开发架构选择探讨