Flutter和SwiftUI比较

news/2024/7/20 22:37:24 标签: flutter, swiftui, ios

0.语言

  • SwiftUI 毫无疑问是Swift语言编写,
    • 在2019年正式推出,目前最新是Swift 5.9 (2023年9月),由Apple公司维护和发行;
    • 该编程语言发明人已离职Apple。
    • 语言官网:https://developer.apple.com/swift/ 最好用Xcode编写代码
  • Flutter 一直使用Dart语言编写,
    • 在2017年正式推出,目前最新版本是Flutter v3.13, Dart v3.1 (2023年8月),由Google公司维护和发行;
    • 该编程语言发明人已离职Google。
    • 官网:https://flutter.dev/ 可使用vscode编写代码

1.页面布局

  • SwiftUI使用view为基础,以声明式(declarative syntax)语法布局用户界面;
  • Flutter使用widget为基础,以声明式(declarative syntax)语法布局用户界面,分为StatelessWidget和StatefulWidget

2.数据绑定

  • SwiftUI使用声明式属性修饰符@State绑定数据,一旦状态发生变化,则会重新计算一个视图界面里的首要body属性
  • Flutter,若界面不依赖数据更新,则使用StatelessWidget,如界面需要更新数据,则界面使用StatefulWidget

3.系统API调用

例如系统的摄像机、麦克风、GPS、陀螺仪,等等

  • SwiftUI直接使用,因为SwiftUI是基于iOS操作系统已存在的布局体系上建立;
  • Flutter使用plugin来调用,如果plugin没有,则可以自己通过原生代码封装;

4.编译和性能

  • SwiftUI,开发和生成期间编译都是AOT (Ahead-of-Time),编译时会将高级的Swift代码转换成低级的机器码,并对iPhone,iPad,MacOS做了深度优化;开发期间支持view在Xcode即可预览效果。
  • Flutter,开发期间编译使用JIT (Just-In-Time),支持hot-reload;部署生产期间使用AOT (Ahead-of-Time),为了对iOS和Android更高的ARM code优化。

5.渲染引擎

  • SwiftUI,是Apple的原生布局框架,高效的集成了Apple的硬件性能和简单易用的API。
  • Flutter,使用Skia引擎(Skia是一个开源的2D图形库,由C++编写),这是跨平台的,因此和某个具体平台无关,渲染时需要提交到硬件加速,可以开发丰富的和可交互式的UI。

http://www.niftyadmin.cn/n/5116952.html

相关文章

探索C++赋值运算符重载的内部机制:手把手教你精通

W...Y的主页 😊 代码仓库分享💕 🍔前言: 前一篇博客中我们已经了解并学习了初始化和清理模块中的构造函数与析构函数,还有拷贝复制中的拷贝复制函数,它们都是类与对象中重要的成员,今天我们要…

Linux内存管理 | 四、物理地址空间设计模型

我的圈子: 高级工程师聚集地 我是董哥,高级嵌入式软件开发工程师,从事嵌入式Linux驱动开发和系统开发,曾就职于世界500强企业! 创作理念:专注分享高质量嵌入式文章,让大家读有所得! …

Kubernetes 部署 kubeflow1.7.0

KubeFlow 是一个开源的项目,旨在为 Kubernetes 提供可组合、便携式、可扩展的机器学习技术栈。它最初是为了解决在 Kubernetes 上运行分布式机器学习任务所带来的挑战而创建的。Kubernetes 本身是一个容器平台,但在近年来,越来越多的公司开始…

PHP 预定义超全局变量 笔记/练习

预定义超全局数组变量 $_FILES 练习在最后 其他练习跟在每条笔记后 概述 预定义:预定义变量是 PHP 已定义,可以直接使用超全局:作用域是全局,可以在脚本的任何地方(包括函数内部、外部)都可以进行访问 常…

光流法动目标检测

目录 前言 一、效果展示 二、光流法介绍 三、代码展示 总结 前言 动目标检测是计算机视觉领域的一个热门研究方向。传统的方法主要基于背景建模,但这些方法对于光照变化、遮挡和噪声敏感。因此,研究人员一直在寻找更加鲁棒和有效的技术来解决这一问题。…

人工智能期末考试(刷题篇部分题有答案)

参考: 人工智能 经典考试试题及答案 - 百度文库 大学人工智能期末考试题库 - 百度文库 人工智能【期末复习题】 - 百度文库 人工智能期末试题及答案完整版 - 百度文库 一、选择题 AI的缩写是 Artificial Intelligence反演归结(消解)证明…

分布式应用全链路跟踪实现

随着分布式和微服务架构的发展,应用系统和服务组件之间的调用关系愈发复杂。如何精确的展示和快速定位服务单元之间的调用关系,实时观测应用系统整体链路情况,对应用系统的监控运维提出了挑战。本文简要介绍分布式应用链路跟踪的实现方式、Op…

Spring Security实现接口基于路径的动态权限控制

前言 在荔枝之前的一篇博客中,已经对Spring Security的鉴证授权的相关知识进行了梳理,弄清楚了为什么使用JWT以及用户登录后台执行的相关的鉴证授权的逻辑。在下面的文章中荔枝主要是补充梳理一下在真实的项目中如何使用Spring Security来实现接口动态权…