Flutter 1.7 正式版釋出

Flutter發表於2019-07-11

今天,我們非常高興地向大家宣佈又一個正式版本的釋出 —— Flutter 1.7,這是繼上次 I/O 時眾多重要功能釋出以來的一次小更新。Flutter 1.7 包含了對 AndroidX 的支援,滿足了 Play 商店近期對應用提出的要求,包含了一些新的和增強過的元件,修復了開發者們提出的 bug 等。

Flutter 1.7 正式版釋出

如果你已經安裝,並使用預設穩定構建渠道 (stable channel) 的 Flutter,要升級到 1.7 版本,只需要執行 flutter upgrade 即可。同時,你可以在 這個文件裡 檢視如何新安裝 Flutter。

支援 AndroidX

AndroidX 是 Android 團隊用於在 Jetpack 中開發、測試、打包和釋出庫以及對其進行版本控制的開源專案,幫助 Android 應用通過最新的元件保持更新而無需犧牲向後相容性。目前 AndroidX 已經穩定,很多 Flutter packages 已經更新和支援它,Flutter 現在可以支援 建立一個 AndroidX 專案 (new Flutter project with AndroidX) 了,這也減少了與 Android 生態系統整合所你需要做的工作。

當建立 Flutter 專案的時候,你可以通過新增 --androidx 來確保生成的專案檔案支援 AndroidX,更多關於將專案遷移到 AndroidX 的相關資訊,請訪問 官方文件 上的說明。我們也在積極努力為使用了 AndroidX 和 Android 混合庫的應用帶去 AndroidX 或 Jetifier 的支援,也會將其作為 add-to-app 的中的一項來支援,接下來的文章中會為大家帶來更多相關的內容。

支援 Android App Bundles 和 64 位的 Android 應用

從 2019 年 8 月 1 日開始,為了 target 到 Android Pie 版本,開發者們在 Google Play 上釋出的應用 必須支援 64 位架構。Flutter 一直都支援生成 64 位的 Android 應用,在 1.7 版本里,我們加入了對 Android App Bundles 的支援,開發者們可以在一次提交裡同時 target 到 64 位和 32 位。可通過閱讀 這篇文件 瞭解到如何分別生成 32 位和 64 位到應用等更多內容。

新一批的 widget 和框架的功能增強

我們希望你的應用在任何平臺上都可以看起來平滑自然,我們會持續在平臺相關的 widgets 上投入。

如下所示了一個名為 [RangeSlider](https://github.com/flutter/flutter/pull/31681) 的 widget,幫助你在單個滑塊兒上選擇一組值:

Flutter 1.7 正式版釋出

RangeSlider widget 支援連續或者分散的效果

更新之後SnackBar 支援了最新的 Material 規範,文件裡增加了許多 樣例程式碼

Cupertino 是用來構建精美的 iOS 體驗的 widgets 庫,我們對其進行了大量的更新。特別提出的是,我們提高了 CupertinoPickerCupertinoDateTimePicker widget 的保真度,並增加了對非英語語言本地化的支援。

我們提升了 iOS 上的 文字選擇和編輯體驗。此外,我們新增了一個 示例,關於如何使用同一份程式碼庫,調整不同平臺的操作體驗和適配。

文字渲染有了很大的提升,支援了豐富的 排版樣式:包括數字表格式對齊、舊式風格數字 (tabular and old-style numbers)、斜線零 (slashed zeros)、樣式集 (stylistic sets),如這個示例應用截圖所示:

Flutter 1.7 正式版釋出

有了 OpenType 的字型支援,你可以用 Flutter 進行復雜的文字排版了

最後,我們加入了對 遊戲控制器 的支援,會有更好玩的應用出現嗎?

初心不忘

整個團隊付出很多努力推出了 Flutter 1.7 正式版,我們解決了開發者們在 GitHub 上提出的 1250 多個問題

隨著 Flutter 的快速增長,我們看到大家向我們報告了很多新的問題。為了保證專案過程的透明,我們一直在通過 GitHub 執行著這一套錯誤報告系統,但一些相對較小的專案,目前這個流程工作的並不是非常順利。雖然我們在不想關 issue 關閉上有一些新的進展,但是過去幾個月我們的 issue 還是增長的非常明顯。我們也在努力增加這方面的資源配置,可以幫助我們更快的區分 bug,關閉及合併相同的 issue,以及將一些提問引導到 StackOverflow

在近期的開發者調查裡,很多開發者希望我們在文件和錯誤資訊方面有更持續的投入。一個關鍵部分是能夠在 VSCode 和 Android Studio 裡更結構化的輸出錯誤資訊,我們已經在著手 這方面的工作

我們也修復了崩潰率最高的 bug,Flutter 工具的寫許可權問題。Flutter 現在可以更優雅的處理寫許可權導致的崩潰問題,會又一個明晰的指示關於如何解決。

文件方面,我們會持續增加示例程式碼。與此同時,你也可以通過 Flutter create 命令直接建立示例文件,如下是命令:

flutter create --sample=widgets.Form.1 mysample

如果通過這種方式建立示例,你將在文件中的 Sample in the App 這一欄看到:

Flutter 1.7 正式版釋出

我們也會持續把每週 Flutter widgets 視訊嵌入到文件中,在開發者們瀏覽各種 widget 的時候可以得到更全面的理解。

還有一些幕後的設施建設工作正在進行,以便 Flutter app 更好的在 macOS 和 Windows 平臺執行。比如支援一些較為重要的平臺操作,比如右鍵和一些特別的平臺基建工作(比如 MSBuild 等)。不過,這些非移動平臺的支援目前還沒有在穩定構建渠道 (stable channel) 釋出。

最後,當你在蘋果電腦上開發 Flutter 應用的時候,我們支援了 新的 Xcode 構建系統,這個對新的應用是預設開啟的,也同時方便 支援現有的應用

不斷壯大的 Flutter 社群

一如既往,我們非常高興看到 Flutter 在受眾群體和應用場景上繼續持續增長,同時我們也欣賞各種不同的 Flutter 使用方式。自 I/O 以來,Flutter 團隊致力於全球範圍內的各項活動:從中國的 GMTC 到紐約和墨西哥的交流會和演講等,面對面對大家交流 Flutter 應用開發是一件特別棒的事情。

之前我們提到過 Reflectly,它是一個丹麥的公司,他們在 iOS 和 Android 平臺開發了非常有吸引力的應用程式。他們的應用程式被美國 iPhone 應用商店評為當日最佳應用。這也證明了 Flutter 的真正潛力遠遠超過實現體驗流暢的應用(同時可以幫助開發者獲得成功)。

檢視 Reflectly 的開發者成功故事:www.bilibili.com/video/av566…

在柏林的 WeAreDevelopers 大會中,BMW 釋出了他們基於 Flutter 的應用,目前已經在開發中。下面這段描述來自 Guy Duncan,他是 BMW 集團互聯公司的 CTO:

通過結合 Dart 和 Flutter,我們實現了第一個真正跨平臺的移動工具包;我們認為它打破了原有的遊戲規則,可以平衡數字互動和物聯網的功能特性。 通過使用主流的工具鏈、自動化工具和現代化的程式設計模式,我們可以優化迴圈時延、安全性、商業應用特性的推送成本。

除了應用程式,整個開源社群所涉及的眾多 資源外掛Flutter 社群活動Meetup 也使得 Flutter 變得格外生機勃勃。我們會持續關注大家基於 Flutter 所實現的各種有趣的應用,同時也非常榮幸和大家一起分享其中的樂趣。

Flutter 1.7 正式版釋出

圖片來源: @damian2048

相關文章