最近 Flutter 發(fā)布了官方關(guān)于 2022 的 戰(zhàn)略 和 路線圖 悠鞍,本篇主要針對內(nèi)容做一些總結(jié)和解讀,給正在使用 Flutter 或者正打算使用 Fluter 的人做個參考福铅。
總結(jié)陳述相關(guān)
目前 Flutter 社區(qū)的發(fā)展已經(jīng)很大,官方統(tǒng)計在過去的一年里组哩,數(shù)據(jù)上 Flutter 已經(jīng)基本超過超過其他跨平臺框架特漩,成為最受歡迎的移動端跨平臺開發(fā)工具搀菩,截至 2022 年 2 月,有近 50 萬個應(yīng)用程序使用 Flutter旦签。
在過去一年里查坪, Flutter 社區(qū)有數(shù)千人為該項目提供了貢獻(xiàn)和支持,從個人到 Canonical
宁炫、Microsoft
偿曙、ByteDance
和阿里巴巴
等大公司都對 Flutter 提供了不少幫助。
當(dāng)然 Flutter 也不是盡善盡美羔巢,F(xiàn)lutter 雖然也有被一些大型應(yīng)用所使用望忆,例如:SHEIN
(頂級時尚零售商)、微信
(10 億+用戶 IM 應(yīng)用程序)和PUBG
(7.5 億+玩家大逃殺游戲)竿秆,但是它在大型應(yīng)用中使用并不明顯启摄。
因?yàn)樵诖笮蛻?yīng)用中有大量的歷史需求和代碼,還有重構(gòu)所需的成本限制幽钢,使用 Flutter 進(jìn)行混合開發(fā)其實(shí)支持不如 Jetpack Compose
歉备,是的, Flutter 官方表示:
相反匪燕,Android 的 Jetpack Compose 產(chǎn)品非常適合這一類產(chǎn)品蕾羊,因?yàn)樗梢暂p松地基于 JVM 的框架,逐步添加到現(xiàn)有的 Android 應(yīng)用程序中帽驯。
也就是從官方的角度看龟再,混合開發(fā)下,特別是 Android 平臺尼变,其實(shí) Compose
更適合混合開發(fā)利凑,感覺這也是 add-to-app
的維護(hù)和推進(jìn)到現(xiàn)在好像并不樂觀的原因。
展望
Flutter 在 2022 年首要的戰(zhàn)略目標(biāo)就是月活躍用戶的增長嫌术,官方的理念就是:
一個
SDK
再優(yōu)秀哀澈,如果只有少部分人在使用,那它也不能體現(xiàn)價值蛉威;但是一個SDK
即使平庸日丹,但是有大量開發(fā)者使用,那也會擁有一個健康繁榮的生態(tài)氛圍蚯嫌,這樣使用框架的人才能從中受益哲虾。
1、提升開發(fā)體驗(yàn)
目前谷歌認(rèn)為雖然 Dart 和 Flutter 相對原生平臺會給開發(fā)者帶來學(xué)習(xí)成本择示,但是也會帶來了不錯的收益束凑,另外得益于社區(qū)良好的發(fā)展和維護(hù),目前 Flutter 和 Dart 豐富的開發(fā)工具和文檔栅盲,可以讓開發(fā)人員順利地遷移到 Flutter汪诉,所以 Dart 和 Flutter 未來的開發(fā)體驗(yàn)會越來越好。
而官方未來也將持續(xù)優(yōu)化 Flutter 的一些開發(fā)體驗(yàn)谈秫,例如: DevTools 中有助于調(diào)試性能問題的新功能扒寄。
但是事實(shí)上在新版 Android Stuio Bumblebee
和 Flutter 插件
的體驗(yàn)?zāi)壳安⒉缓?/strong>,一些 Plugin
上功能的消失或者無法正常使用的問題其實(shí)比較讓人難受拟烫,例如:出現(xiàn) iOS 運(yùn)行提示 Cocospod 不存在该编,但是其實(shí)已經(jīng)安裝的問題。
雖然這種問題通過其他方式解決并不麻煩硕淑,比如命令行運(yùn)行课竣,但是顯得就很低級。目前 Android Stuio Bumblebee Patch1
已經(jīng)解決了該問題置媳,但是這次更新無法增量于樟,只能全量覆蓋。另外
還有關(guān)于 Flutter 插件上關(guān)于 module 的自動導(dǎo)入消失的等等 ···
可以看到 Flutter 已經(jīng)投入很多精力和時間在改進(jìn) Flutter 的開發(fā)體驗(yàn)拇囊,作為目前最大體量的跨平臺開發(fā)框架迂曲,時不時有些瑕疵還是可以理解,希望 2022 Flutter 能更加注重細(xì)節(jié)的問題寥袭。
2奢米、跨平臺
關(guān)于跨平臺上體驗(yàn)上,在 iOS 和 Android 上 Flutter 目前已經(jīng)可以說得做到了不錯的體驗(yàn)和質(zhì)量纠永,而隨著 Window 第一個穩(wěn)定版本已經(jīng)發(fā)布了鬓长,今年的大目標(biāo)之一就是繼續(xù)提高 Web 和 Desktop 相關(guān)的開發(fā)體驗(yàn)和交付質(zhì)量。
另外 Android 開發(fā)人員正在對 Material
的進(jìn)行支持尝江,同時對新硬件功能和外形尺寸等進(jìn)行適配涉波,以及與 Jetpack 庫和 Kotlin 代碼的更好集成也都是計劃之一。
最后 Flutter 在 Web 上目前已經(jīng)使用了 CanvasKit
炭序、WebGPU
啤覆、AOM
和帶有 GC 的 WebAssembly
等新技術(shù),在新的一年也會繼續(xù)維護(hù)和提高 Web 的交付質(zhì)量惭聂,例如: 在 Web 上的 hotload 以及改進(jìn) Dart-to-JS 的使用場景窗声。
2022 年路線圖
- 正如前面解讀的,Desktop 的投入是最主要的目標(biāo)之一辜纲,從 Windows開始笨觅,然后是 Linux 和 macOS 拦耐,將盡快推進(jìn) Desktop 平臺全部 Stable。
關(guān)于 Web 方面见剩,在高兼容和提高性能的同時杀糯,也打算嘗試讓 Flutter Web 可以嵌入到其他非 Flutter 的 HTML 頁面里。
Flutter 的 framewok 和 engine 方面苍苞, Material 3 和支持從單個
Isolate
渲染到多個窗口會是很重要的一部分內(nèi)容固翰,另外還有一個大頭就是改進(jìn)各個平臺上本編輯的體驗(yàn)。其實(shí)個人認(rèn)為羹呵,F(xiàn)lutter 在文本編輯和鍵盤方便的體驗(yàn)確實(shí)還不夠好骂际。
Dart 語言方法主要是 2022 可能會引入靜態(tài)元編程,另外語法改進(jìn)冈欢,計劃擴(kuò)展 Dart 的編譯工具鏈以支持編譯到
Wasm
也在計劃當(dāng)中歉铝。關(guān)于 Jank 問題,F(xiàn)lutter 已經(jīng)開始考慮重構(gòu)著色器了涛癌,其中 2022 年 iOS 將會遷移到新的著色器框架上犯戏,并在后續(xù)再移植到其他平臺,但是從 #85737 上看拳话,任重道遠(yuǎn)先匪,希望不會有什么大坑吧~
最后
總的來看, Flutter 團(tuán)隊的今年的投入和計劃還是占比不低弃衍,F(xiàn)lutter 社區(qū)的活躍也加速著 Flutter 的成熟呀非。
但是同樣隨著 Flutter 項目越來越龐大,例如 #95343 這樣的問題可能也會越來越多镜盯,因?yàn)槭褂玫娜硕嗔税度梗枰鎸Φ男枨缶投嗔耍?xì)節(jié)的把控上就更具備挑戰(zhàn)性速缆。
同樣就如官方所說降允,雖然 Flutter 團(tuán)隊有在推進(jìn)混合開發(fā)的支持,但是 Flutter 從根源實(shí)現(xiàn)上艺糜,對于混合開發(fā)其實(shí)就很不友好剧董,例如:渲染同步
、路由同步
破停、混合內(nèi)存優(yōu)化
翅楼、混合數(shù)據(jù)共享
等等,不是說不支持真慢,而是成本和收獲的問題毅臊,所以可以看到最近這些穩(wěn)定版本,F(xiàn)lutter 關(guān)于 add-to-app
的提及相對較少黑界,目前看來 Flutter 官方主要還是計算在維護(hù)好 Andorid 和 iOS 平臺的基礎(chǔ)上管嬉,繼續(xù)優(yōu)化 Web 的質(zhì)量和推進(jìn) Desktop 全平臺正式發(fā)布更主流皂林。