Google更新開源跨平台UI框架釋出最新的 3.10版本 ,Flutter 3.10更新元件主題和視覺效果,使Material函式庫規範符合Material 3。除了介面之外,Flutter 3.10的引擎也有不少更新,在iOS裝置程式效能將有感提升。
早在Flutter 3.7版本的時候,開發團隊在iOS添加了預覽版的Impeller渲染引擎,解決Flutter程式剛啟動時,因為著色器導致效能不穩(Jank)的狀況。Impeller在建置階段,就會預先編譯一組輕量著色器,因此由於Impeller不在執行時編譯著色器,也就能減少效能波動。
現在從Flutter 3.10開始,所有iOS應用程式都使用Impeller,Impeller從預覽版以來,已經有許多改進,包括透過精簡渲染程序,Impeller能夠使用更少的記憶體,而且在較新的iPhone、iPad上,還能夠啟用有損貼圖壓縮技術,在不影響傳真度(Fidelity)的前提下減少記憶體使用。
這些改進在複雜的應用上,會有明顯的效能提升,像是在Wonderous應用程式中,渲染畫面所使用的記憶體可能減少接近一半,而這也連帶降低GPU和CPU的負擔。Impeller滿足大多數的Flutter應用程式渲染需求,但是開發者也可以根據需求選擇不使用Impeller。目前Android版本的Impeller引擎還在開發階段,尚未進入預覽階段。
在Flutter 3.7開發團隊將載入本地端圖像的平台執行緒,轉移到底層Dart執行緒,避免對平台執行緒中的垂直同步事件造成延遲,但是這個改動卻對Dart執行緒造成額外的工作,導致畫面出現卡頓,在Flutter 3.10中,開發團隊把本地圖像的開啟和解碼工作,從Dart執行緒移到後台執行緒,如此不只解決畫面卡頓問題,也避免造成垂直同步事件延遲,在基準測試中,多個圖像同時載入的時間縮短一半。
開發團隊原本在Flutter 3.0版本的渲染流程,對Android應用啟用一項先進的渲染功能,使應用程式能夠只重新繪製有變化的畫面區域,而非總是更新整個畫面,藉此提高渲染效率,但是開發團隊提到,他們發現這個功能在實際運作時,效果不如當初的期望,而且並非所有裝置和Android版本都支援。
因此開發團隊最後決定在Android上停用這個功能,但是會持續在iOS中的Skia引擎啟用,並且也計畫添加到Impeller渲染引擎。