開源UI軟體開發工具包Flutter,近期更新主要圍繞在其新的Impeller渲染引擎上,在最新的Flutter 3.13,官方也對Impeller進行多項改進,同時針對可折疊裝置支援添加Engine API。在介面外觀上,官方對Material Framework有不少功能調整,使開發者能夠更靈活地設計應用程式介面。

Impeller是Flutter上最新的渲染引擎,用來取代之前的Skia,Impeller的優點是能夠善用硬體加速繪圖API,像是iOS的Metal以及Android上的Vulkan,藉以提供順暢的UI效果。從Flutter 3.10開始,新建立的iOS應用程式便會預設使用Impeller,使介面卡頓情況減少,且在記憶體使用上更有效率。

Flutter 3.13上的Impeller更是經過一連串最佳化,完全消除著色器編譯的卡頓問題,且在部分基準測試中,達到更高的平均吞吐量,在官方flutter/gallery過渡效能基準測試中,平均影格的光柵化時間大幅降低,現在約可達到Skia的一半。

以iPhone 11測試,從Flutter 3.10版本分支到3.13版本分支之間,在官方flutter/gallery過渡效能基準測試,平均影格的光柵化時間大幅降低。

Flutter 3.10加入對廣色域的支援,廣色域比傳統RGB色域更廣,可呈現更豐富的顏色,讓圖像看起來更鮮艷逼真。但是在Flutter 3.10中,雖然在iOS上的Flutter應用程式,已經可以顯示廣色域圖片,但是預設仍是使用RGB色域,在開發者的回饋後,Impeller現在於iOS上將預設使用廣色域。

至於Android上的Impeller則需要再等等,雖然過去一年已經有許多進展,官方對Impeller的硬體抽象層做了許多最佳化,完善OpenGL和Vulkan後端功能,這讓Android平均影格繪製時間在flutter/gallery過渡效能基準測試中已有大幅度提升。不過,目前還未達到預期的水準,官方希望在Android上Impeller預覽時,能達到穩定版本的程度。Impeller目前也已開始在macOS上進行預覽。

Flutter 3.13加入新的引擎API,更好地支援可折疊裝置,新API能夠擷取顯示螢幕各種屬性,包括顯示器的實際尺寸、像素比和更新頻率等資訊。Flutter 3.13還對Material Framework進行多項改進,主要更新方向是要提升更多平臺的適用性,並且讓使用者有更多的自定義空間,並加入許多新功能,像是現在於iOS中,可以使用裝置相機辨識文字,並將文字輸入到文字欄位中等。

值得注意的是,Flutter將在下一個穩定版本預設使用Material 3,應用程式將會預設使用Material 3顏色、文字樣式和其他視覺效果。另外,Flutter不再支援Android Jelly Bean,包括API等級16、17和18。

熱門新聞

Advertisement