flutter穩定支持windows,開發者做好準備了嗎?

flutter穩定支持windows,開發者做好準備了嗎?

flutter是由谷歌開發的開源移動ui框架,可快速在不同平台上構建高質量原生用戶界面。

最后更新 2022/2/7 下午10:24
技术视野
预计阅读 8 分钟
分类
Flutter
标签
Flutter 開源

flutter 是由谷歌開發的開源移動 ui 框架,可快速在不同平台上構建高質量原生用戶界面。flutter 支持現有的所有代碼,在世界各地受到越來越多開發者的追捧。到目前為止,全球已發布了近 50 萬個使用 flutter 的應用程式,其中包括來自字節跳動等大型公司的應用程式,以及谷歌三十個團隊的應用程式。據 statista 和 slashdata 的分析師表示,flutter 是 2021 年最受歡迎的跨平台 ui 工具。

整理|郭露

出品|csdn(id:csdnnews)

2 月 4 日,flutter 穩定版 2.10 重磅推出,該版本在春節期間發布,距離上次的發布還不到兩個月。但即使在這麼短的時間內,我們已經關閉了 1843 個 issues 以及來自全球 115 名貢獻者的 1525 個 pr。此次版本更新包括 flutter 對 windows 的重大支持更新、部分性能改進、不同平台的新增功能以及一些工具的改進。

图源自Flutter

flutter 2.10 新特性一覽

1. 性能改進

flutter 2.10 版本初步支持由 flutter 社區成員 knopp 提供的繪製髒區管理功能。他為 ios/metal 上的單個髒區域啟用了選擇性重繪。這將大大縮短部分基準測試中的九十分位和九十九分位的光柵化時間,並將這些基準測試中的 gpu 占用率從 90%以上降低到 10%以下。

除此之外,該版本還對圖片格式進行了優化。開發者可以更有效地調節圖層透明度。基準測試中每幀光柵化時間至少縮短了三分之一。

在 profile 和 release 模式下,dart 代碼以 aot 方式進行編譯。這段代碼解鎖了許多編譯器優化和激進的 tree-shaking。但是由於類型流分析必須涵蓋整個程式,因此對性能有些影響。2.10版本帶來了更快的類型流分析實現。在基準測試中,flutter 應用程式的總體構建時間縮短了約 10%。

2. ios 更新

除了性能改進之外,flutter 2.10 版本還在各平台增加了不同的增強功能。例如開發者 luckysmg 帶來了流暢的 ios 鍵盤動畫、ios 相機插件的穩定性提高,以及為 64 位架構的 ios 系統加入了減少內存使用的新功能--壓縮指針。

3. android 更新

同時 flutter 2.10 版本針對 android 進行了改進。當開發者創建新應用時,flutter 可支持最新版本的 android,即 android 12。此外,在此版本中,我們啟用了 multidex。如果開發者使用的是低於 21 的 android sdk 版本,並超過了 64k 方法數限制,只需將 --multidex 傳遞給 flutter build appbundle 或是 flutter build apk ,就能夠支持 multidex。

4. web 更新

flutter 版本中同樣包括對於 web 的改進。在之前的版本中,當滑鼠拖動到多行文本框的邊緣時,它不會同步滾動。而在 2.10 版本中,選擇光標拖出了文本框後,文本框會進行滾動,瀏覽並選中對應的內容。該功能適用於 wed 和桌面應用程式。

5. Material 3

flutter 2.10 是向 material 3 過渡的開始,其中包括從單一顏色生成成整個配色方案的功能。

開發者可以使用任意顏色創建新的 colorscheme 類型。themedata 的構造函數還包含一個新的 colorschemeseed 參數,可以直接從顏色生成主題。此外,該版本包括了 themedata.usematerial3 的參數,可將 widget 切換到新的 material 3 外觀。 flutter 還增加了 1028 個新 material 圖標。

图源自Flutter

除上述功能以外,flutter 2.10 還在集成測試、devtools 以及 vscode 等進行了改進,並徹底移除了 dev 渠道以及對 ios 9.3.6 支持。

對於此次版本更新,最引人關注的莫過於穩定支持 windows 應用開發,對此,flutter 產品經理蒂姆·斯內斯(tim sneath)發文進行了詳細解讀,讓我們一起來看一下。

已為 windows 做好準備的 flutter

图源自Flutter官网

flutter 旨在創建高效跨平台軟體框架,在過去幾年取得了長足發展。flutter 可為 android、ios、linux、windows、macos 以及網頁開發應用,併兼容現有的所有代碼。受到了全球各地區開發者的支持信賴。

谷歌表示:“今天標誌著這一願景的重大擴展,首次發布了對 windows 作為應用目標的支持,使 windows 開發者能夠受益於移動開發者一直享有的同樣的生產力和力量”。

為實現這一目標,谷歌一直致力於 flutter 開發。五年前,谷歌曾推出 flutter alpha,該版本大大提高了行動作業系統的開發速度。flutter 應用程式可使用 dart 編寫,實現了在 android、ios、windows、macos 和 linux、web 以及嵌入式設備上運行。

然而, 要想實現 flutter 桌面支持並非易事,必須重新針對 windows 進行設計,桌面應用需要兼容鍵盤和滑鼠等不同硬體以及不同大小的屏幕,同時對於輸入法、視覺樣式等也有不同的需求,還要支持文件系統選擇器以及 windows 註冊表等數據存儲的各種內容。

正如 flutter 對 android 和 ios 的支持一樣,flutter 的 windows 結合了 dart 框架以及 c++ 引擎。windows 和 flutter 通過嵌入層進行通信,該嵌入層承載 flutter 引擎並負責翻譯和分發 windows 信息。flutter 與 windows 可將 ui 繪製到屏幕上,並與現有的 windows 模式相配合。

图源来自Flutter和Dart产品经理博客

開發者可在 windows 上使用 flutter 框架的所有功能,並通過 dart 或 c++ 編寫的平台插件與 win32、com 和 windows runtime api 進行通信,同時 flutter 團隊還對許多常用插件進行調整以支持 windows,其中包括 camera、file_picker 以及 shared_preferences 。更重要的是,flutter 社區中還添加了大量對其他包的 windows 支持,其中涵蓋了從 windows 任務欄集成到串行埠訪問的所有內容 。

已有數百個包支持為 windows 構建的 flutter 應用程式

图源来自Flutter

對於完全定製的 windows ui,您還可以使用包 fluent_ui 來 flutter_acrylic 創建一個可以精美地表達 microsoft fluent 設計系統的應用程式。使用該 msix 工具,您可以將您的應用程式包裝在一個安裝程式中,該安裝程式可以上傳到 windows 上的 microsoft store。

總的來說,flutter 2.10 的推出實現了在 windows 上的快速運行,並且可以傳輸到其他桌面或行動裝置以及 web。以下是早期示例:

图源来自Flutter

图源来自Flutter

該版本推出後,微軟 windows 開發者平台公司副總裁 kevin gallo 表示:”我們很高興看到 flutter 實現對創建 windows 應用程式的支持。作為一個開放平台,windows 歡迎所有開發人員的加入。flutter 能實現 windows 應用支持並在 microsoft store 上架,表明其對我們的信任,期待 flutter 在 windows 上的發展!”

除此之外,許多 flutter 合作夥伴也在增加對 windows 的支持,其中包括:

作為低代碼 flutter 應用程式設計工具,flutterflow 宣布支持 windows 並將幫助 flutter 開發人員構建專為桌面使用的功能。

本地數據存儲工具 realm 的最新版本支持使用 flutter 構建 windows 應用程式,使用 dart ffi 快速訪問底層資料庫,並增加了對 ios 和 android 等移動平台的現有支持。

nevercode 已更新 codemagic ci/cd 工具以支持 windows,使用戶能夠在雲中測試並構建 windows 應用程式,並自動部署到 microsoft store。

syncfusion 已更新小部件支持 windows。數據可視化組件等支持創建 pdf 文件和 excel 表格。

rive 宣布了其圖形工具套件即將推出 windows 版本,開發人員可創建可以使用狀態機實時響應代碼的交互式矢量動畫。他們還將推出 windows 應用程式,在性能和內存上有著不俗的表現,很快將在 microsoft store 中提供下載。

目前看來,大家對於 flutter 2.10 的評價依舊非常好。你對於 flutter 2.10 的發布有什麼期待呢?歡迎在下方留言。

【參考資料】

版權聲明:本文為 csdn 博主“技術視野”的原創文章,遵循 cc 4.0 by-sa 版權協議,轉載請附上原文出處連結及本聲明。

原文連結:https://blog.csdn.net/csdndevelopers/article/details/122808516

Keep Exploring

延伸阅读

更多文章