大年初三的時(shí)候 v1.12.13+hotfix.7 終于發(fā)布了但狭,該版本發(fā)布后總算把 1.12.13
版本上的幾個(gè)大坑填完,算是達(dá)到“能用”的穩(wěn)定版本刹淌;同時(shí) 1 月 30 號(hào)官方也發(fā)布了 2020 Flutter
最新的路線計(jì)劃宏胯,也算是新的一年“美好”的開(kāi)始吧。
一肢专、1.12.13+hotfix.7
v1.12.13+hotfix.7 版本主要在于解決了我比較關(guān)心的三個(gè)問(wèn)題舞肆,包括: reportFullyDrawn
異常焦辅、華為手機(jī)上崩潰、光標(biāo)和鍵盤輸入異常 這幾個(gè)問(wèn)題椿胯。
1筷登、華為手機(jī)上崩潰
相信這個(gè)問(wèn)題是 1.12 版本國(guó)內(nèi)開(kāi)發(fā)者最頭痛的,出現(xiàn)崩潰的華為手機(jī)會(huì)拋出 Skia
異常的問(wèn)題:
Flutter engine crashes on some Android devices due to "Failed to setup Skia Gr context"
該問(wèn)題的 issue 主要集中在 #47804 和 #47164 上哩盲,產(chǎn)生原因主要在于 skia 的兼容繪制上前方,感謝 yrom 同學(xué)在修復(fù)之前提供了如下的臨時(shí)解決辦法,而本次官方則是通過(guò) #48733 回滾了 skia 來(lái)完成修復(fù)廉油。
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);
2惠险、鍵盤輸入和光標(biāo)
這類問(wèn)題上 Flutter 其實(shí)跌過(guò)好幾次跟頭,從 PlatformView
的支持時(shí)就出現(xiàn)無(wú)法輸入的問(wèn)題抒线,還有華為刪除輸入文本出現(xiàn)崩潰(怎么又是華為班巩?)等等的異常,而這次主要是類似 #46159 :該問(wèn)題主要是輸入文本時(shí)鍵盤被凍結(jié)了嘶炭,或者輸入的內(nèi)容消除了抱慌。
這次官方通過(guò) #45698 和 engine/#14053 的 pr 修復(fù)了該問(wèn)題,該問(wèn)題主要和 TextAffinity
的使用有一定關(guān)系眨猎, TextAffinity
主要用于設(shè)置光標(biāo)顯示在輸入文本前面還是后面抑进,該異常算是“好心辦了壞事”導(dǎo)致。
在 6b66d79 這個(gè)提交中官方增加了
Track and use fallback TextAffinity for null affinity platform TextSelections.
睡陪,而這個(gè)提交主要是增加了了默認(rèn)的_fallbackAffinity
系列的邏輯寺渗,官方在本次 hotfix 上將該提交回滾了。
3兰迫、reportFullyDrawn
reportFullyDrawn
主要是 Android 上用提交應(yīng)用初始化到 reportFullyDrawn
方法被調(diào)用的時(shí)間信殊,該問(wèn)題主要是版本兼容判斷導(dǎo)致。
二逮矛、2020 路線計(jì)劃
從 2020 年 Flutter 公布的 Roadmap 可以看到在于提高穩(wěn)定性的同時(shí)鸡号,重點(diǎn)會(huì)是在于 Web 與 macOS 上的推進(jìn)。
在 2019 年 12 月 舉行的 Flutter Interact 活動(dòng)中须鼎, Flutter 的對(duì) Web 的支持已發(fā)展到了 beta 鲸伴,所以接下來(lái) Flutter 打算重點(diǎn)推進(jìn)這項(xiàng)工作,從而使得 Web 與 Android 和 iOS 能夠處于平等應(yīng)用地位晋控。
同時(shí) Flutter 今年也將繼續(xù)努力汞窗,提高 Flutter 構(gòu)建 macOS 桌面應(yīng)用的可行性,F(xiàn)lutter 今年的目標(biāo)是:應(yīng)該能夠 flutter create
和 flutter run
讓程序可以在瀏覽器赡译,macOS仲吏,Android,F(xiàn)uchsia 和 iOS 上正常運(yùn)行,并支持熱重裝裹唆、插件誓斥、測(cè)試和發(fā)布。
最后官方表示首先會(huì)確保 Material Design 的部件庫(kù)在所有這些平臺(tái)上都能正常運(yùn)行许帐,至于 Cupertino 控件在 PC 上的完美支持還不在 2020 的計(jì)劃之內(nèi)劳坑。
這些計(jì)劃從官方的 milestones 也可以看到明顯的傾向。
資源推薦
- Github : https://github.com/CarGuo
- 開(kāi)源 Flutter 完整項(xiàng)目:https://github.com/CarGuo/GSYGithubAppFlutter
- 開(kāi)源 Flutter 多案例學(xué)習(xí)型項(xiàng)目: https://github.com/CarGuo/GSYFlutterDemo
- 開(kāi)源 Fluttre 實(shí)戰(zhàn)電子書(shū)項(xiàng)目:https://github.com/CarGuo/GSYFlutterBook
- 開(kāi)源 React Native 項(xiàng)目:https://github.com/CarGuo/GSYGithubApp