若要橫跨行動裝置、網頁、個人電腦桌面等不同前端環境,設計原生編譯的應用程式操作介面,而且是憑藉單一程式碼基礎而成的解決方案,可考慮Google發展的開放原始碼可移植型工具套件Flutter

今年5月適逢Google I/O大會舉行,Flutter也釋出最新的3.10版

以使用者介面的框架而言,Flutter新版採用的Material程式庫,可匹配Material Design第3版規格(Material 3),變更的部分包含新的元件與元件佈景主題,並且更新視覺效果相關元件。

在引擎方面,Flutter 3.10也有重大更新,能提升執行在iOS行動裝置的應用程式效能。

早在Flutter 3.7版本的時候,開發團隊針對iOS環境的使用者操作介面,提供Impeller著色引擎的預覽版本,解決Flutter程式剛啟動時,因為著色器導致效能不穩(Jank)的狀況。Impeller在引擎進行組建的階段,就會預先編譯一組輕量著色器,因此由於Impeller不在執行時編譯著色器,也就能減少效能波動。

  

現在從Flutter 3.10開始,所有以此環境建立的iOS應用程式,預設都使用Impeller。事實上,Impeller從Flutter 3.7提供預覽版以來,已經有許多改進,包括採用更少量的著色程序與居中的著色標的,改善記憶體用量,而且在較新的iPhone、iPad上,還能夠啟用材質失真型壓縮技術,在不影響精細度(Fidelity)的前提下,以減少記憶體使用。

這些改進在複雜的使用介面顯示應用上,會有明顯的效能提升,像是在Wonderous的App程式中,畫面著色所使用的記憶體可能減少接近一半,而這也連帶降低GPU和CPU的負擔。

基本上,Impeller可滿足多數Flutter應用程式的著色需求,開發者也能選擇不用Impeller。目前Android版本的Impeller引擎還在開發階段,尚未進入預覽階段。

關於消除效能不穩狀況的處理方式上,Flutter新版也持續強化。例如,3.7版將載入平臺執行緒的本機圖像,上移到Dart執行緒,避免平臺執行緒的垂直同步事件造成延遲,但是這個對Dart執行緒造成的額外工作,可能導致畫面出現卡頓;到了3.10版,本機圖像的開啟和解碼工作從Dart執行緒移到後臺執行緒處理,如此不只解決畫面卡頓問題,也避免造成垂直同步事件延遲,而在此套件的開發團隊本機與自動化測試中,同時載入多個圖像的時間可因此縮短一半。

在穩定度提升方面,開發團隊原本在Flutter 3.0的著色流程,對Android平臺的App啟用GPU驅動程式提供的著色功能,使應用程式能夠只重新繪製有變化的畫面區域,而非總是更新整個畫面,藉此提高著色效率,但他們發現這個功能在實際運作時,無法在實際的應用案例當中重現,而且僅有少數裝置和Android版本支援這樣的GPU驅動程式功能,因此他們最後決定在Android停用這個功能,但會持續在iOS平臺搭配Skia引擎時啟用,也計畫未來版本可在搭配Impeller著色引擎時啟用。

產品資訊

Flutter 3.10
●原廠:Google
●建議售價:免費
●支援作業系統:Windows(10以後版本)、macOS(10.14以後版本)、Linux(64位元)、ChromeOS
●支援程式碼編輯器:Visual Studio Code、Android Studio(2020.3.1以後版本)、IntelliJ IDEA(2021.2以後版本)、Emacs
●可部署的平臺:Android、iOS、Linux(Debian、Ubuntu)、macOS、瀏覽器(Chrome、Firefox、Safari、Edge)、Windows

【註:規格與價格由廠商提供,因時有異動,正確資訊請洽廠商】

熱門新聞

Advertisement