Flutter穩定支援Windows,開發者做好準備了嗎?

Flutter穩定支援Windows,開發者做好準備了嗎?

Flutter是由谷歌開發的開源行動UI框架,可快速在不同平台上建構高品質原生使用者介面。

最後更新 2022/2/7 下午10:24
技术视野
預計閱讀 8 分鐘
分類
Flutter
標籤
Flutter 開源

Flutter 是由 Google 開發的開源行動 UI 框架,可快速在不同平台上建構高品質原生使用者介面。Flutter 支援現有的所有程式碼,在世界各地受到越來越多的開發者追捧。截至目前,全球已發布近 50 萬個使用 Flutter 的應用程式,其中包括來自字節跳動等大型公司的應用程式,以及 Google 三十個團隊的應用程式。根據 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 版本中,選擇游標拖出了文字框後,文字框會進行滾動,瀏覽並選中對應的內容。該功能適用於 Web 和桌面應用程式。

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 以及網頁開發應用,並相容現有的所有程式碼。受到了全球各地區開發者的支持信賴。

Google 表示:「今天標誌著這一願景的重大擴展,首次發布了對 Windows 作為應用目標的支援,使 Windows 開發者能夠受益於行動開發者一直享有的同樣的生產力和力量」。

為實現這一目標,Google 一直致力於 Flutter 開發。五年前,Google 曾推出 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

繼續探索

延伸閱讀

更多文章