为什么要使用 Compose 来开发 Android ?
创始人
2024-04-30 20:38:05
0

1. Compose诞生背景

近年来,以React为代表的声明式UI开发思想席卷了整个前端开发领域。客户端与前端在产品形态上非常相似,也希望借鉴这种全新的开发思想来提升客户端UI的开发效率和体验。在这个大背景下,AndroidiOS平台相继发布了自己的声明式UI开发框架。而在Android中的明式UI开发框架就是Compose

2. Compose的优势

2.1 官方的描述

先来看下官网上的描述 :
Jetpack Compose 是推荐用于构建原生 Android 界面的新工具包。它可简化并加快 Android 上的界面开发,使用更少的代码、强大的工具和直观的 Kotlin API,快速打造生动而精彩的应用。

在这里插入图片描述
是不是有点抽象 ? 所以我又重新罗列了一下Compose的优势,如下

2.2 声明式UI

不需要手动刷新数据,只需描述界面,Compose会负责处理剩余的工作。应用状态变化的时候,界面会自动更新。这是Compose极其重要的一个特性。

2.2.1 声明式UI和命令式UI的区别

声明式 UI 就是告诉框架做什么具体怎么做我们不关心
命令式 UI 就是命令框架怎么做,最终达到我们做什么的目的。

相当于声明式UI是房地产包工头,建房子得亲自下场,指挥建什么,怎么建。
而命令式UI是房地产老板,只需要关心建几栋,建在哪里,建成什么样就可以了,具体的建造过程不需要关心。

声明式 UI 其实是将“怎么做”这部分做了封装,让我们专注于“做什么”

2.3 去除了XML

使用 xml + Kotlin (Java) 开发,不可避免地涉及到两种语言的交互,就会有局限性,比如布局id要生成R资源ID,用java要找到View,进行为空判断啥的,所以才会出现诸如Butter KnifeDataBindingViewBinding之类的库。

Compose 只使用 Kotlin 一种语言,用 Kotlin 来代替 xml 文件写布局,代码会自由和方便得多。完全解除了混合写法(xml + Java、Kotlin)的局限性,再也不需要 findViewById

2.4 精简代码数量

作为代码开发者,需要测试和调试的代码会更少,出现 bug 的可能性也更小,可以专注于解决手头的问题;作为审核人员或维护人员,需要阅读、理解、审核和维护的代码更少

  • 精简代码数量 ,能减少bug的出现
  • 实现同样的功能只需要以前一半的代码量
  • 无论要构建什么,都很简洁且易于维护

2.5 超强兼容性

Compose 与所有的现有代码兼容:可以从 View 调用 Compose 代码,也可以从 Compose 调用 View

  • 兼容现有的所有代码,Compose 能够与现有 View 体系并存,这意味着可实现渐进式替换
  • 大多数常用库(如 NavigationViewModelKotlin 协程)都适用于 Compose
  • 最低兼容到 API 21,支持市面上绝大多数Android设备的使用。

具体详见我的另外一篇博客 : Compose 和 Android 传统View 互相调用

2.6 加速开发

Compose 为我们提供了很多开箱即用的API,内置对 Material Design、深色主题、动画等的支持,
可以节省不少精力,能够让我们快速创建精美的应用。

  • 得益于良好的架构分层,可以基于任意一层进行构建。
  • 利用 Compose,可以轻松快速地通过动画让应用变得生动有趣
  • 借助全面的 Android Studio 支持以及实时预览等功能,可以更快地迭代和交付代码

2.6.1 Compose模块分层

Compose从上到下分为四层,每一层都可以单独使用,在不同维度提供能力支持。

Compose模块说明
Material此模块位于最上层,基于Material Design系统实现的各种Composable
Foundation此模块为UI提供了一些基础的Composable,例如Row、Column、lazyColumn等布局类UI,以及特定手势识别等,这些基础Composable在很多平台都可以通用
UI此模块构筑了上层Composable运行的基础,例如Composable的测量、布局、绘制、事件处理以及Modifier管理等
Runtime此模块提供了基本的对UI树的管理能力,如果只需要Compose的树管理能力,而不需要其UI,则可以直接基于此层进行构建

这意味着未来一定会出现很多Compose的UI主题库,基于Foundation来实现,类似于 前端的UI库,等Compose生态成熟后,就会有很多的UI主题库可以使用啦。

3. 小结

可以这么说,Compose 就是 Android 的未来,而这个未来即将到来或者说已经到来。对于Android开发者来说是不得不学的了。所以还等啥 ? 快上车 !

相关内容

热门资讯

安卓系统自带的网页,功能与特色... 你有没有发现,每次打开安卓手机,那熟悉的系统界面里总有一个默默无闻的小家伙——安卓系统自带的网页浏览...
美咖云系统安卓版,开启智能生活... 你有没有发现,最近手机上多了一个叫“美咖云系统安卓版”的小家伙?它就像一个魔法师,轻轻一点,就能让你...
安卓系统推荐最好的手机,盘点性... 你有没有想过,拥有一部性能卓越的手机,就像是拥有了移动的宝藏库?在这个信息爆炸的时代,一部好手机不仅...
安卓11系统能精简吗,释放潜能 你有没有发现,随着手机越来越智能,系统也越来越庞大?安卓11系统,这个最新的操作系统,是不是也让你觉...
安卓自动重启系统软件,揭秘原因... 手机突然自动重启,是不是感觉整个人都不好了?别急,今天就来和你聊聊这个让人头疼的安卓自动重启系统软件...
苹果手机x刷安卓系统,探索安卓... 你有没有想过,你的苹果手机X竟然也能刷上安卓系统?是的,你没听错,就是那个一直以来都和我们苹果手机X...
安卓系统智商低吗,智商低下的真... 你有没有想过,为什么安卓系统的智商总被调侃得好像有点低呢?是不是觉得它总是慢吞吞的,有时候还犯点小错...
安卓系统手机联系人,揭秘你的社... 你有没有发现,手机里的联系人列表就像是一个小小的社交圈呢?里面藏着我们的亲朋好友、工作伙伴,甚至还有...
安卓系统免费铃声下载,打造个性... 手机里那首老掉牙的铃声是不是让你觉得有点out了呢?别急,今天就来给你支个招,让你轻松给安卓手机换上...
安卓系统用哪个桌面好,打造个性... 你有没有发现,手机桌面可是我们每天都要面对的“脸面”呢?换一个好看的桌面,心情都能跟着好起来。那么,...
虚拟大师是安卓10系统,功能与... 你知道吗?最近在手机圈里,有个新玩意儿引起了不小的轰动,那就是虚拟大师!而且,更让人惊喜的是,这个虚...
安卓系统与苹果优缺点,系统优缺... 说到手机操作系统,安卓和苹果绝对是两大巨头,它们各有各的特色,就像两道不同的美味佳肴,让人难以抉择。...
安卓win双系统主板,融合与创... 你有没有想过,一台电脑如果既能流畅运行安卓系统,又能轻松驾驭Windows系统,那该有多爽啊?没错,...
安卓系统可精简软件,轻松提升手... 你有没有发现,手机里的安卓系统越来越庞大,软件也越装越多,有时候感觉手机就像个“大肚子”,不仅运行速...
安卓系统基于linux的代码,... 你有没有想过,那个陪伴你每天刷抖音、玩游戏、办公的安卓系统,其实背后有着一套复杂的基于Linux的代...
苹果和安卓的拍照系统,谁更胜一... 你有没有发现,现在手机拍照已经成为我们生活中不可或缺的一部分呢?无论是记录生活的点滴,还是捕捉美丽的...
苹果和安卓系统不同吗,系统差异... 你有没有想过,为什么你的手机里装的是苹果的iOS系统,而朋友的手机却是安卓系统呢?这两种系统,看似都...
安卓系统有多少级,揭秘其多级架... 你有没有想过,那个陪伴我们日常生活的安卓系统,它其实有着丰富的层级结构呢?没错,就是那个让我们的手机...
华为鸿蒙系统与安卓的,技术融合... 你知道吗?最近科技圈可是炸开了锅,华为鸿蒙系统与安卓的较量成为了大家热议的话题。这不,今天我就来给你...
什么安卓手机是苹果系统,搭载苹... 你有没有想过,为什么有些人宁愿花大价钱买苹果手机,而有些人却对安卓手机情有独钟呢?其实,这个问题背后...