当前位置: 首页 > article >正文

Flutter PK jetpack compose区别和选择

Flutter诞生于Chrome团队,是一帮做Web的开发做的跨平台框架,从最开始的设计初衷,就是指向了跨平台这条路,而Compose,则是诞生于Android团队,是为了解决当前View的架构体系不能再继续适应申明式编程的范式而做出的重构。

flutter和jetpack compose特点

语言方面:

flutter使用的是一种由Google创建的面向对象语言Dart,Jetpack Compose使用的是一种由JetBrains创建的静态类型编程语言kotlin。这两种语言都有各自的优缺点,对于初学者来说,Dart更容易学习,而且在运行速度和内存使用方面,也并不输Kotlin。

易用性方面

这两个框架都相对容易使用, jetpack compose具有声明式UI方法,这意味着我们可以使用Kotlin代码来构建UI,而不必担心底层的复杂性。但是,Flutter在没有桥接逻辑的情况下直接访问操作系统级组件并不简单,需要较强的专业操作。

作为一个使用过这两种框架的我来说,使用JetpackCompose来创建优美的用户界面要比使用Flutter容易些。不过flutter在跨平台开发方面确实有着无可比拟的优势,此外,当你想要快速建立一个应用程序的原型时,Flutter中的热加载功能是必不可少的。

Flutter 和 Compose解析

Flutter 和 Compose 的未来目标会比较一致,但是至少它们出现的初衷是不一样。

  • 首先 Compose 是 Jetpack 系列的全新 UI 库,理解下这点!Compose 是 Jetpack 系列的成员之一,所以可以被应用到 Android 界面开发中,所以你也可以选择不用,用不用都能开发 Android 的 UI 。
  • 然后再说 Compose 出生的目的:就是为了重新定义 Android 上 UI 的编写方式,为了提高 Android 原生的 UI 开发效率,让 Android 的 UI 开发方式能跟上时代的步伐。
  • 不管你喜不喜欢,声明式的界面开发就是如今的潮流,不管是 React 、SwiftUI 、Flutter 等都在表明这一点。
  • 而对于 Flutter 而言就是跨平台,因为 Flutter 没有自己的平台 ,有人说 Fuchsia 会是 Flutter 的家,但那已经属于后话,毕竟 Fuchsia 要先能养活自己。
  • 因为 Flutter 出生就是为了跨平台存在的全新 UI 框架,从底层到上层都是“创新”和“大胆”的设计,就选择 Dart 本身就是一项很“大胆”的决定,甚至在 Web 平台都敢支持选用 Canvaskit 的 WebAssembly 模式。

Flutter和Compose该学习哪一个?

Flutter和Compose并不冲突,我是原生开发,但并不妨碍我学习Flutter,学了Flutter,再看Compose,很快就能上手.Flutter屏蔽了不同操作系统底层的图形界面API,直接利用skia引擎进行图形界面的绘制,类似于提供一个可以在各个平台上运行的画板,让你在上面作画,因此能够做到同一套UI代码在全平台都能编译呈现同样的效果,合理使用某些包和插件甚至可以进行小部分跨平台的简单业务逻辑的开发。同样的,Compose的图形界面绘制部分也是由skia引擎完成。

至于自己适合哪一种,各自结合自身进行选择。《flutter》与《Compose》关于这些技术我也有一些文档,可以看我主业的分享。


http://www.kler.cn/a/156499.html

相关文章:

  • 大模型研究报告 | 2024年中国金融大模型产业发展洞察报告|附34页PDF文件下载
  • Towards Reasoning in Large Language Models: A Survey
  • 嵌入式硬件实战提升篇(一)-泰山派RK3566制作多功能小手机
  • 亲测有效:Maven3.8.1使用Tomcat8插件启动项目
  • git入门环境搭建
  • 记录使用documents4j来将word文件转化为pdf文件
  • 无人机智慧工地:助力工地管理的未来之选
  • 改进LiteOS中物理内存分配算法(详细实验步骤+相关源码解读)
  • ProgrammingError: nan can not be used with MySQL
  • 唯创知音WT588F02A-16S录音语音芯片在宠物喂食器中的应用:小芯片,大功能
  • 【python】——函数
  • 合成相机模型【图形学】
  • 机器人制作开源方案 | 校园餐具回收分类机器人
  • 群晖NAS配置之搭建WordPress个人博客站点
  • ❀My学习Linux命令小记录(7)❀
  • 【JVM系列】Class文件分析
  • 蓝桥杯每日一题2023.12.3
  • el-select多选multiple数据无法删除,回显成功,但无法编辑,选中和删除都没反应
  • C++类的定义和使用
  • 单个 Zip 文件体积超过 40GB
  • 二蛋赠书十期:《剪映短视频剪辑从入门到精通》
  • 天翼云:“百万IOPS”助推政企上云
  • 理解 Python 的 for 循环
  • 颠覆性语音识别:单词级时间戳和说话人分离
  • nodejs的安装和验证
  • 2023/11/30JAVAweb学习(postman,各种参数,统一响应数据,三层架构,分层解耦,bean组件扫描,Bean注入及解决方式)