【文章內容使用 Gemini 1.5 Pro 自動產生】
宣布 Flutter 1.7
今天,我們很高興 宣布 Flutter 1.7 正式推出,這是繼 Google I/O 上重大功能發佈後,一個較小的版本。Flutter 1.7 包含對 AndroidX 和更新的 Play Store 要求的支援、許多新的和增強的元件,以及對客戶報告問題的錯誤修復。
如果您已經在您的系統上安裝了 Flutter,並且您使用的是預設的穩定頻道,您可以透過命令列執行 flutter upgrade
來升級到 1.7 版。更新的版本也包含在 新的 Flutter 安裝 中。
新增應用程式的 AndroidX 支援
AndroidX 是一個由 Jetpack 團隊提供的新開源支援函式庫,它有助於 Android 應用程式在不犧牲向後相容性的情況下,使用最新的元件保持更新。由於 AndroidX 自身已經穩定,並且許多 Flutter 套件已更新以支援它,Flutter 支援 使用 AndroidX 建立新的 Flutter 專案,這減少了整合到 Android 生態系統其他部分所需的工作。
在建立 Flutter 專案時,您可以加入 --androidx
旗標,以確保產生的專案以新的支援函式庫為目標。有關將現有專案遷移到 AndroidX 的資訊,請參閱 flutter.dev 上的資訊。我們正在積極努力為混合使用 AndroidX/Android 支援函式庫的應用程式(例如在「新增至應用程式」情況下)提供 AndroidX/Jetifier 支援,並將在接下來的文章中分享更多有關此方面的資訊。
支援 Android 應用程式套件和 64 位元 Android 應用程式
從 2019 年 8 月 1 日起,使用原生程式碼且以 Android 9 Pie 為目標的 Android 應用程式在發佈到 Google Play 商店時,需要提供 64 位元版本,除了 32 位元版本。雖然 Flutter 長期以來一直支援產生 64 位元 Android 應用程式,但 1.7 版新增了對建立 Android 應用程式套件 的支援,這些套件可以從單次提交中以 64 位元和 32 位元為目標。請參閱更新的 關於發佈基於 Flutter 的 Android 應用程式的文件,以了解如何執行此操作,以及如何為 32 位元和 64 位元設備建立獨立的 APK 檔案。
新的 Widget 和框架增強
我們希望您的應用程式看起來很棒,並且感覺很自然,無論您以哪個平台為目標。因此,我們將繼續更新和增強 Android 和 iOS 上可用的 Widget。
此版本具備新的 RangeSlider 控制項,讓您可以在單個滑桿上選擇一系列值(例如,最小和最大溫度值):
更新的 SnackBar Widget 支援 Material 規格中更新的外觀,並且 新增了許多 新 範例 到文件 中 。
對於 Cupertino,用於建立像素完美的 iOS 應用程式的 Flutter 函式庫,我們進行了許多更新。特別是,我們改進了 CupertinoPicker 和 CupertinoDateTimePicker Widget 的保真度,並加入了對非英語語言的本地化支援。
我們還對 iOS 上的文字選取和編輯體驗 進行了重大改進,無論您使用的是 Material 還是 Cupertino 設計語言。此外,新的範例 展示了如何在 iOS 和 Android 之間進行更重大的平台適應,同時保留相同的程式碼庫。
文字渲染得到了重大升級,支援豐富的 排版功能,包括表格數字和舊式數字、斜線零和風格集,如 此演示 所示:
最後,我們加入了對 遊戲控制器 的支援。這會導致一些有趣的 Flutter 應用程式嗎?您告訴我們吧!
關注基本面
Flutter 1.7 代表著團隊為回應客戶報告問題所做出的大量努力,自我們上次穩定版本發佈以來,在兩個月的時間裡,已解決了 1,250 多個問題。
隨著 Flutter 的快速成長,我們看到越來越多新的問題被報告,為了透明起見,當我們的專案規模較小時運作良好的錯誤處理過程現在效果不佳。因此,儘管我們在解決已分類問題方面取得了進展,但我們的公開問題數量在過去幾個月顯著增加。我們正在努力增加這方面的員工,這將有助於更快地解決新錯誤,解決和合併重複問題,並將支援請求重新導向到 StackOverflow。
在最近的調查中,許多人表示希望看到我們繼續投資於文件和錯誤訊息。這项工作的一個关键部分是为我们的错误提供更好的结构,以便像 VS Code 和 Android Studio 这样的工具将来可以利用它。您可以查看 問題 34684 中的示例。
我們還解決了最常發生的崩潰錯誤,即當 Flutter 工具無法寫入 Flutter 目錄時產生的錯誤。如果使用者沒有寫入權限,Flutter 現在會在無法寫入的情況下優雅地失敗,並提供更明確的指示說明如何修復問題。
在文件方面,我們有一個不斷增加的範例列表,可以直接從 flutter create
工具中建立。從命令列,您可以執行以下命令:
1 | flutter create --sample=material.AppBar.1 mysample |
如果範例可以透過這種方式建立,您會在文件中看到一個「應用程式中的範例」標籤,例如 此 AppBar Widget 的範例:
我們還將繼續將熱門的 每週 Widget 影片直接嵌入到文件,作為一種簡單的方法來了解 Flutter 工具箱中各種 Widget。
在幕後,您會看到為在 macOS 和 Windows 上啟用 Flutter 而建立基礎架構的許多底層工作,以及對重要概念的進一步支援,例如右鍵點擊和獨特的平台基礎架構,例如 MSBuild。但是,穩定頻道中尚未提供對非行動平台的支援。
最後,當您在 Mac 上建立 Flutter 應用程式時,我們現在支援 新的 Xcode 建立系統。這是在新的專案中預設啟用的,並且 很容易為現有專案啟用。
不斷成長的 Flutter 社群
與往常一樣,看到 Flutter 的普及程度和使用率持續增長令人興奮,我們也慶祝大大小小的客戶使用 Flutter 的方式。自 I/O 以來,團隊一直忙於世界各地的各項活動:從中國的 GMTC 到紐約和墨西哥的聚會和演講;很高兴能与你们中的许多人见面,并了解你们正在构建的一些应用。
之前我們已經討論過 Reflectly:一家小型丹麥公司,他們為 iOS 和 Android 建立了一個美麗的正念應用程式。他們的應用程式剛被評選為美國 iPhone 應用程式商店的「每日應用程式」,這證明了 Flutter 應用程式完全有能力提供參考品質的體驗:
在柏林的 WeAreDevelopers 會議上,BMW 宣布了他們新的基於 Flutter 的應用程式,該應用程式目前正在開發中。以下是 BMW 連接公司 CTO Guy Duncan 的說法:
“透過結合 Dart 和 Flutter,我們拥有第一个真正的跨平台移动工具包;我们认为它是一个改变游戏规则的工具,可以确保数字接触点和物联网的功能一致性。
透過採用世界一流的工具、自動化和現代化的函數式程式設計模式,我们可以缩短功能周期时间,提高安全性和降低业务功能的交付成本。”
當然,除了應用程式之外,開源社群是使 Flutter 成为一個如此有趣的工作場所的原因,它擁有許多 資源、Plugin、活动 和 聚会。我們對您如何使用 Flutter 以及能夠與大家分享樂趣感到驚嘆不已!
宣布 Flutter 1.7 最初發佈在 Flutter 上的 Medium,人們在那裡透過突出顯示和回應這個故事來繼續討論。