Flutter 全新 1.5 版本發佈: 全平台製霸!新增 Web 和嵌入式平台

Flutter 作為Google的移動 UI 框架,在快速構建 iOS 和 Android 應用及開發、高性能、可移植性上表現優秀,並可以與現有代碼一起工作,基於這些特點使其越來越受到開發者的推崇。在本次舉行的 2019 Google I/O 大會上,公布了 Fluttery 實現 web 訪問、提供自定義圖像分類模型的新特性,並介紹 Flutter 在桌面系統及嵌入式設備中的應用與未來的發展,對於開發者來說可謂是福音連連,下面跟著小編來圍觀下吧。

今天是Flutter 框架發展歷程中的一個重要轉折點,因為我們將把項目的重點由移動平台擴展至更為廣泛的設備領域。在本屆 I/O 大會上,我們發布了Flutter for Web的第一個技術預覽版本,宣布 Flutter 已經在為包括 Google Home Hub 在內的多種穀歌智能顯示平台提供支持,並通過 Chrome OS 邁出了桌面級應用程序支持的第一步。

從移動到多平台

長久以來,Flutter 開發團隊的使命一直是為 iOS 以及 Android 移動應用開發者提供最理想的框架選項。在我們看來,移動開發如今已經基本成熟,但由此帶來的問題是開發人員不得不在兩種平台之上重複構建相同的應用程序,或者在使用跨平台框架時面對一系列功能性妥協。Flutter 希望找到最佳平衡點,即能夠為同一代碼庫提供美觀、快速且量身定製的使用體驗,並盡可能為這兩大移動平台陣營的開發者們帶來理想的生產力水平。我們很高興看到我們的早期工作成果,一步步發展成為最受大家歡迎的開源項目之一

去年,我們開始構建Flutter 項目的 1.0 版本,並希望借此機會將其進一步拓展至其它平台。這一發展思路主要源自越來越依賴於 Flutter 的Google內部團隊,以及Dart 平台為其提供可移植性體驗的潛力。具體來講,我們已經為 Dart 構建起一套面向內部小型開發團隊的 Web 框架,這個探索性的項目被定名為「Hummingbird」,用於評估 Flutter 引擎面向標準 Web 開發環境的移植可能性。

該項目的結果令人吃驚。而且需要承認的是,項目的成功在很大程度上要歸功於 Chrome、火狐以及 Safari 等網路瀏覽器的快速發展。這些瀏覽器目前普遍提供對圖形、動畫以及文本的硬體加速能力,亦可快速完成 JavaScript 執行任務。在項目開始的幾個月內,我們就成功構建起了核心 Flutter 框架原型,並在不久之後開始在移動與桌面瀏覽器之上運行項目演示。除了 Dart 的良好 Web 編譯能力之外,這個項目也證明了我們確實能夠將 Flutter 框架以及相關應用程序融入 Web 端並加以運行。

與此同時,核心 Flutter 項目也一直在推動桌面級應用程序的開髮腳步,包括適應鍵盤與滑鼠等輸入範式、窗口大小調整以及發布適用於 Chrome OS 應用程序開發的工具等等。我們將 Flutter 嵌入至運行在 Windows、Mac 以及 Linux 平台上的各類桌面級應用程序,由此帶來的探索性成果也逐漸被納入至核心 Flutter 引擎當中。

適用於各類設備的可移植 UI 框架

值得一提的是,高性能、可移植 UI 框架本身具有巨大的商業潛力,因此 Flutter 框架完全可以立足單一代碼庫為各種各樣的設備及其不同尺寸的螢幕提供美觀且量身定製的良好使用體驗。

對於初創公司而言,通過單一應用程序對接移動、Web 以及桌面設備,意味著其能夠從起步之初就覆蓋到全部受眾,而不用受到各平台間不同技術的限制。而在大型組織這邊,通過單一代碼庫為所有用戶提供相同的使用體驗,則能夠有效降低複雜性與開發成本,並確保他們能夠專注于提高體驗質量。

憑借著對移動、桌面以及 Web 應用程序的全面支持,我們的使命也得到了進一步擴展:我們希望構建起一款最佳框架,能夠在任何螢幕之上提供良好的使用體驗。

Flutter for Web

就在本周,我們將發布 Flutter for Web 的第一個技術預覽版本。雖然這項技術仍在開發當中,但我們已經準備好向早期使用者提供試用成果並接受相關反饋。我們對於 Flutter for Web 的初步設想,並不是為 HTML 優化型文檔提供通用的替代性體驗方案;相反,我們打算將其打造成一種能夠構建起高度互動且圖形豐富的應用內容的理想方法,事實上這種綜合性 UI 框架的優勢也正在於此。

為了展示 Flutter for Web,我們與《紐約時報》合作製作了一段演示。除了全球領先的新聞報道能力之外,《紐約時報》還一直以質量上乘的填字遊戲與其它益智小版塊而為人稱道。他們希望能夠將這些充滿樂趣的要素在任意設備之上重現,因此其開發團隊意識到了 Flutter 的可觀價值,即有望成為解決其需求的理想方案。他們也發現,利用相同代碼實現 Web 訪問代表著一種巨大的福音。在本周召開的Google I/O 大會上,大家可以親眼見證他們如何利用相同的代碼在 Android、iOS、Web、Mac 以及 Chrome 等操作系統運行KENKEN 益智遊戲

以下是《紐約時報》益智遊戲版塊執行總監 Eric von Coelln 對於 Flutter 使用體驗的評價:

「〈紐約時報〉的填字遊戲版塊擁有超過 40 萬名獨立訂閱用戶,其輕鬆愉快的體驗也成為很多人日常生活中不可或缺的一部分。除了填字遊戲之外,我們也增加了益智版塊的內容豐富度,每月有超過 200 萬人次成功完成了我們發布的小遊戲。」
「我們已經開始探索如何將 Flutter 項目作為潛在的解決方案,從而開發出引人入勝且質量精良的移動端遊戲體驗。現在,能夠發布到 Web 這一新加功能使 Flutter 成為一個更具吸引力的選項,意味著我們能夠在所有用戶平台上快速部署智能遊戲。我們高興地看到,這款解決方案已經成功將我們基於 Flash 的 KenKen 遊戲發布在更多平台之上。」

關於 Flutter for Web,我們還有很多值得介紹的新鮮內容。感興趣的朋友可以訪問 Flutter 部落格查看關於Flutter for Web 的文章

作為項目的早期開發階段,我們渴望聽到更多朋友關於使用 Flutter for Web 的反饋聲音。我們希望快速開發代碼、高度關注性能,並將相關代碼庫與 Flutter 項目的其它組成部分加以良好協調。

移動平台的 Flutter

核心 Flutter 框架也將在本周得到升級,我們將通過穩定管道向您提供Flutter 1.5版本。Flutter 1.5 當中包含根據數百位開發人員的反饋所做出的調整,例如新的 App Store iOS SDK 更新、iOS 與 Material 小工具更新、引擎對於新型設備的支持,以及 Dart 2.3 帶來的全新UI-as-code語言功能等等。

隨著框架本身的發展成熟,我們也開始投資建立技術支持生態系統。Flutter 的架構模型一直堅持走小型核心框架的路線,同時輔以豐富的軟體工具社區。過去幾個月以來,Google為網路視圖、Google地圖以及 Firebase ML Vision 等提供了生產級別的軟體工具包。就在本周,我們也將為應用內購功能提供初步支持。目前 Flutter 項目擁有超過 2000 個可用的開源軟體包,足以滿足絕大部分實際使用需求。

我們本周還在 I/O 大會上公布了一個激動人心的項目,即ML Kit 自定義圖像分類器。利用 Flutter 與 Firebase 構建的這款分類器提供一套簡單易用且基於應用程序的工作流程,允許您借此創建自定義圖像分類模型。大家可以通過智能手機上的攝像頭收集訓練數據,邀請其他人為您的數據集做出貢獻,觸發模型訓練操作,並使用這些訓練完成的模型——所有這一切,都將由同一款應用程序提供。

Flutter 將繼續在發展與普及的道路上堅定前行。包括 eBay、Sonos、Square、第一資本、阿里巴巴以及騰訊在內的這些要求愈發嚴苛的客戶,都在利用 Flutter 開發應用程序,並對項目的良好表現感到非常滿意!以下是 eBay 公司高級開發人員 Larry McKenzie 對於 Flutter 項目的評語:

「Flutter 速度很快!以往需要幾天才能實現的功能,如今我們已經可以在一天之內完成。我們過去投入大量時間解決的很多問題,現在也完全消失了。我們的團隊如今可以專注于創造更優質的用戶體驗與實際功能。Flutter 的表現超越了我們的期望!」

再來看看更為宏觀的觀點。領英公司最近進行了一項研究,根據過去 12 個月當中網站成員在個人資料中新添加的訊息,結果顯示 Flutter 在軟體工程師當中成為發展速度最快的技能。而在最近的 2019 年 StackOverflow 開發人員調查當中,Flutter 也被評選為最受歡迎的開發人員框架之一

走向桌面

Flutter 項目也將在桌面系統中得到廣泛應用。幾個月以來,我們一直在進行一個實驗性質的桌面項目,並逐步把相關成果融合至 Flutter 引擎當中以作為主版本的新增內容。雖然這些目標還沒有達到生產級水平,但我們已經發布了早期說明,可用於在 Mac、Windows 以及 Linux 之上開發各類 Flutter 應用程序。

另一個快速增長的 Flutter 平台當數 Chrome OS。目前,Chromebook 每年售出數百萬台,且主要集中在教育領域。Chrome OS 可謂 Flutter 的完美運行環境,包括使用 Flutter 應用程序以及作為開發者平台。這主要是因為 Chrome OS 能夠支持 Android 與 Linux 應用程序的運行。利用 Chrome OS,您可以使用 Visual Studio Code 或者 Android Studio 開發出一款 Flutter 應用程序,並能夠在無需模擬器的前提下在同一設備進行本地測試與運行。另外,大家也可以將適用於 Chrome 操作系統的 Flutter 應用程序發布至 Play 應用商店,使得數百萬用戶得以從您的創作當中受益。

Flutter 的嵌入式設備之旅

作為 Flutter 可移植性的最後一個例子,我們正嘗試在各類嵌入式設備之上運行 Flutter 應用程序。我們最近發布的示例,證明 Flutter 能夠直接運行在 Raspberry Pi 等小型設備之上。我們還為 Flutter 添加了嵌入式 API,使其能夠順暢對接智能家居以及汽車等平台。

作為普及度最高的嵌入式平台之一,Google Home Hub 等智能顯示操作系統如今也實現了對 Flutter 的運行支持。

在Google公司之內,部分面向智能顯示平台所開發的功能正是出自 Flutter 項目之手。智能助手團隊也很高興能夠在未來幾個月內,繼續利用 Flutter 擴展智能顯示平台的功能組合;他們今年之內的發展目標,就是利用 Flutter 提升整個系統 UI。

其它資源

  • 開發人員們經常會詢問我們該如何開始使用 Flutter。為了解決這個疑問,我們今天也很高興地向大家公布由The App Brewery開發的Flutter 全面培訓課程。順帶一提,他們是 Udemy 網站上評分最高的 iOS 培訓課程的作者。他們的新課程為 Flutter 項目準備了超過 30 個小時的學習內容,包括視頻、演示與動手實驗室等。我們Google也提供了相關贊助,為此次公布的最新課程提供限時折扣——其零售價由 199 美元力減至僅需 10 美元。

  • 很多開發人員都在利用 Flutter 創建激動人心的應用程序。在Google I/O 大會的籌備階段,我們還舉辦了一場名為 Flutter Create 的比賽,鼓勵開發人員使用 Flutter 構建出不超過 5 KB 的 Dart 代碼的應用成果。我們收到了來自世界各地超過 750 份參賽作品,其中不少成果讓我們驚嘆于在如此嚴格的代碼量要求下,人們仍然能夠實現難以置信的種種功能。

  • Flutter 項目不再是一套單純的移動框架,而將成為一款多平台框架,能夠幫助您隨時隨地與用戶對接。我們期待著大家能夠立足 Web、桌面、移動以及其它各類設備平台之上運用 Flutter 構建出更多精彩內容!