汽車之家app下載最新版舟山百度seo
0.語言
- SwiftUI 毫無疑問是Swift語言編寫,
-
- 在2019年正式推出,目前最新是Swift 5.9 (2023年9月),由Apple公司維護(hù)和發(fā)行;
-
- 該編程語言發(fā)明人已離職Apple。
-
- 語言官網(wǎng):https://developer.apple.com/swift/ 最好用Xcode編寫代碼
- Flutter 一直使用Dart語言編寫,
-
- 在2017年正式推出,目前最新版本是Flutter v3.13, Dart v3.1 (2023年8月),由Google公司維護(hù)和發(fā)行;
-
- 該編程語言發(fā)明人已離職Google。
-
- 官網(wǎng):https://flutter.dev/ 可使用vscode編寫代碼
1.頁面布局
- SwiftUI使用view為基礎(chǔ),以聲明式(declarative syntax)語法布局用戶界面;
- Flutter使用widget為基礎(chǔ),以聲明式(declarative syntax)語法布局用戶界面,分為StatelessWidget和StatefulWidget
2.數(shù)據(jù)綁定
- SwiftUI使用聲明式屬性修飾符
@State
綁定數(shù)據(jù),一旦狀態(tài)發(fā)生變化,則會(huì)重新計(jì)算一個(gè)視圖界面里的首要body
屬性 - Flutter,若界面不依賴數(shù)據(jù)更新,則使用
StatelessWidget
,如界面需要更新數(shù)據(jù),則界面使用StatefulWidget
3.系統(tǒng)API調(diào)用
例如系統(tǒng)的攝像機(jī)、麥克風(fēng)、GPS、陀螺儀,等等
- SwiftUI直接使用,因?yàn)镾wiftUI是基于iOS操作系統(tǒng)已存在的布局體系上建立;
- Flutter使用plugin來調(diào)用,如果plugin沒有,則可以自己通過原生代碼封裝;
4.編譯和性能
- SwiftUI,開發(fā)和生成期間編譯都是
AOT (Ahead-of-Time)
,編譯時(shí)會(huì)將高級(jí)的Swift代碼轉(zhuǎn)換成低級(jí)的機(jī)器碼,并對(duì)iPhone,iPad,MacOS做了深度優(yōu)化;開發(fā)期間支持view在Xcode即可預(yù)覽效果。 - Flutter,開發(fā)期間編譯使用
JIT (Just-In-Time)
,支持hot-reload;部署生產(chǎn)期間使用AOT (Ahead-of-Time)
,為了對(duì)iOS和Android更高的ARM code優(yōu)化。
5.渲染引擎
- SwiftUI,是Apple的原生布局框架,高效的集成了Apple的硬件性能和簡(jiǎn)單易用的API。
- Flutter,使用Skia引擎(Skia是一個(gè)開源的2D圖形庫,由C++編寫),這是跨平臺(tái)的,因此和某個(gè)具體平臺(tái)無關(guān),渲染時(shí)需要提交到硬件加速,可以開發(fā)豐富的和可交互式的UI。