0%

【文章翻譯】What we learned from the Flutter Q3 2022 survey

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

關於 Firebase SDK、快速修復和重構,以及目標平台

在過去的幾年中,超過 10,000 名 Flutter 開發人員參與了每季度的使用者調查,以提供回饋給 Flutter 團隊。最近一季也不例外——Flutter 團隊希望收集開發人員關於四個主題的回饋:1)Firebase SDK,2)快速修復和重構,3)目標平台,以及 4)桌面支援。在這些主題中,調查向每位受訪者展示了兩個隨機主題。感謝所有回覆的開發人員!

本文將涵蓋前三個主題的結果。我們將在另一篇文章中涵蓋最後一個主題(桌面開發)。

在深入探討前三個特殊主題的結果之前,我們想報告一下 Flutter 開發人員仍然非常喜歡這個框架。在調查的受訪者中,55% 的人對 Flutter 非常滿意,另外 38% 的人對 Flutter 有點滿意。這使得滿意的開發人員總數達到 93%。這個數字在過去三個季度一直很穩定。非常滿意 的開發人員比例略微下降至 55%。我們計畫追蹤這個指標,並研究是什麼可能導致開發人員的滿意度從 非常滿意 降至 有點滿意

圖 1. 對 Flutter 的滿意度隨時間推移

圖 2 所示,我們的受訪者非常喜歡核心框架、Android 支援和 Material Widgets。我們最大的機會在於 Cupertino Widgets 和 Web 支援。我們將繼續研究改善這些領域的開發人員體驗所需做的事情,並進一步投資以推動其進步。如果您想參與未來的使用者研究,可以在 flutter.dev/research-signup 上註冊。

圖 2. 對子系統的滿意度

Flutter 的 Firebase SDK

Flutter 開發人員使用 Flutter 的 Firebase SDK(又名 FlutterFire)來使用 Firebase 提供的工具和服務。這些包括驗證、資料庫、分析和訊息。目前,在 pub.dev 上有十五個穩定的 Firebase Plugin 套件 可用。由於這些套件被廣泛採用,我們想探討一下什麼樣的學習材料能夠提高其可用性。

我們學到的最有用的資訊是開發人員在嘗試使用各種 Firebase 套件時遇到的問題。如 圖 3 所示,開發人員指出「缺乏實際範例」是他們在嘗試使用新的 Firebase 套件時遇到的最常見問題(14.2%)。這對於具有許多活動部件的複雜套件來說尤其成問題,例如 firebase_messaging 或 firebase_dynamic_links。為了解決這個問題,我們將在 Firebase 文件 中加入更多範例應用程式。我們將加入兩種類型的範例應用程式。第一種,「快速入門範例」將涵蓋特定 Firebase 套件的使用。第二種將提供更複雜的實際範例應用程式,這些應用程式使用多個 Firebase 套件。

圖 3. 採用 Flutter 的新 Firebase SDK 時遇到的問題

在調查中,一些開發人員還選擇了「API 設計過於複雜或不方便」。這個結果在許多套件中都一致,例如 firebase_database、firebase_in_app_messaging,包括前一節中提到的套件。我們發現這個結果值得注意。雖然一些 API 很簡單且很小,但它們涵蓋的概念,例如異步資料,並不像那樣簡單。有鑒於此,我們將努力簡化學習材料。此外,我們還將努力使新舊 API(用於工具和服務)盡可能易於理解。

「總體而言,文件品質很低」是前三個問題中的最後一個。為了回應這個需求,我們計畫改善 Flutter 開發人員的 Firebase 文件。我們將在 Firebase 文件中為 Firebase UI 套件(例如 Firebase UI for Auth)新增新章節,並在整個文件中新增更多程式碼範例。這些改進將在未來幾個季度陸續推出。

快速修復和重構

2022 年的第一個調查 中,開發人員指出,快速修復和重構是我們 IDE 中最缺乏的或支援不足的功能。如 圖 4 所示,我們在 IDE 中支援快速修復和重構,但我們想了解開發人員為什麼認為 IDE 缺少或沒有支援這些功能。

圖 4. VS Code 中的快速修復和重構

首先,我們了解到超過一半的受訪者認為快速修復和重構運作良好(53.1%),如 圖 5 所示。然而,34.6% 的人表示需要新增更多功能。這個數字幾乎是要求我們修復錯誤的開發人員人數的三倍(12.4%)。

圖 5. 快速修復和重構的當前狀態

然後,我們詢問那些想要新增功能的人,他們需要哪種類型的快速修復或重構功能。在設計這個問題之前,我們審查了所有相關的 GitHub 議題,並進行了一項簡短的 Twitter 調查,將各種功能請求分組。您可以在 圖 6 中看到這些組別的列表。

圖 6. 快速修復和各種重構功能的重要性

從這個問題中,我們了解到受訪者認為新增更多快速修復以「修復編譯錯誤、警告或 lint」比其他修復更重要(76.4% 「非常重要」),儘管這並沒有降低其他功能的重要性。我們還了解到,受訪者認為「提取或移動 Widget」比其他重構更重要(69.2% 「非常重要」)。我們現在知道,儘管我們支援提取和移動 Widget,但開發人員想要更多選項,例如將 Widget 提取到一個新檔案中。這與提交的許多 GitHub 議題相符:flutter/flutter-intellij/issues/5591Dart-Code/Dart-Code/issues/1831flutter-intellij/issues/4540dart-lang/sdk/issues/35767 等等。此外,開發人員還想要更多用於重構函式庫、類別或方法(61.9% 「非常重要」)以及管理匯入(59.7% 「非常重要」)的功能。

所有這些資訊對 Dart Analyzer 團隊非常有價值,他們將審查診斷資訊,以找出更多修復的機會。該團隊已經開始為診斷資訊新增一些新的修復(將與 Dart 2.19 一起發佈),並計畫在未來版本中新增更多修復。

目標平台

Flutter 開發人員可以為六個平台建立可生產的應用程式:Android、iOS、Web、Windows、macOS 和 Linux。在調查的這一部分中,我們想知道開發人員針對了這六個平台中的哪幾個平台,以及他們是否在團隊層級使用 Flutter 進行跨平台開發。我們的問題首先詢問開發人員在哪些平台上編寫程式碼,然後詢問他們的團隊針對了哪些額外的平台。

圖 7 所示,大多數開發人員針對的是 Android (91.7%)、iOS (61.3%) 和 Web (35.5%)。由於這個問題允許多選,因此有一些重疊。統計選取的平台數量,只有 24% 的開發人員在上個月只針對了一個平台。在受訪者中,76% 的人針對了兩個或更多平台,其中 32% 的人針對了三個或更多平台。

圖 7. 開發人員正在積極建立和應用程式的目標平台

此外,我們想知道有多少開發人員屬於開發團隊,團隊成員針對的平台與他們自己不同。例如,開發人員 A 針對 Android,而開發人員 B 針對 iOS。如 圖 8 所示,40% 的開發人員表示他們有同事正在針對與他們不同的平台工作。當我們篩選出那些表示他們自己只針對一個平台的開發人員時,這個數字上升到 61%。

圖 8. 針對額外平台的團隊成員

合併起來,我們可以計算出 91% 的 Flutter 團隊是活躍的跨平台開發團隊(24%*0.61 + 76%)。至少有 72% 的受訪者為 Android 和 iOS 開發了應用程式。在所有受訪者中,34% 的人針對了 iOS、Android 和 Web,12% 的人針對了 iOS、Android、Web 和 Windows。

接下來要做什麼?

我們希望提供一個很好的開發體驗,最大限度地提高生產力。我們從這項調查和其他調查中獲得的見解非常有價值。我們將利用這些結果來優先處理工程任務和對 Flutter 開發人員有用的教育內容。

我們將在 2023 年回來,帶來更多調查結果。在那之前,我們將發表一篇獨立的文章,介紹我們從桌面支援研究中學到的東西。下一篇文章見!


我們從 Flutter 2022 年第三季度調查中學到了什麼 最初發佈在 Flutter 上的 Medium,人們在那裡透過突出顯示和回應這個故事來繼續討論。