【文章內容使用 Gemini 1.5 Pro 自動產生】
基於 Mindy Hoover 和 Chris Bracken 於 2022 年進行的 Flutter 桌面使用者研究的見解和優先事項
2 月,Flutter 正式發佈了針對 Windows 應用程式的 [開發支援](https://medium.com/flutter/announcing-flutter-for-windows-6979d0d01fed),將其跨平台功能擴展到桌面。隨著 [Flutter 3](https://medium.com/flutter/introducing-flutter-3-5eb69151622f) 於 2022 年 5 月發佈,Flutter 宣布對 macOS 和 Linux 提供穩定支援,完成了桌面支援的三部曲!現在 Flutter 使用者已經有幾個月的時間可以嘗試這些新功能了,我們想知道:Flutter 如何才能更好地支援桌面開發人員?
為了回答這個問題,我們在 Q3 Flutter 調查中收集了來自 1,901 位 Flutter 桌面開發人員的數據。如果您在 8 月份參加了 Flutter Vikings,您可能會看到 UX 研究人員在焦點小組討論中與開發人員交談。以下是我們發現的內容,以及我們將如何利用這些內容來改進 Flutter。
您對 Flutter 在桌面上的滿意度如何?
平均而言,在 Windows、macOS 和 Linux 上,78% 的 Flutter 桌面開發人員表示他們對其開發體驗 *非常* 或 *相當滿意*。這個評分與 iOS 的滿意度(78%)持平,介於 Android(92%)和網頁(63%)之間。對於 Flutter 桌面來說,這是一個好消息!但它也引發了一個問題,對於其他 22% 的使用者,體驗在哪裡不足?
桌面開發人員工作流程中最具挑戰的部分是什麼?
接下來,我們要求開發人員評估他們在軟體開發工作流程各階段的滿意度。結果顯示,滿意度在桌面應用程式開發流程中往往會下降。這導致使用者在 *除錯效能問題* 和 *部署應用程式* 時的滿意度最低。此外,根據調查和焦點小組的定性回饋,尋找適用於桌面的 Flutter 套件很具有挑戰性。
Flutter 生態系統需要更多支援桌面的套件才能更好地支援桌面。(本文稍後列出了最受需求的套件。)我們正在努力開發新的支援桌面的 API(更多資訊請見下文),但我們無法做到所有事情。我們希望社群也能站出來提供幫助,透過建立新的套件和使用 [聯合外掛](https://docs.flutter.dev/development/packages-and-plugins/developing-packages#federated-plugins) 為現有套件添加桌面支援,例如。
我們知道排除效能問題不是一件有趣的事,但至少應該是一種令人滿意的體驗。我們的團隊正在努力改進 Flutter DevTools 的功能,特別是記憶體分析功能,以使排除效能問題變得更容易。例如,您現在可以使用 Flutter 的 DevTools 來 [比較記憶體快照](https://docs.flutter.dev/development/tools/devtools/release-notes/release-notes-2.20.0)!此外,請查看完全重寫的 [記憶體檢視頁面](https://docs.flutter.dev/development/tools/devtools/memory)。
Flutter 桌面開發人員告訴我們,部署桌面應用程式需要太多步驟。桌面團隊將對桌面應用程式部署進行任務分析,以確定我們可以在哪些地方改進應用程式部署流程和文件。
哪些內容可以幫助您製作更好的桌面使用者介面?
72% 的使用者同意「Flutter 的內建 Widget 可以建立適合桌面的 UI」。當我們詢問開發人員哪些內容可以幫助他們改進桌面應用程式的 UI 設計時,他們壓倒性地回答他們需要更好的支援:
- 自適應佈局(44%)
- 拖放(31%)
- 鍵盤快捷鍵(27%)
我們努力讓 Flutter 成為最好的 *跨平台* 應用程式開發框架,因此這一直都是我們的首要任務。但是,改進「*自適應佈局*」是一個模糊的問題空間,會影響到每個目標平台,而不仅仅是桌面。此外,還存在許多因素,包括螢幕大小、作業系統、輸入設備(僅舉幾例),因此設計一個有用的解決方案並非易事。但我們的工程師正在努力,改進 [flutter_adapative_scaffold](https://pub.dev/packages/flutter_adaptive_scaffold) 套件並建立程式碼實驗室,引導您逐步了解如何有效地建立自適應應用程式。同時,請關注 1 月份的 [Flutter Forward](https://flutter.dev/events/flutter-forward),Greg Spencer 和 Justin McCandless 將討論如何使用現有的 Flutter 工具來架構自適應應用程式。
至於拖放和鍵盤快捷鍵,我們已經關注它們一段時間了。實際上,[Shortcuts Widget](https://api.flutter.dev/flutter/widgets/Shortcuts-class.html) 最近已發佈。您可以在最近的「[Widget of the Week](https://www.youtube.com/watch?v=6ZcQmdoz9N8) 集數」中看到它在行動。最後,拖放支援是我們在 2023 年的首要任務之一!
哪些套件可以使 Flutter 桌面開發變得更簡單?
桌面套件的支援還沒有趕上行動和網頁。桌面開發人員最需要的套件是:
- 多視窗(35%)
- 原生控制項(32%)
- 本地儲存(24%)
- 網頁檢視(23%)
此回饋與 Flutter 目前的優先事項清單密切相關,其中包含針對多視窗、原生選單和網頁檢視的 API。在這些 API 發佈後,我們可以開始優先考慮對本地數據儲存和數據庫存取的解決方案。一些目前優先順序較低,但仍值得考慮的其他套件需求是音訊/影片播放器和音訊/影片設備。在 Flutter Vikings 的焦點小組討論中,出現了對支援剪貼簿管理和複雜輸入設備(例如 3D 滑鼠、遊戲手柄控制器)套件的需求,但沒有包含在季度調查中。
如果您有興趣為桌面的 Flutter 套件做出貢獻,請考慮透過建立套件來填補這些空白,或提交 PR 到現有套件,來幫助發展 Flutter 生態系統。我們相信,透過共同努力,Flutter 套件生態系統將會成長並適應,以更好地支援桌面開發人員。
還需要哪些額外的桌面文件?
最後一個調查類別涵蓋了 Flutter 的桌面文件。對 Flutter 桌面文件的滿意度比 Q3 中對 Flutter 其他文件的滿意度低 13%。接下來,我們詢問了哪些文件可以幫助簡化桌面開發流程。最受需求的文件主題是:
- 發佈應用程式(43%)
- 自動更新(42%)
- 外部函數介面 (FFI)(42%)
此回饋對優先考慮 2022 年第四季度和 2023 年的文件工作非常有幫助。因此,我們的團隊目前正在草擬文件以幫助桌面開發人員發佈他們的應用程式,並包含一個幾乎完成的實用 [程式碼實驗室](https://github.com/flutter/codelabs/tree/main/ffigen_codelab)!雖然自動更新不是我們為 Flutter 維護的功能,但 Flutter 生態系統中有一些 [社群](https://pub.dev/packages/auto_updater) [套件](https://pub.dev/packages/squirrel) 提供了此功能。因此,它不是我們優先考慮提供額外套件的項目。請參閱 [pub.dev](http://pub.dev) 以獲取自動更新套件及其相關文件。
下一步是什麼?
在 2023 年,Flutter 團隊將根據您的回饋優先考慮工作。我們正在積極研究多視窗和原生選單列的解決方案。拖放也是我們的首要任務之一。正在進行任務分析,以確定如何使應用程式部署更有效率;有關此主題的額外文件即將推出。我們還正在努力改進 Flutter DevTools,以便您更好地監控應用程式效能並修復記憶體洩漏。最後,我們正在建立程式碼實驗室並調查對 flutter_adaptive_scaffold 套件的改進,以幫助開發人員使用 Flutter 建立自適應的跨平台應用程式。
現在我們已經設定了基準,我們將實施這些改進,並與 Flutter 開發人員聯繫以衡量我們的成功。因此,請關注未來的 Flutter 調查!
感謝所有在 Q3 Flutter 調查中提供桌面回饋的人,並感謝那些抽出時間在 Flutter Vikings 與我們交談的人!您的回饋意見價值連城。如果您希望參加季度調查之外的未來研究,您可以 [註冊參加即將舉行的 UX 研究](https://docs.google.com/forms/d/e/1FAIpQLSe0i4De809KXVCdljGKrjMj3lxhuzbuFKCtY5PEQPCYtGxFMg/viewform)。
我們如何改進 Flutter 的桌面體驗? 最初發佈在 Flutter 上的 Medium,人們在那裡透過突出顯示和回應這個故事來繼續討論。