Flutter 季度调研结果分享 | 聚焦多平台开发者关注的问题
作者 / Flutter 用户体验研究团队 (JaYoung Lee, Youyang Hou, Jack Kim, Tao Dong)
汇总
总体而言,94% 的受访者对 Flutter 表示满意 (PSAT),58% 的受访者表示非常满意 (VSAT)。PSAT 保持稳定,VSAT 持续增长。
为公司工作的用户比例从 26% 增加到 31%。高级用户的比例也在上升。
过去 3 个月在 web 平台上使用过 Flutter 的用户中,59% 的用户对 Flutter 的性能表示满意。71% 的用户对 Flutter 在 web 端创建契合平台风格的界面的能力表示满意。
在想用 Sliver 实现丰富滚动效果的用户中,有 79% 实际进行了尝试。最大的问题是难以找到符合需求的 widget (36%)。
71% 的用户调试过平台特定问题。常见问题存在于工具 (32%)、视觉差异 (28%) 和依赖项管理 (28%)。
满意度和用户群变化
本季度,对 Flutter 感到非常满意的用户比例创下历史新高,达到 58%。总体而言,在社区规模呈指数增长的情况下,用户仍然对 Flutter 感到满意 (94%)。下图为 Flutter 满意度随时间推移的发展情况。
我们的用户群发生了一些明显变化。首先,为公司工作的用户比例从第一季度和第二季度的 26% 大幅增加到 31%,为初创团队工作的用户比例则稳定在 35% 左右。
另一个明显变化是对 Flutter 的使用经验。如下图所示,新手用户的比例随时间下降,而高级用户的比例随时间增加。这意味着我们在社区中拥有更多经验丰富的用户,这些用户可以与新手用户分享知识。如果您喜欢学习或分享知识,欢迎与其他 Flutter 开发者在线沟通: 访问 flutter.dev 上的社区汇总页面即可加入您感兴趣的社区。
△ 高级用户的比例不断增加
Flutter 社区汇总页面 https://flutter.cn/community
Flutter web
Flutter 除了在 stable 渠道支持移动端开发,在 beta 渠道也支持 web 端的开发。在此次调研中,我们就性能、web 端体验、工作流和文档方面的特定问题询问了目前已经在使用 Flutter 构建 web 应用的开发者,以便优先解决重要问题。
受访者们积极使用 Flutter 构建 web 应用。15% 的受访者已经评估了 Flutter web 的潜在生产用途、11% 已经构建了示例应用,7% 则发布了正式版应用,约占受访者三分之一的比例。如下图第三行蓝色部分所示。
更具体地说,在兼具移动和 web 开发经验的用户中,有 29.5% 的用户在过去三个月中尝试在生产环境中使用 Flutter web。这一比例因开发者过去的平台经验而有所不同。数据表明,只有 web 平台开发背景的受访者正尝试用 Flutter 来替代他们的 web 开发框架 (22% 的此类受访者尝试过在生产环境使用 Flutter web),而只有移动开发背景的受访者则会积极尝试用 Flutter web 打开 web 开发的大门 (16% 尝试过 Flutter web)。
Flutter 团队正在根据收到的反馈进行积极改进。团队最近发布了 Navigator 2,专门解决围绕导航和路由的问题 (也是用户们最关切的问题)。我们还增加了对复制/粘贴可选文本的支持,并计划改进可选文本功能 (尤其是对富文本)。我们将根据社区反馈的问题,持续改进滚动的物理效果和性能。
Navigator 2 https://medium.com/flutter/learning-flutters-new-navigation-and-routing-system-7c9068155ade 复制/粘贴可选文本 https://github.com/flutter/flutter/issues/47234 可选文本功能 https://github.com/flutter/flutter/projects/173#card-43620465
最后,团队还收到了关于工作流、性能和第三方 API 的反馈。在基本工作流方面,受访者认为 Flutter 在 web 端的调试是最困难的。页面加载速度和滚动是受访者最常遇到的性能问题。受访者希望 Flutter web 能够对本地存储 (例如 SQLite)、Firebase 存储和 Google 地图提供更好的支持。这些需求将随着团队推进 Flutter web 的开发进程而逐步满足。
Sliver widgets
Sliver widgets (名字以 "Sliver" 开头的 widgets,例如 SliverAppBar 和 SliverList) 用于创建丰富滚动效果。虽然很多滚动效果可以通过 ListView、GridView、PageView 或 AnimatedList 等 widgets 来实现,但 Sliver widgets 可用于自定义滚动视图,打造更漂亮的界面。
在需要使用 Sliver 的用户中,有 20% 表示还没有尝试过 Sliver。更让我们感兴趣的是,在使用过 Sliver 的用户中,有 35% 遇到过问题。如下图所示,当我们询问哪些问题影响最大时,选择最多的是找不到合用的 Sliver (36%),其次是学习 Sliver (30%),然后是易用性问题 (19%)。
sliver_tools https://pub.flutter-io.cn/packages/sliver_tools sliver_headers https://pub.flutter-io.cn/packages/sticky_headers
Medium 文章: 探秘 Slivers https://medium.com/flutter/slivers-demystified-6ff68ab0296f 视频: Slivers 解读 - 打造动感界面 https://www.youtube.com/watch?v=Mz3kHQxBjGg
调试平台特定问题
在之前的调研中,我们发现平台特定问题的排查以及跨平台测试应用是 Flutter 开发者最头疼的任务。虽然我们有看到一些与平台特定问题相关的 issue,但我们不确定这些问题的相对优先级,也不知道它们是集中在同一个领域中还是散布在多个领域。为了找出难以排查问题和进行测试的真正原因,我们这次额外询问用户遇到了哪些具体问题。
首先,我们询问用户调试了哪些平台特定问题。我们发现最常见的平台特定问题是工具问题 (32%),然后是不同平台的视觉差异 (28%)、依赖项管理问题 (28%)、不同平台的行为差异 (27%)、不同平台插件的行为差异 (26%) 以及缺失原生功能 (25%)。
受访者还对其调试的每个问题的重要性和难度进行了评估。最重要的调试问题是缺失原生功能、性能差异、行为差异、插件行为差异和发布问题。最困难的调试问题是缺失原生功能、设备特定问题、性能差异、依赖项管理和工具问题。
85% 的受访者认为跨多平台测试应用非常或极其重要。不过,只有 27% 的受访者表示这非常 (或极其) 困难。因此,多平台测试应用很重要,但大多数开发者并不认为这是一个很大的障碍。从问卷的开放式评论中,我们了解到最常见的测试问题包括 iOS 的难度测试 (尤其对于 Windows 开发者)、多种屏幕尺寸的测试以及在多种实体设备上的测试。
我们的团队将在下一季度投入更多时间,全力清理我们的问题清单,并解决有关工具、依赖项管理和发布的主要问题。我们还将继续围绕这些领域改进文档。例如,我们将改进关于使用 CI 工具 (例如,GitHub Actions 和 Bitrise) 的文档,这可以帮助用户更好地在 iOS 上测试应用。
下一步是什么?
您的意见时刻影响着我们的决策。我们将继续保持这一传统,根据您在调查中的反馈调整工作方向。因此,请继续和我们分享您的想法。Flutter 的用户体验 (UX) 研究团队也正在开展各种用户体验研究,旨在为您打造更加愉悦的 Flutter 使用体验。也欢迎大家在评论区和我们分享使用 Flutter 的感想和遇到的问题。
参与 Flutter 用户体验调研 https://flutter.dev/research-signup
推荐阅读