5 月 12 日,F(xiàn)lutter 3.0 在 Google I/O 開(kāi)發(fā)者大會(huì)正式亮相,隨著 3.0 版本的發(fā)布,F(xiàn)lutter 開(kāi)發(fā)框架終于可以支持六大平臺(tái),實(shí)現(xiàn)了其跨平臺(tái)穩(wěn)定運(yùn)行的愿景。
Flutter 和 Dart 的產(chǎn)品總監(jiān) Tim Sneath 發(fā)布博文中稱,F(xiàn)lutter 3 完成了從以移動(dòng)為中心到多平臺(tái)框架的發(fā)展路線圖,現(xiàn)支持在 Linux 和 macOS 桌面的穩(wěn)定運(yùn)行,同時(shí)引入了 Firebase 集成改進(jìn)、新的生產(chǎn)力與性能增強(qiáng)、以及對(duì)蘋果自研芯片的支持。
Flutter 3 現(xiàn)已來(lái)臨
如今,通過(guò) Flutter 3,開(kāi)發(fā)者可以通過(guò)一個(gè)代碼庫(kù)立足 iOS、Android、Web、Windows、macOS、Linux 六大平臺(tái)。
在之前的版本中,F(xiàn)lutter 已經(jīng)在 iOS 和 Android 之外,新增對(duì) Web 和 Windows 的支持?,F(xiàn)在 Flutter 3 增加了對(duì) macOS 和 Linux 應(yīng)用程序的穩(wěn)定支持。添加平臺(tái)支持所需要的可不只是渲染像素,還包括處理新的輸入和交互模型、編譯和構(gòu)建支持、可訪問(wèn)性與國(guó)際化,以及特定于平臺(tái)的集成功能?!拔覀兿M麕椭蠹腋`活地利用底層操作系統(tǒng),同時(shí)根據(jù)選擇盡量重用原有 UI 和邏輯。”
在 macOS 上,F(xiàn)lutter 支持英特爾與蘋果兩大芯片家族,提供通用的二進(jìn)制支持,允許將應(yīng)用程序打包為這兩種架構(gòu)上的本地可執(zhí)行文件。在 Linux 方面,F(xiàn)lutter 則與 Canonical 合作推出一種高度集成、同類最佳的開(kāi)發(fā)選項(xiàng)。
此外,F(xiàn)lutter 3 還對(duì)眾多基礎(chǔ)設(shè)計(jì)做出改進(jìn),包括增強(qiáng)性能、支持 Material You 以及其他生產(chǎn)力功能更新。
Sneath 強(qiáng)調(diào),新版本還可在蘋果芯片上原生運(yùn)行并支持開(kāi)發(fā)工作。雖然 Flutter 自發(fā)布以來(lái),就一直能夠與搭載 M1 芯片的蘋果設(shè)備兼容,但新版本能夠充分利用 Dart 語(yǔ)言對(duì)蘋果芯片的支持,從而在 M1 設(shè)備上加快編譯速度、支持 macOS 應(yīng)用程序的通用二進(jìn)制文件。
Material Design 3 的開(kāi)發(fā)工作在此版本中也基本完成,允許開(kāi)發(fā)者充分運(yùn)用這套跨平臺(tái)設(shè)計(jì)系統(tǒng)中的動(dòng)態(tài)配色方案和視覺(jué)組件更新:

Flutter 由 Dart 語(yǔ)言開(kāi)發(fā)而成,在 Flutter 3 開(kāi)發(fā)周期中,團(tuán)隊(duì)為 Dart 完成了削減樣板、提高可讀性、為 RISC-V 架構(gòu)提供實(shí)驗(yàn)性支持、升級(jí) linter 和更新文檔等工作。
Firebase 與 Flutter
應(yīng)用程序的構(gòu)建遠(yuǎn)不止于 UI 框架。應(yīng)用程序發(fā)布者需要一整套工具來(lái)完成項(xiàng)目的構(gòu)建、發(fā)布和運(yùn)營(yíng),具體涵蓋身份驗(yàn)證、數(shù)據(jù)存儲(chǔ)、云功能和設(shè)備測(cè)試等服務(wù)。目前 Flutter 已經(jīng)得到眾多服務(wù)的廣泛支持,包括 Sentry、AppWrite 及 AWS Amplify 等。
谷歌提供的應(yīng)用服務(wù) Firebase 也是其中之一。根據(jù) SlashData 開(kāi)發(fā)者基準(zhǔn)測(cè)試結(jié)果,62%的 Flutter 開(kāi)發(fā)者會(huì)在應(yīng)用程序中使用 Firebase。所以在過(guò)去幾個(gè)版本中,開(kāi)發(fā)團(tuán)隊(duì)一直與 Firebase 密切配合,希望進(jìn)一步增強(qiáng) Flutter 的集成統(tǒng)籌效果。具體包括將 Flutter 的 Firebase 插件升級(jí)至 1.0 版本,添加更好的文檔和工具,并推出 FlutterFire UI 等新的功能部件、幫助開(kāi)發(fā)者獲得可重用的身份驗(yàn)證與配置界面 UI。
到了 3.0 版本,官方宣布 Flutter/Firebase 集成水平進(jìn)一步提升,**現(xiàn)已支持 Firebase 的全部核心功能。“**我們正在將源代碼和文檔轉(zhuǎn)移到 Firebase 各主 repo 和站點(diǎn)當(dāng)中,后續(xù)也將繼續(xù)在 Android 與 iOS 上同步各項(xiàng) Firebase 支持?!?/p>
此外還有一系列重大改進(jìn)的推進(jìn),包括在 Flutter 應(yīng)用中支持 Crashlytics——Firebase 的流行實(shí)時(shí)崩潰報(bào)告服務(wù)。通過(guò) Flutter Crashlytics 插件更新,大家可以實(shí)時(shí)跟蹤嚴(yán)重錯(cuò)誤,獲得與其他 iOS 和 Android 開(kāi)發(fā)者相同的功能集。其中提供多種重要警報(bào)和指標(biāo),例如“無(wú)崩潰用戶”,可幫助大家了解應(yīng)用程序的實(shí)際穩(wěn)定性。Crashlytics 分析管道也得到升級(jí),改進(jìn)了 Flutter 崩潰聚類,可幫助大家更快對(duì)問(wèn)題進(jìn)行分類、優(yōu)先排序和修復(fù)。最后,插件設(shè)置流程也被簡(jiǎn)化了,只需幾個(gè)步驟就能通過(guò) Dart 代碼啟動(dòng)和運(yùn)行 Crashlytics。
Flutter 休閑游戲工具包
值得一提的是,3.0 版本最重要的方面是谷歌決定通過(guò)其休閑游戲工具包、一系列模板和最佳實(shí)踐、廣告積分及云服務(wù)來(lái)支持休閑游戲開(kāi)發(fā)。

谷歌的 Flutter 團(tuán)隊(duì)以前沒(méi)有嘗試過(guò)滿足游戲開(kāi)發(fā)者的需求,盡管第三方已經(jīng)沿著這些方向做出了一些努力,最引人注目的是通過(guò) Flame 游戲引擎,它在去年 12 月達(dá)到了 1.0 的里程碑。
Sneath 在接受媒體采訪時(shí)表示,F(xiàn)lame 的目標(biāo)是比休閑游戲工具包要求更高的那種游戲。
他說(shuō):“我們?cè)谛蓍e游戲工具包中試圖提供的很多東西都是對(duì) Flame 的補(bǔ)充”,他指的是與蘋果的 Game Center 或 Google Play 游戲服務(wù)整合等任務(wù)。
為了讓人們了解 Flutter 作為一個(gè)游戲框架的潛力,谷歌開(kāi)發(fā)了一個(gè) Flutter 網(wǎng)頁(yè)彈球游戲作為演示,由 Firebase 和 Flutter 提供 Web 支持。這款游戲融合了谷歌旗下最受喜愛(ài)的四大形象:Flutter 的 Dash、Firebase 的 Sparky、Android 機(jī)器人和 Chrome 恐龍,游戲目標(biāo)就是拿下最高分。
它不會(huì)用超現(xiàn)實(shí)的球體物理學(xué)讓你大吃一驚,也不會(huì)因?yàn)橥黄屏嘶跒g覽器的游戲的界限而讓你大吃一驚,但它是一個(gè)合格的彈球模擬,并可能有助于說(shuō)服有抱負(fù)的獨(dú)立游戲開(kāi)發(fā)者使用 Flutter 來(lái)創(chuàng)造下一個(gè) Wordle。“我們認(rèn)為通過(guò)這種有趣的方式,能讓更多朋友體驗(yàn)到 Flutter 豐富的功能設(shè)計(jì)?!?/p>
超 50 萬(wàn)款應(yīng)用由 Flutter 構(gòu)建而成
Sneath 感慨道:“當(dāng)初我們踏上 Flutter 的探索之旅,目的是希望徹底改變應(yīng)用程序的開(kāi)發(fā)方式:將 Web 應(yīng)用的迭代開(kāi)發(fā)模型,與以往游戲軟件中的硬件加速圖形渲染和像素級(jí)控制結(jié)合起來(lái)?!?/p>
他表示,自 Flutter 1.0 beta 發(fā)布以來(lái)的這四年里,團(tuán)隊(duì)逐漸在此基礎(chǔ)上修葺打磨,發(fā)布更多新的框架功能與功能部件、并與底層平臺(tái)深入集成,同時(shí)帶來(lái)更豐富的工具包庫(kù)和性能/工具改進(jìn)。

如今,市面上有超過(guò) 50 萬(wàn)款應(yīng)用由 Flutter 構(gòu)建而成,比去年谷歌 I/O 期間的數(shù)量多了一倍。官方最近的用戶調(diào)查顯示,F(xiàn)lutter 已經(jīng)成為開(kāi)發(fā)者喜愛(ài)的應(yīng)用程序構(gòu)建方案:
91%的開(kāi)發(fā)者認(rèn)為 Flutter 縮短了應(yīng)用程序的構(gòu)建與發(fā)布時(shí)間。
85%的開(kāi)發(fā)者認(rèn)為 Flutter 提升了他們應(yīng)用程序的視覺(jué)觀感。
85%的開(kāi)發(fā)者認(rèn)為 Flutter 幫助他們?cè)诟嗥脚_(tái)上發(fā)布應(yīng)用成果。Sneath 在受訪中還提到字節(jié)跳動(dòng)是 Flutter 的主要用戶,估計(jì)其有約 80 個(gè)基于 Flutter 的應(yīng)用?!八麄冋谡嬲I(lǐng)這個(gè)多平臺(tái)的故事,”Sneath 表示,“他們能夠統(tǒng)一他們的技能,能夠統(tǒng)一他們的開(kāi)發(fā)、基礎(chǔ)設(shè)施和模式,并觸達(dá)所有這些不同的平臺(tái)。”
當(dāng)被問(wèn)及 Flutter 開(kāi)發(fā)人員可用的軟件包數(shù)量相對(duì)較少時(shí),Sneath 表示 Flutter 社區(qū)一直在加緊填補(bǔ)這一空白,無(wú)論是個(gè)人還是企業(yè)層面。
他說(shuō):“像微軟和亞馬遜這樣的公司正在編寫插件,而社區(qū)也開(kāi)始聯(lián)合起來(lái),圍繞其他人使用或希望看到的共同軟件包匯集他們的資源。我們?cè)?Flutter 生態(tài)系統(tǒng)中現(xiàn)在有超過(guò) 23000 個(gè)包,而且這個(gè)數(shù)字正在迅速增長(zhǎng),無(wú)論是數(shù)量還是這些包的質(zhì)量。”
參考鏈接:
https://medium.com/flutter/introducing-flutter-3-5eb69151622f
https://www.theregister.com/2022/05/11/google_io_flutter_crossplatform_app/