0%

【文章翻譯】Progress of the Flutter Package Ecosystem

【文章內容使用 Gemini 1.5 Pro 自動產生】

Flutter 和 Dart 套件生態系統的進展

Flutter 和 Dart 套件生態系統仍然是開發人員從單一程式碼庫為任何螢幕構建美麗、高效能應用程式的關鍵推動因素。該生態系統在 2023 年成長了 26%,從 1 月份的 38,000 個套件增加到 12 月份的 48,000 個。

Line chart depicting the growth in number of packages on pub.dev in 2023

截至 2024 年 1 月,Pub.dev 擁有超過 700,000 名月活躍使用者。Flutter 團隊仍然熱衷並致力於支持這種未來發展,並使開發人員能夠使用和貢獻 Flutter 和 Dart。在此更新中,我們將回顧最新的 Flutter Favorites、套件生態系統虛擬峰會的結果,並分享一些值得注意的更新和需要了解的事項。

新的 Flutter Favorites

Flutter Favorite logo

Flutter Favorites 程式表彰並幫助開發人員發現最高品質的套件,供他們在應用程式中考慮使用。我們很高興宣布七個新的 Flutter Favorite 套件,它們已證明了卓越的品質、人氣和社群參與度,使它們成為 Flutter 開發人員的無價工具。讓我們深入了解每個套件:

  1. flame:一個適用於 Flutter 的高性能 2D 遊戲引擎。其直觀的 API 和豐富的功能集使其成為構建視覺上令人驚嘆且引人入勝的遊戲的理想選擇。查看 這個 Codelab 以嘗試使用 flame 構建遊戲。
  2. flutter_animate:使用這個強大的動畫函式庫讓您的 UI 動起來,它可以簡化複雜的動畫,並使所有 Flutter 開發人員都能使用它。其宣告式語法和豐富的文檔使建立流暢且富表現力的動畫變得輕而易舉。
  3. riverpod:一個優雅的套件,提供一種功能強大且直觀的方法來管理應用程式狀態。其簡化的 API、性能、可擴展性和可測試性使其成為現代 Flutter 應用程式的引人注目的選擇。
  4. video_player:對於任何希望在其 Flutter 應用程式中整合影片播放的人來說,這都是必不可少的。它提供了一個 Widget 來顯示影片內容。它支援各種格式和來源,包括網路資源和基於檔案的影片。這使其成為構建富含多媒體的 Flutter 應用程式的多功能工具。
  5. macos_ui:對於以 macOS 為目標的開發人員來說,這個套件可以在該平台上創造出設計感覺恰如其分的應用程式。它提供了一套豐富的 Widget 和组件,這些 Widget 和组件的樣式符合 macOS 設計語言,確保您的 Flutter 應用程式不僅在 macOS 上運行良好,而且看起來和感覺都像原生應用程式。
  6. fpdart:這個套件在 Dart 中啟用函數式編程。它非常適合實現商業邏輯,例如,在函數式編程範式(如不可變性、純函數和高階函數)以及 fpdart 對 Dart 類型系統的使用方面,它有助於構建更易於維護和可預測的程式碼。
  7. flutter_rust_bridge:對於希望在應用程式中利用 Rust 和 Flutter 最佳功能的開發人員來說,flutter_rust_bridge 在兩個世界之間提供了一個無縫的橋樑。它使原生 Rust 程式碼能夠與 Flutter 無縫交互,解鎖 Rust 性能和記憶體安全性在 Flutter 應用程式中的潛力。

終止 Happy Paths 程式

我們決定終止 Happy Paths 程式,以便專注於 Flutter Favorites。Happy Paths 建議的願景是幫助您做出明智的決定,以便找到和使用套件來為您的應用程式添加功能。我們很幸運有像 Flutter Gems 這樣的社群倡議,它們是導航分類良好的套件選項的綜合資源。隨著我們專注於 Flutter Favorites 程式,我們將繼續在 Flutter 和 Dart 社群的意見和回饋的基礎上對其進行改進。

套件生態系統虛擬峰會

The Flutter and Dart Ecosystem Virtual Summit 2023 landing page

在 2023 年 8 月底,我們為 Flutter 和 Dart 套件生態系統舉辦了首次 虛擬峰會,超過 50 位非 Google 和 Google 貢獻者參加了 pub.dev。我們最初的邀請名單相對較小,以適合 unconference-style 的格式,並在弄清楚未來可能呈現的樣子之前,從這次首次活動中學習。目的是將貢獻者聚集在一起,進行 unconference-style 的討論,以便在社群中進行規劃、教育、學習和分享。我們進行了三個討論會,每個討論的主題都是由註冊參加者在峰會開始前的幾週中投票決定的。三個討論主題是:1)構建高品質套件——最佳實踐和挑戰,2)長期維護套件——可持續模式,以及 3)Flutter 和 Dart DevTools 擴展。對活動後調查的回覆為我們提供了寶貴的回饋,我們將在未來的活動規劃中將這些回饋納入其中。謝謝您!總體而言,我們認為這次首次峰會取得了成功。展望未來,我們渴望與社群合作舉辦類似的獨立活動,或者將焦點放在 Flutter 和 Dart 生態系統上的議程,並將其設定在更通用的活動中。

對 Pigeon 套件的更新

Pigeon 套件 是一個程式碼生成工具,它簡化了 Flutter 應用程式與平台特定程式碼之間通信的設定過程。這使得 Pigeon 在以下兩種情況下都很有用:1)在直接撰寫 Flutter 應用程式與平台原生 API 之間的自定義整合時,例如在 add-to-app 情況下,以及 2)在撰寫 Flutter Plugin 以為平台原生 API 提供 Dart API 表面時。它由 Flutter 團隊維護,該團隊在今年對該套件進行了以下值得注意的改進:

  • 加入對 Swift、Kotlin 和 C++ 的支援(C++ 解鎖 Windows 支援)。
  • 現在強制執行空安全。
  • 擴展對原始數據類型支持的支持。例如,枚舉被加入為支援的類型。
  • 加入可空參數。
  • 在主機和 Flutter API 上加入錯誤處理。
  • 改進了工具的人體工程學,使其更易於使用和更直觀。例如,我們加入了對預設參數和命名參數的支持。

在 1 月份的 v5.0.0 和 12 月份的 v15.0.2 之間,還有很多我們無法在此處列出的開發工作,因此請查看 變更日誌 中的所有變更!

DartPad 中的套件

DartPad 支援一組固定的套件,您可以透過點擊螢幕右下角的資訊圖示來查看這些套件。Google 的 Flutter 和 Dart 團隊會持續審查和優先處理套件請求。如果您希望將套件加入到 DartPad,請為 現有套件建議 點擊赞成(如果有),或者 開啟一個新的議題 提出您的建議。

Screenshot of packages on Dartpad.dev

建議在 pub.dev 上使用規範主題

在 2023 年,我們推出了讓套件作者能夠在 pubspec 檔案中使用 1-5 個自由文本主題為其套件加標籤的功能。目標是透過加入一種套件分類方式來改善潛在使用者發現套件的體驗。我們看到這個功能取得了良好的效果,許多套件都進行了標籤化。我們正在探討一個提案,透過合併實際上相同的主题來改進這個功能(例如,widget 和 widgets)。我們邀請社群對此 規範主题議題 分享回饋或貢獻 PR。

An example of Topics on a package on pub.dev

目前就這些了!若要與優秀的套件作者社群互動,請查看 Discord 頻道 #package-authors(您首先需要加入 Flutter Discord 伺服器)。


Flutter 套件生態系統的進展 最初發佈在 Flutter 上的 Medium,人們在那裡透過突出顯示和回應這個故事來繼續討論。