Flutter Interact 2019:首個面向環(huán)境計算打造的 UI 平臺
我們從 Flutter Interact 大會現(xiàn)場為您帶來精彩播報。Flutter Interact 是我們迄今為止規(guī)模最大的 Flutter 盛會,本次大會揭曉了多則重磅消息: 除了新版本 Flutter 的發(fā)布之外,我們還與多家企業(yè)締結(jié)了合作伙伴關(guān)系,共同推動 Flutter 生態(tài)圈的蓬勃發(fā)展。
開發(fā)演進(jìn): 從以設(shè)備為中心到以應(yīng)用為中心
第一個版本的 Flutter 主要聚焦于跨平臺支持,讓開發(fā)者只需編寫一套代碼即可實(shí)現(xiàn) Android 和 iOS 的雙平臺運(yùn)行。但是,我們想要再往前邁一步。
我們生活在一個萬物互聯(lián)的時代,聯(lián)網(wǎng)設(shè)備已經(jīng)逐步滲透到人們工作與生活的方方面面。我們每天在多個設(shè)備間自由切換,從手機(jī)、智能手表等可穿戴設(shè)備、平板、臺式機(jī)、筆記本、電視到越來越普及的智能屏幕 (例如 Google Nest Hub),通過各色設(shè)備與世界相連。
在這個新興世界中,大家關(guān)注的焦點(diǎn)也開始從單一設(shè)備轉(zhuǎn)向環(huán)境——一個允許您隨時隨地獲取服務(wù)和軟件的環(huán)境。我們將其稱為環(huán)境計算 (ambient computing),這同時也構(gòu)成了 Flutter 愿景的核心: 一個用于構(gòu)建精美體驗(yàn)的便攜工具包,讓開發(fā)者不論身處何處都可以在屏幕上繪制像素。

在 Flutter 的協(xié)助下,我們希望您可以集中精力,專心構(gòu)建應(yīng)用內(nèi)容,而不是在每次開發(fā)前為目標(biāo)平臺的問題而頭疼: "我要針對哪款設(shè)備?" 在這個多設(shè)備、多平臺的世界中,F(xiàn)lutter 旨在提供一套通用的框架與開發(fā)工具,讓您免受設(shè)備與機(jī)型限制,順利打造一流用戶體驗(yàn)。由 Dart 驅(qū)動的 Flutter 引擎通過 stateful hot reload (保持應(yīng)用狀態(tài)的熱重載) 功能幫助您實(shí)現(xiàn)快速開發(fā),此外,無論是在移動端、桌面端,web 端還是嵌入式設(shè)備上,F(xiàn)lutter 引擎都能夠提供出色的本地編譯支持,從而為您帶來快速強(qiáng)勁的性能表現(xiàn)。
如果您是一家初創(chuàng)企業(yè),F(xiàn)lutter 允許您在整個潛在市場中驗(yàn)證創(chuàng)業(yè)想法是否可行,您不必再因資源限制而退而求其次,把驗(yàn)證范圍縮小到某個用戶群。如果您的公司規(guī)模較大,那么,F(xiàn)lutter 則可幫助您整合團(tuán)隊資源,為用戶交付一致的體驗(yàn),并且在您認(rèn)為合適的情況下,在移動、web 和桌面三大平臺上實(shí)現(xiàn)代碼復(fù)用。Flutter 的獨(dú)特之處在于,它只需要一套基準(zhǔn)代碼就能夠支持豐富的本地編譯體驗(yàn)。
我們十分高興看到,自發(fā)布以來,F(xiàn)lutter 在短時間內(nèi)就取得了令人矚目的快速發(fā)展: 目前已有超過 100 萬開發(fā)者在各種體積的應(yīng)用內(nèi)使用了 Flutter 。據(jù) GitHub 剛發(fā)布的《2019 年度 Octoverse 報告》顯示,Dart 和 Flutter 分別被評選為過去 12 個月內(nèi)成長速度最快的語言和第二大開源項目。Flutter 也順利躋身 Github 十大熱門 repo 榜單。此外,領(lǐng)英最近公布的一項分析研究表明,F(xiàn)lutter 已成為軟件工程師中掌握人數(shù)增長最快的技能。
下文將介紹我們在環(huán)境計算愿景方面的最新進(jìn)展,并圍繞公布的幾個消息展開重點(diǎn)討論,希望能幫助各位設(shè)計師和開發(fā)者攜手合作,一同使用 Flutter 打造令人驚艷的視覺體驗(yàn)。
- 《2019 年度 Octoverse 報告》https://octoverse.github.com/
- 軟件工程師中掌握人數(shù)增長最快的技能https://learning.linkedin.com/blog/tech-tips/the-fastest-growing-skills-among-software-engineers--and-how-to-
移動、桌面和 web 平臺上的 Flutter
我們在 Flutter Interact 大會上宣布推出最新穩(wěn)定版 Flutter 框架: Flutter 1.12。本次季度更新凝聚了數(shù)百位 Google 內(nèi)外部貢獻(xiàn)者的辛勤付出,涵蓋范圍包括: 全新的性能改進(jìn)項、給予更多控制權(quán)向現(xiàn)有應(yīng)用添加 Flutter 內(nèi)容、Material 和 Cupertino 庫的更新。此外,我們還引入了全新的 Google 字體包,讓開發(fā)者可以直接訪問近 1,000 個開源字體族,只需編寫短短幾行代碼就能為應(yīng)用添加精美的文字設(shè)計。請閱讀《Flutter 1.12 正式發(fā)布,為這一年畫上圓滿的句號!》,進(jìn)一步了解 Flutter 1.12 的新特性。
鑒于 Flutter 在多平臺開發(fā)方面的生產(chǎn)力優(yōu)勢,Google 越來越多地將 Flutter 用于移動應(yīng)用的開發(fā)。比如說,Stadia 團(tuán)隊就使用 Flutter 編寫了一個應(yīng)用并在 Interact 大會上進(jìn)行了展示,用一套代碼就實(shí)現(xiàn)了 Android 和 iOS 的雙平臺運(yùn)行。在接受采訪時,團(tuán)隊與我們分享了他們的一些經(jīng)驗(yàn)與心得:
在一開始,當(dāng) Stadia 還在探索移動平臺的時候 ,F(xiàn)lutter 讓我們能夠快速制作產(chǎn)品原型,在 Android 上演示游戲玩法,后來,隨著團(tuán)隊規(guī)模逐漸擴(kuò)大,我們便用 Flutter 構(gòu)建了高質(zhì)量的跨平臺體驗(yàn)。我們對取得的成果十分滿意,也會繼續(xù)在 Flutter 中構(gòu)建新功能。

當(dāng)然,除了 Google 以外,還有許多其它公司也在積極探索 Flutter 在應(yīng)用開發(fā)方面的可能。Splice 提供了數(shù)百萬種聲音素材、循環(huán)樂曲和音色預(yù)設(shè),幫助音樂制作人把想法變?yōu)楝F(xiàn)實(shí)。當(dāng) Splice 團(tuán)隊決定在已有的桌面版應(yīng)用之外,再新開發(fā)一個移動版作為補(bǔ)充時,他們選擇了 Flutter,其背后的理由是: "在產(chǎn)品的假設(shè)驗(yàn)證階段,速度至關(guān)重要。我們是一個小團(tuán)隊,因此我們希望有一個解決方案可以同時滿足 iOS 和 Android 的開發(fā)需求,幫助我們?yōu)閮蓚€平臺的用戶提供同等優(yōu)質(zhì)的體驗(yàn)。"
在短短 6 周內(nèi),他們就開發(fā)出了一款原型產(chǎn)品并成功驗(yàn)證了自己的選擇。最新的移動版應(yīng)用現(xiàn)已上架 Apple Store 和 Google Play 應(yīng)用商店。
- Splicehttps://splice.com/
- 移動版https://splice.com/blog/announcing-splice-mobile-app/
- Apple Storehttps://apps.apple.com/app/id1108532275?mt=8
- Google Playhttps://play.google.com/store/apps/details?id=com.splice.mobile

新增的移動端產(chǎn)品線為 Splice 帶去了喜人的商業(yè)成績,很大一部分的用戶消費(fèi)來自移動端應(yīng)用。由于 Flutter 在跨平臺一致性上有著十分出色的表現(xiàn),因此,目前團(tuán)隊正嘗試將移動版中的一些體驗(yàn)引入到桌面端應(yīng)用中。
談到桌面平臺這個話題,不得不說我們在 macOS 支持方面所取得的顯著進(jìn)展。從現(xiàn)在開始,開發(fā)者可以在發(fā)布模式下,使用 Flutter 構(gòu)建一個經(jīng)過充分優(yōu)化的 macOS 應(yīng)用。與此同時,我們還在一直努力擴(kuò)展 Flutter 中的 Material 設(shè)計系統(tǒng),用于支持桌面設(shè)備類型的應(yīng)用。如需了解如何為桌面平臺構(gòu)建 Flutter 應(yīng)用,請前往 flutter.dev/desktop。

最后一點(diǎn),我們很高興宣布 Flutter web 支持 beta 版正式發(fā)布了!與上半年發(fā)布的幾個預(yù)覽版相比,Beta 版更加穩(wěn)定和成熟。現(xiàn)在您還可以開發(fā)和使用 web 插件,為自己的 Flutter 應(yīng)用添加各色各樣的 Dart 組件,比如 Firebase 和最新的 web API 等等,充分享受蓬勃的 Dart 組件生態(tài)圈所帶來的的裨益。自從我們在幾個月前推出早期采用者計劃以來,我們一直與 Journey 等客戶積極合作,一同測試基于 web 的 Flutter 體驗(yàn),現(xiàn)在我們已經(jīng)準(zhǔn)備好讓更多開發(fā)者開始使用 Flutter 構(gòu)建 web 內(nèi)容。請前往 flutter.dev/web 并閱讀我們在 Medium 上發(fā)布的 Flutter 專欄文章,獲取更多有關(guān) Flutter web 支持的內(nèi)容。
- 在 Medium 上發(fā)布的 Flutter 專欄文章https://medium.com/flutter/web-support-for-flutter-goes-beta-35b64a1217c0

這一切的背后是來自 Dart 的強(qiáng)勁驅(qū)動力,這款集編程語言和平臺于一身的技術(shù)讓 Flutter 得以暢享各種類型的環(huán)境計算體驗(yàn)。Dart 的獨(dú)特優(yōu)勢在于,它為 ARM、Intel 和 JavaScript 均提供了開發(fā)模式和發(fā)布模式工具鏈,而其內(nèi)置的本地編譯功能支持幾乎所有的目標(biāo)平臺。Dart 2.7 已經(jīng)與大家正式見面。本次版本更新為 Dart 語言添加了擴(kuò)展方法等多項新功能。請閱讀《Dart 2.7 現(xiàn)已發(fā)布》,進(jìn)一步了解特性內(nèi)容。此外,我們的 DartPad 也迎來了版本更新,允許開發(fā)者編輯 Flutter 代碼,運(yùn)行 Flutter 應(yīng)用并查看渲染后的 UI。
- Darthttps://dart.dev
- 《Dart 2.7 現(xiàn)已發(fā)布》https://medium.com/dartlang/dart-2-7-a3710ec54e97
Flutter: 讓您揮灑創(chuàng)意的畫布
創(chuàng)意技術(shù)專家、原型師、交互設(shè)計師和視覺開發(fā)者是本屆大會的關(guān)注焦點(diǎn)。我們相信多平臺開發(fā)和高質(zhì)量的視覺體驗(yàn)并非是魚與熊掌,不可兼得,這也是激勵我們研發(fā) Flutter 的關(guān)鍵動力之一。我們認(rèn)為 Flutter 是一張可以盡情揮灑創(chuàng)意,探索創(chuàng)新的 "畫布",因?yàn)樗瞥嗽S多困擾視覺向開發(fā)者的限制。Flutter 的 stateful hot reload (保持應(yīng)用狀態(tài)的熱重載) 功能讓開發(fā)者可以輕松更改應(yīng)用設(shè)計并且實(shí)時查看最新效果。借由 Flutter 繪制的每個像素,您可以在 UI、圖形內(nèi)容、文本和視頻中自由融合自定義動畫和過渡效果。
在大會的籌備階段,數(shù)字設(shè)計大師 Robert Felker 的作品給了我們許多靈感。Robert 使用 Flutter 創(chuàng)作了一系列生成藝術(shù)作品,將幾何,紋理和光線三者巧妙結(jié)合在一起,為觀眾帶去一場視覺盛宴。我們從未想到 Flutter 可用于這樣的圖像創(chuàng)作中,但這也充分說明了 Flutter 出色的表現(xiàn)能力和藝術(shù)創(chuàng)造力,下面的圖像是用不到 60 行的 Dart 代碼生成的:
- Robert Felkerhttps://twitter.com/BlueAquilae/
- 不到 60 行的 Dart 代碼https://github.com/Solido/flutter-d-art
我們很榮幸能與多家合作伙伴聯(lián)手協(xié)作,一同發(fā)布多款精良工具,助力設(shè)計師更好地投入到創(chuàng)意工作中,為用戶締造精美的 Flutter 應(yīng)用。
Supernova 已將 Flutter 成功集成至旗下的設(shè)計與原型制作工具中,并且提供動畫支持、Material Design 集成以及全新的 Flutter 設(shè)計界面。此外,Supernova 還新推出了一款基于瀏覽器的設(shè)計工具 Supernova Cloud,該工具完全使用 Flutter web 開發(fā)。
Rive (前身為 2Dimensions,曾發(fā)布 Flare 圖形工具) 此前宣布將公司名稱與旗下產(chǎn)品整合到一個品牌下。他們公布了公司和產(chǎn)品的新名稱 Rive 以及一系列新特性。其中最值得注意的一項特性可能是支持導(dǎo)入由 Adobe After Effects 生成的 Lottie 文件,這樣一來,就能夠?qū)崿F(xiàn) Flutter 與現(xiàn)有動畫工作流的深度集成。Rive 現(xiàn)已為多種層疊效果添加了支持,例如投影、內(nèi)陰影、光暈、模糊和遮照。
在 Rive 的協(xié)助下,用戶無需再在代碼中重新創(chuàng)建一遍設(shè)計和動畫,從而大大簡化了設(shè)計師與開發(fā)者之間的交接工作。這意味著設(shè)計師可以隨時進(jìn)行迭代和更改。由于 Rive 輸出的文件可以直接與 Flutter 集成,而不僅僅是 MP4 視頻或 GIF 圖像,因此 Rive 允許您創(chuàng)建復(fù)雜且動態(tài)的交互、游戲角色、動畫圖標(biāo)和引導(dǎo)界面。
助力 Flutter 成為創(chuàng)意畫布的最后一項合作來自于 Adobe。Adobe 最近剛宣布為 Creative Cloud 添加 Flutter 支持,只需一個插件,用戶就可以將 Adobe XD 導(dǎo)出到 Flutter。Adobe XD 是 Adobe 針對用戶體驗(yàn)設(shè)計推出的一體化平臺,可幫助產(chǎn)品設(shè)計團(tuán)隊為移動、網(wǎng)頁、桌面等平臺設(shè)計并創(chuàng)建產(chǎn)品原型。全新的 XD-to-Flutter 插件可以將 XD 設(shè)計自動轉(zhuǎn)換成代碼,開發(fā)者可以直接把這些代碼添加到自己的 Flutter 開發(fā)工作中,再也不用從通過設(shè)計參數(shù)琢磨設(shè)計師想要達(dá)到的效果。

XD-to-Flutter 插件將于明年上半年與各位開發(fā)者見面。如果您想了解更多插件的相關(guān)信息,請前往 Adobe 網(wǎng)站注冊參加優(yōu)先體驗(yàn)計劃。我們很高興能與 Adobe 合作,他們在可擴(kuò)展設(shè)計工具領(lǐng)域的杰出表現(xiàn)將為產(chǎn)品設(shè)計師提供超強(qiáng)助力,幫助他們打造卓越 Flutter 體驗(yàn)。
結(jié)語
Flutter 的核心在于: 它是一個開源項目。我們?yōu)?Google 創(chuàng)造的價值來源于兩個部分,其一,F(xiàn)lutter 提高了內(nèi)部產(chǎn)品團(tuán)隊的開發(fā)效率;其二,同時也是更重要的一點(diǎn),我們與您攜手一同打造屬于您的 Flutter,因?yàn)槲覀冎郎鷳B(tài)圈和開發(fā)者社區(qū)的發(fā)展能夠?yàn)槲覀兯腥硕紟眈砸妗5侥壳盀橹?,我們?Flutter 之旅已經(jīng)從最初的以移動設(shè)備為中心,逐步發(fā)展成為涵蓋各色機(jī)型的 UI 平臺。我們將繼續(xù)加強(qiáng)研發(fā)投入,為您帶去更棒的設(shè)計與開發(fā)工具,讓您效率與設(shè)計雙管齊下。
不過最令我們開心的是,我們看到 Flutter 幫助一位開發(fā)者將想法變?yōu)楝F(xiàn)實(shí),并將這份精彩分享給世界。點(diǎn)擊收看視頻,感受一個家庭對全球 Flutter 貢獻(xiàn)者的誠摯感謝,不論您曾為 Flutter 貢獻(xiàn)過代碼,或是提交或錯誤報告和修復(fù),還是與社區(qū)分享過知識,我們感恩一路有您相伴!