由Google所開發的跨平臺應用程式開發套件Flutter,推出了最新版本2.10,這個版本有許多新功能,但最重要的是開始正式支援Windows桌面。Flutter從原本的iOS和Android行動裝置出發,後來版圖擴及Linux和網頁,現在Flutter應用程式還可以在Windows上執行。
前幾年Flutter開發團隊開始了這項野心勃勃的計畫,要讓Flutter不只可用於行動裝置,還要跨到其他的平臺上,目前已經有將近50萬個應用程式使用Flutter開發。Flutter核心跨平臺元件,包括了可移植且具有硬體加速功能的圖形引擎Skia、Flutter渲染系統、動畫、主題、文字輸出和國際化等數百個小工具。
要將Flutter移植到桌面並非一件簡單的工作,開發團隊提到,桌面應用程式不只是更大螢幕的行動應用程式,需要能夠接受鍵盤和滑鼠等不同輸入裝置,還有可調整大小的視窗,以便於在寬螢幕上執行,而在無障礙功能、輸入法編輯器和視覺樣式等,都有不同的設計,桌面應用程式需要支援檔案系統選擇器、裝置硬體,甚至是Windows註冊表資料儲存等各種內容。
因此要在Flutter支援Windows,需要特別針對Windows量身定做。而與Android和iOS支援相同的是,Flutter的Windows實作結合了Dart框架和C++引擎,Windows和Flutter間使用嵌入層來進行通訊,該嵌入層代管了Flutter引擎,並且負責翻譯和回應Windows訊息,Flutter會與Windows協調UI繪製,以及改變大小和DPI變更等事件處理,並且會和現有的Windows配合,來實現輸入法編輯器等國際化設定。
以Flutter建置的音樂應用程式Harmonoid
開發者可以在Windows上,使用所有Flutter框架功能,並且透過Dart和C的互通層,與Win32、COM和Windows Runtime API通訊。Flutter團隊針對Windows特別設計了UI,開發者可以使用fluent_ui和flutter_acrylic等套件,以微軟Fluent設計系統來建構應用程式,並且使用msix工具,將應用程式打包成安裝應用程式,並且上傳到Windows的微軟商店。
除了正式支援Windows平臺之外,Flutter 2.10也有不少效能改進,在iOS/Metal上對需要重新繪製的區域(Dirty Region)提供部分重繪功能,這個新功能在部分基準測試中,可將90百分位數和99百分位數光柵化(Rasterization)時間減少一個量級,並將這些基準測試中的GPU利用率,從90%降低到10%以下。之後重繪的功能,會擴及到更多的平臺上。
開發團隊在Flutter 2.8時,開始採用自己內部的圖片記錄格式,而在Flutter 2.10中,開發團隊進一步對該格式進行最佳化,成果包括能夠有效率地處理不透明層,即便在最糟的情況,基準測試中的影格光柵化時間也下降到三分之一。
另外,在配置檔案和發布模式下,Dart程式碼會預先編譯成為原生機器碼,官方提到,這段高效能和小巧的程式碼,是整個程式類型流(Type Flow)分析的關鍵,能夠進行更多的編譯器最佳化和樹搖(Tree-Shaking)最佳化。但類型流分析必須涵蓋整個應用程式,因此執行成本很高,而在最新的Flutter版本中,類型流分析速度更快,在基準測試中,Flutter應用程式整體建置時間下降約10%。
Flutter 2.10平均建置時間下降約10%
Flutter 2.10也對各平臺特有功能進行微調,包括iOS、Android和網頁,同時更新Material 3,支援更多的圖標。VS Code Flutter擴充套件的更新,讓開發者在挑選顏色的時候,在編輯器中預覽顏色。官方也宣布移除Flutter開發者頻道,簡化開發者的選擇,並且移除對iOS 9.3.6支援。
熱門新聞
2024-08-14
2024-12-20
2024-12-22
2024-12-22