摘要:由 Dart 驅動的 Flutter 引擎通過 stateful hot reload (保持應用狀態的熱重載) 功能幫助您實現 快速開發 ,此外,無論是在移動端、桌面端,web 端還是嵌入式設備上,Flutter 引擎都能夠提供出色的本地編譯支持,從而爲您帶來 快速強勁的性能表現。如果您的公司規模較大,那麼,Flutter 則可幫助您整合團隊資源,爲用戶交付一致的體驗,並且在您認爲合適的情況下,在移動、web 和桌面三大平臺上實現代碼複用。

我們從 Flutter Interact 大會現場爲您帶來精彩播報。Flutter Interact 是我們迄今爲止規模最大的 Flutter 盛會,本次大會揭曉了多則重磅消息: 除了新版本 Flutter 的發佈之外,我們還與多家企業締結了合作伙伴關係,共同推動 Flutter 生態圈的蓬勃發展。

  • Flutter Interact

    https://developer.android.google.cn/events/flutter-interact

開發演進: 從以設備爲中心到以應用爲中心

第一個版本的 Flutter 主要聚焦於跨平臺支持,讓開發者只需編寫一套代碼即可實現 Android 和 iOS 的雙平臺運行。但是,我們想要再往前邁一步。

我們生活在一個萬物互聯的時代,聯網設備已經逐步滲透到人們工作與生活的方方面面。我們每天在多個設備間自由切換,從手機、智能手錶等可穿戴設備、平板、臺式機、筆記本、電視到越來越普及的智能屏幕 (例如 Google Nest Hub),通過各色設備與世界相連。

在這個新興世界中,大家關注的焦點也開始從單一設備轉向環境——一個允許您隨時隨地獲取服務和軟件的環境。我們將其稱爲 環境計算 (ambient computing),這同時也構成了 Flutter 願景的核心: 一個用於構建精美體驗的便攜工具包,讓開發者 不論身處何處 都可以在屏幕上繪製像素。

在 Flutter 的協助下,我們希望您可以集中精力,專心構建應用內容,而不是在每次開發前爲目標平臺的問題而頭疼: "我要針對哪款設備?" 在這個多設備、多平臺的世界中,Flutter 旨在提供一套通用的框架與開發工具,讓您免受設備與機型限制,順利打造一流用戶體驗。由 Dart 驅動的 Flutter 引擎通過 stateful hot reload (保持應用狀態的熱重載) 功能幫助您實現 快速開發 ,此外,無論是在移動端、桌面端,web 端還是嵌入式設備上,Flutter 引擎都能夠提供出色的本地編譯支持,從而爲您帶來 快速強勁的性能表現。

如果您是一家初創企業,Flutter 允許您在整個潛在市場中驗證創業想法是否可行,您不必再因資源限制而退而求其次,把驗證範圍縮小到某個用戶羣。如果您的公司規模較大,那麼,Flutter 則可幫助您整合團隊資源,爲用戶交付一致的體驗,並且在您認爲合適的情況下,在移動、web 和桌面三大平臺上實現代碼複用。Flutter 的獨特之處在於,它只需要一套基準代碼就能夠支持豐富的本地編譯體驗。

我們十分高興看到,自發布以來,Flutter 在短時間內就取得了令人矚目的快速發展: 目前已有超過 100 萬開發者在各種體積的應用內使用了 Flutter 。據 GitHub 剛發佈的 《2019 年度 Octoverse 報告》 顯示,Dart 和 Flutter 分別被評選爲過去 12 個月內成長速度最快的語言和第二大開源項目。Flutter 也順利躋身 Github 十大熱門 repo 榜單。此外,領英最近公佈的一項分析研究表明,Flutter 已成爲 軟件工程師中掌握人數增長最快的技能

下文將介紹我們在環境計算願景方面的最新進展,並圍繞公佈的幾個消息展開重點討論,希望能幫助各位設計師和開發者攜手合作,一同使用 Flutter 打造令人驚豔的視覺體驗。

  • 《2019 年度 Octoverse 報告》

    https://octoverse.github.com/

  • 軟件工程師中掌握人數增長最快的技能

    https://learning.linkedin.com/blog/tech-tips/the-fastest-growing-skills-among-software-engineers--and-how-to-

移動、桌面和 web 平臺上的 Flutter

我們在 Flutter Interact 大會上宣佈推出最新穩定版 Flutter 框架: Flutter 1.12 。本次季度更新凝聚了數百位 Google 內外部貢獻者的辛勤付出,涵蓋範圍包括: 全新的性能改進項、給予更多控制權向現有應用添加 Flutter 內容、Material 和 Cupertino 庫的更新。此外,我們還引入了全新的 Google 字體包,讓開發者可以直接訪問近 1,000 個開源字體族,只需編寫短短几行代碼就能爲應用添加精美的文字設計。請閱讀《Flutter 1.12 正式發佈,爲這一年畫上圓滿的句號!》,進一步瞭解 Flutter 1.12 的新特性。

鑑於 Flutter 在多平臺開發方面的生產力優勢,Google 越來越多地將 Flutter 用於移動應用的開發。比如說,Stadia 團隊就使用 Flutter 編寫了一個應用並在 Interact 大會上進行了展示,用一套代碼就實現了 Android 和 iOS 的雙平臺運行。在接受採訪時,團隊與我們分享了他們的一些經驗與心得:

在一開始,當 Stadia 還在探索移動平臺的時候 ,Flutter 讓我們能夠快速製作產品原型,在 Android 上演示遊戲玩法,後來,隨着團隊規模逐漸擴大,我們便用 Flutter 構建了高質量的跨平臺體驗。 我們對取得的成果十分滿意,也會繼續在 Flutter 中構建新功能。

當然,除了 Google 以外,還有許多其它公司也在積極探索 Flutter 在應用開發方面的可能。 Splice 提供了數百萬種聲音素材、循環樂曲和音色預設,幫助音樂製作人把想法變爲現實。當 Splice 團隊決定在已有的桌面版應用之外,再新開發一個 移動版 作爲補充時,他們選擇了 Flutter,其背後的理由是: "在產品的假設驗證階段,速度至關重要。我們是一個小團隊,因此我們希望有一個解決方案可以同時滿足 iOS 和 Android 的開發需求,幫助我們爲兩個平臺的用戶提供同等優質的體驗。"

在短短 6 周內,他們就開發出了一款原型產品併成功驗證了自己的選擇。最新的移動版應用現已上架 Apple Store Google Play 應用商店。

  • Splice

    https://splice.com/

  • 移動版

    https://splice.com/blog/announcing-splice-mobile-app/

  • Apple Store

    https://apps.apple.com/app/id1108532275?mt=8

  • Google Play

    https://play.google.com/store/apps/details?id=com.splice.mobile

新增的移動端產品線爲 Splice 帶去了喜人的商業成績,很大一部分的用戶消費來自移動端應用。由於 Flutter 在跨平臺一致性上有着十分出色的表現,因此,目前團隊正嘗試將移動版中的一些體驗引入到桌面端應用中。

談到桌面平臺這個話題,不得不說我們在 macOS 支持方面所取得的顯著進展。從現在開始,開發者可以在發佈模式下,使用 Flutter 構建一個經過充分優化的 macOS 應用。與此同時,我們還在一直努力擴展 Flutter 中的 Material 設計系統,用於支持桌面設備類型的應用。如需瞭解如何爲桌面平臺構建 Flutter 應用,請前往 flutter.dev/desktop

最後一點,我們很高興宣佈 Flutter web 支持 beta 版 正式發佈了!與上半年發佈的幾個預覽版相比,Beta 版更加穩定和成熟。現在您還可以開發和使用 web 插件,爲自己的 Flutter 應用添加各色各樣的 Dart 組件,比如 Firebase 和最新的 web API 等等,充分享受蓬勃的 Dart 組件生態圈所帶來的的裨益。自從我們在幾個月前推出早期採用者計劃以來,我們一直與 Journey 等客戶積極合作,一同測試基於 web 的 Flutter 體驗,現在我們已經準備好讓更多開發者開始使用 Flutter 構建 web 內容。請前往 flutter.dev/web 並閱讀我們 在 Medium 上發佈的 Flutter 專欄文章 ,獲取更多有關 Flutter web 支持的內容。

  • 在 Medium 上發佈的 Flutter 專欄文章

    https://medium.com/flutter/web-support-for-flutter-goes-beta-35b64a1217c0

這一切的背後是來自 Dart 的強勁驅動力,這款集編程語言和平臺於一身的技術讓 Flutter 得以暢享各種類型的環境計算體驗。Dart 的獨特優勢在於,它爲 ARM、Intel 和 JavaScript 均提供了開發模式和發佈模式工具鏈,而其內置的本地編譯功能支持幾乎所有的目標平臺。 Dart 2.7  已經與大家正式見面。本次版本更新爲 Dart 語言添加了擴展方法等多項新功能。請閱讀 《Dart 2.7 現已發佈》 ,進一步瞭解特性內容。此外,我們的 DartPad 也迎來了版本更新,允許開發者編輯 Flutter 代碼,運行 Flutter 應用並查看渲染後的 UI。

  • Dart

    https://dart.dev

  • 《Dart 2.7 現已發佈》

    https://medium.com/dartlang/dart-2-7-a3710ec54e97

Flutter: 讓您揮灑創意的畫布

創意技術專家、原型師、交互設計師和視覺開發者是本屆大會的關注焦點。我們相信多平臺開發和高質量的視覺體驗並非是魚與熊掌,不可兼得,這也是激勵我們研發 Flutter 的關鍵動力之一。我們認爲 Flutter 是一張可以盡情揮灑創意,探索創新的 "畫布",因爲它移除了許多困擾視覺向開發者的限制。Flutter 的 stateful hot reload (保持應用狀態的熱重載) 功能讓開發者可以輕鬆更改應用設計並且實時查看最新效果。藉由 Flutter 繪製的每個像素,您可以在 UI、圖形內容、文本和視頻中自由融合自定義動畫和過渡效果。

在大會的籌備階段,數字設計大師 Robert Felker 的作品給了我們許多靈感。Robert 使用 Flutter 創作了一系列生成藝術作品,將幾何,紋理和光線三者巧妙結合在一起,爲觀衆帶去一場視覺盛宴。我們從未想到 Flutter 可用於這樣的圖像創作中,但這也充分說明了 Flutter 出色的表現能力和藝術創造力,下面的圖像是用 不到 60 行的 Dart 代碼 生成的:

  • Robert Felker

    https://twitter.com/BlueAquilae/

  • 不到 60 行的 Dart 代碼

    https://github.com/Solido/flutter-d-art

我們很榮幸能與多家合作伙伴聯手協作,一同發佈多款精良工具,助力設計師更好地投入到創意工作中,爲用戶締造精美的 Flutter 應用。

Supernova 已將 Flutter 成功集成至旗下的設計與原型製作工具中,並且提供動畫支持、Material Design 集成以及全新的 Flutter 設計界面。此外,Supernova 還新推出了一款基於瀏覽器的設計工具 Supernova Cloud,該工具完全使用 Flutter web 開發。

Rive (前身爲 2Dimensions,曾發佈 Flare 圖形工具) 此前宣佈將公司名稱與旗下產品整合到一個品牌下。他們公佈了公司和產品的新名稱 Rive 以及一系列新特性。其中最值得注意的一項特性可能是支持導入由 Adobe After Effects 生成的 Lottie 文件,這樣一來,就能夠實現 Flutter 與現有動畫工作流的深度集成。Rive 現已爲多種層疊效果添加了支持,例如投影、內陰影、光暈、模糊和遮照。

在 Rive 的協助下,用戶無需再在代碼中重新創建一遍設計和動畫,從而大大簡化了設計師與開發者之間的交接工作。 這意味着設計師可以隨時進行迭代和更改。 由於 Rive 輸出的文件可以直接與 Flutter 集成,而不僅僅是 MP4 視頻或 GIF 圖像,因此 Rive 允許您創建複雜且動態的交互、遊戲角色、動畫圖標和引導界面。

助力 Flutter 成爲創意畫布的最後一項合作來自於 Adobe 。Adobe 最近剛宣佈爲 Creative Cloud 添加 Flutter 支持 ,只需一個插件,用戶就可以將 Adobe XD 導出到 Flutter。Adobe XD 是 Adobe 針對用戶體驗設計推出的一體化平臺,可幫助產品設計團隊爲移動、網頁、桌面等平臺設計並創建產品原型。全新的 XD-to-Flutter 插件可以將 XD 設計自動轉換成代碼,開發者可以直接把這些代碼添加到自己的 Flutter 開發工作中,再也不用從通過設計參數琢磨設計師想要達到的效果。

XD-to-Flutter 插件將於明年上半年與各位開發者見面。如果您想了解更多插件的相關信息,請前往 Adobe 網站 註冊參加優先體驗計劃 。我們很高興能與 Adobe 合作,他們在可擴展設計工具領域的傑出表現將爲產品設計師提供超強助力,幫助他們打造卓越 Flutter 體驗。

  • 註冊參加優先體驗計劃

    https://xd.adobelanding.com/xd-to-flutter

結語

Flutter 的核心在於: 它是一個開源項目。我們爲 Google 創造的價值來源於兩個部分,其一,Flutter 提高了內部產品團隊的開發效率;其二,同時也是更重要的一點,我們與您攜手一同打造屬於您的 Flutter,因爲我們知道生態圈和開發者社區的發展能夠爲我們所有人都帶來裨益。到目前爲止,我們的 Flutter 之旅已經從最初的以移動設備爲中心,逐步發展成爲涵蓋各色機型的 UI 平臺。我們將繼續加強研發投入,爲您帶去更棒的設計與開發工具,讓您效率與設計雙管齊下。

不過最令我們開心的是,我們看到 Flutter 幫助一位開發者將想法變爲現實,並將這份精彩分享給世界。點擊收看 視頻 ,感受一個家庭對全球 Flutter 貢獻者的誠摯感謝,不論您曾爲 Flutter 貢獻過代碼,或是提交或錯誤報告和修復,還是與社區分享過知識,我們感恩一路有您相伴!

  • 視頻

    https://www.youtube.com/watch?v=qnofZc6Pn3Y

Flutter 開發者社區中文資源:   https://flutter.cn

點擊屏末    |   即刻開啓 Flutter 跨平臺開發之旅

想了解更多 Flutter 內容?

  • 在公衆號首頁發送關鍵詞 "Flutter",獲取相關歷史技術文章;

  • 還有更多疑惑?歡迎點擊菜單 "聯繫我們" 反饋您在開發過程中遇到的問題。

推薦閱讀

相關文章