Flutter 1.12 最新 hotfix 與 2020 路線計劃

大年初三的時候 v1.12.13+hotfix.7 終於發佈了,該版本發佈後總算把 1.12.13 版本上的幾個大坑填完,算是達到「能用」的穩定版本;同時 1 月 30 號官方也發佈了 2020 Flutter 最新的路線計劃,也算是新的一年「美好」的開始吧。git

1、1.12.13+hotfix.7

v1.12.13+hotfix.7 版本主要在於解決了我比較關心的三個問題,包括: reportFullyDrawn 異常、華爲手機上崩潰、光標和鍵盤輸入異常 這幾個問題。github

一、華爲手機上崩潰

相信這個問題是 1.12 版本國內開發者最頭痛的,出現崩潰的華爲手機會拋出 Skia 異常的問題:瀏覽器

Flutter engine crashes on some Android devices due to "Failed to setup Skia Gr context"bash

該問題的 issue 主要集中在 #47804#47164 上,產生緣由主要在於 skia 的兼容繪製上,感謝 yrom 同窗在修復以前提供了以下的臨時解決辦法,而本次官方則是經過 #48733 回滾了 skia 來完成修復。post

FlutterMain.ensureInitializationComplete(context, new String[]{FlutterShellArgs.ARG_ENABLE_SOFTWARE_RENDERING});

複製代碼

Or學習

Intent flutterActivity = ...; // build intent
flutterActivity.put(FlutterShellArgs.ARG_ENABLE_SOFTWARE_RENDERING, true);
startActivity(flutterActivity);
複製代碼

二、鍵盤輸入和光標

這類問題上 Flutter 其實跌過好幾回跟頭,從 PlatformView 的支持時就出現沒法輸入的問題,還有華爲刪除輸入文本出現崩潰(怎麼又是華爲?)等等的異常,而此次主要是相似 #46159該問題主要是輸入文本時鍵盤被凍結了,或者輸入的內容消除了。測試

此次官方經過 #45698engine/#14053 的 pr 修復了該問題,該問題主要和 TextAffinity 的使用有必定關係, TextAffinity 主要用於設置光標顯示在輸入文本前面仍是後面,該異常算是「好心辦了壞事」致使。ui

6b66d79 這個提交中官方增長了 Track and use fallback TextAffinity for null affinity platform TextSelections.,而這個提交主要是增長了了默認的 _fallbackAffinity 系列的邏輯,官方在本次 hotfix 上將該提交回滾了。google

三、reportFullyDrawn

reportFullyDrawn 主要是 Android 上用提交應用初始化到 reportFullyDrawn 方法被調用的時間,該問題主要是版本兼容判斷致使。spa

2、2020 路線計劃

從 2020 年 Flutter 公佈的 Roadmap 能夠看到在於提升穩定性的同時,重點會是在於 Web 與 macOS 上的推動。

在 2019 年 12 月 舉行的 Flutter Interact 活動中, Flutter 的對 Web 的支持已發展到了 beta ,因此接下來 Flutter 打算重點推動這項工做,從而使得 Web 與 Android 和 iOS 可以處於平等應用地位。

同時 Flutter 今年也將繼續努力,提升 Flutter 構建 macOS 桌面應用的可行性,Flutter 今年的目標是:應該可以 flutter createflutter run 讓程序能夠在瀏覽器,macOS,Android,Fuchsia 和 iOS 上正常運行,並支持熱重裝、插件、測試和發佈。

最後官方表示首先會確保 Material Design 的部件庫在全部這些平臺上都能正常運行,至於 Cupertino 控件在 PC 上的完美支持還不在 2020 的計劃以內。

這些計劃從官方的 milestones 也能夠看到明顯的傾向。

資源推薦

相關文章
相關標籤/搜索