這次發佈的版本是繼上次 I/O大會衆多重要功能發佈以來的一次小更新。Flutter 1.7 包含了對 AndroidX 的支持,知足了 Play 商店近期對應用提出的要求,包含了一些新的和加強過的組件,修復了開發者們提出的 bug 等。html
若是你已經安裝並使用默認穩定構建渠道 (stable channel) 的 Flutter,只須要運行 flutter upgrade 命令便可升級到 1.7 版本。同時,若是你尚未安裝Flutter,你還能夠在 這個文檔裏 查看如何新安裝 Flutter。react
本次更新的內容包括:android
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 的中的一項來支持,接下來的文章中會爲你們帶來更多相關的內容。git
從 2019 年 8 月 1 日開始,爲了 target 到 Android Pie 版本,開發者們在 Google Play 上發佈的應用 必須支持 64 位架構。Flutter 一直都支持生成 64 位的 Android 應用,在 1.7 版本里,咱們加入了對 Android App Bundles 的支持,開發者們能夠在一次提交裏同時 target 到 64 位和 32 位。可經過閱讀 這篇文檔 瞭解到如何分別生成 32 位和 64 位到應用等更多內容。github
爲了讓你的應用在任何平臺上看起來更加平滑天然,咱們會持續在平臺相關的 widgets 上投入。編程
以下所示,是一個名爲 RangeSlider 的 widget,幫助你在單個滑塊兒上選擇一組值:
RangeSlider
更新以後的 SnackBar 支持了最新的 Material 規範,文檔裏增長了許多樣例代碼。api
SnackBar
Cupertino 是用來構建精美的 iOS 體驗的 widgets 庫,咱們對其進行了大量的更新。特別提出的是,咱們提升了 CupertinoPicker 和 CupertinoDateTimePicker widget 的保真度,並增長了對非英語語言本地化的支持。提升了 CupertinoPicker 和 CupertinoDateTimePicker widget 的保真度。安全
咱們提高了 iOS 上的文本選擇和編輯體驗。此外,咱們新增了一個示例,關於如何使用同一份代碼庫,調整不一樣平臺的操做體驗和適配。架構
文本渲染有了很大的提高,支持了豐富的排版樣式: 包括數字表格式對齊、舊式風格數字 (tabular and old-style numbers)、斜線零 (slashed zeros)、樣式集 (stylistic sets),如這個示例應用截圖所示:
除此以外,咱們還加入了遊戲控制器的支持,這會帶來更好玩的應用出現嗎?app
整個團隊付出不少努力推出了 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 widgets 視頻嵌入到文檔中,在開發者們瀏覽各類 widget 的時候能夠獲得更全面的理解。
還有一些幕後的設施建設工做正在進行,以便 Flutter app 更好的在 macOS 和 Windows 平臺運行。好比支持一些較爲重要的平臺操做,好比右鍵和一些特別的平臺基建工做(好比 MSBuild 等)。不過,這些非移動平臺的支持目前尚未在穩定構建渠道 (stable channel) 發佈。
最後,當你在蘋果電腦上開發 Flutter 應用的時候,咱們支持了 新的 Xcode 構建系統,這個對新的應用是默認開啓的,也同時方便 支持現有的應用。
一如既往,咱們很是高興看到 Flutter 在受衆羣體和應用場景上繼續持續增加,同時咱們也欣賞各類不一樣的 Flutter 使用方式。自 I/O 以來,Flutter 團隊致力於全球範圍內的各項活動:從中國的 GMTC 到紐約和墨西哥的交流會和演講等,面對面對你們交流 Flutter 應用開發是一件特別棒的事情。
以前咱們提到過 Reflectly,它是一個丹麥的公司,他們在 iOS 和 Android 平臺開發了很是有吸引力的應用程序。他們的應用程序被美國 iPhone 應用商店評爲當日最佳應用。這也證實了 Flutter 的真正潛力遠遠超過實現體驗流暢的應用(同時能夠幫助開發者得到成功)。
查看 Reflectly 的開發者成功故事,能夠點擊下面的連接地址:https://v.qq.com/x/page/t0889...
在柏林的 WeAreDevelopers 大會中,BMW 發佈了他們基於 Flutter 的應用,目前已經在開發中。下面這段描述來自 Guy Duncan,他是 BMW 集團互聯公司的 CTO:
經過結合 Dart 和 Flutter,咱們實現了第一個真正跨平臺的移動工具包;咱們認爲它打破了原有的遊戲規則,能夠平衡數字交互和物聯網的功能特性。 經過使用主流的工具鏈、自動化工具和現代化的編程模式,咱們能夠優化循環時延、安全性、商業應用特性的推送成本。
除了應用程序,整個開源社區所涉及的衆多 資源,插件, Flutter 社區活動 和 Meetup 也使得 Flutter 變得格外生機勃勃。咱們會持續關注你們基於 Flutter 所實現的各類有趣的應用,同時也很是榮幸和你們一塊兒分享其中的樂趣。