Flutter 季度调研结果分享 | 开发者的选择
Flutter 团队每季度进行一次为期十天的问卷调研,以听取大家使用 Flutter 的体验。问卷中除了帮助团队了解各种持续性趋势的既有问题之外,也有用于收集用户即时反馈的新问题。通过这些调研,我们得以更好地专注于核心领域。
同样的,我们在今年 5 月启动了第九次季度调研。尽管当前世界局势面临种种挑战,但让人欣慰的是,我们仍然在 10 天之内收到近 8,000 份答复。我们对各位的热情参与表示由衷感谢。首先,我们很高兴地公布: 94% 的受访者对 Flutter 表示满意;57% 对 Flutter 表示非常满意,这是历史最高纪录!看到各位对我们共同构建的框架如此喜爱,我们感到非常荣幸。
我们通过本季度的调研了解了许多重要课题,接下来会分享我们总结的一些重点。
△ 57% 的受访者对 Flutter 非常满意,总计 94% 的受访者对 Flutter 表示满意
Flutter 的使用情况
本季度,我们想更好地了解专业开发者如何选择和使用 Flutter,因此我们有针对性地提出了一些问题。我们的假设是,个人使用和专业使用之间存在重叠。我们想要验证这一点,并更好地了解具体情况。
我们了解到,46% 的受访者在个人项目中使用 Flutter 后决定 (或说服了管理层) 采用 Flutter。这意味着 Flutter 的采用主要由个人获得的积极体验所驱动,然后被带入工作环境。如下图所示,这种转化的过程在不同的工作环境中相当一致。即使是在供应商或企业中,也有大约一半的受访者表示,他们决定或已说服管理层采用 Flutter。
我们认为,这反映出 Flutter 对技术实际用户 (也就是您!) 的吸引力。
如果您也想说服其他人采用 Flutter,可以参考 Nubank 的技术博客和视频,了解他们如何评估 Flutter 和其他技术并决定采用 Flutter。Nubank 是亚洲以外最大的数字银行,拥有 2,000 多万客户,他们对 Flutter 进行独立技术评估的过程非常值得一读。
Nubank 为何选择 Flutter https://medium.com/building-nubank/https-medium-com-freire-why-nubank-chose-flutter-61b80b568772 Flutter 开发者故事: Nubank https://www.bilibili.com/video/BV1zi4y1t77J
代码示例
在上一次调研中,用户告诉我们示例代码是最实用的学习资源,甚至比视频、文章或演示都要好。在本季度调研中,我们希望更好地了解哪些类型的示例代码最值得投入。
在调研问卷中,用户需要回顾最近一次搜索示例代码的经历,然后回答有关这次经历的细节,比如在哪里找到了最实用的示例代码。人们最常找到有用的示例代码的地方是 Stack Overflow (26%),其次是 GitHub (17%)。
在这部分问题的最后我们问到: 如果只能选一种,哪种类型的代码示例更实用: 是更多但更小型的示例,还是更少但更大型的示例。
整体结果表明,大多数用户 (68%) 希望获得更多示例,即便示例较小。正是基于这个结果,当文档 (比如 API 文档、操作指南、教程等) 中没有代码示例时,我们会先在其中增加多个简短的示例。
以 Stack Overflow 或 API 文档为例,代码示例出现的位置是否存在偏好差异?当我们按资源细分回复时,所有类别的偏好仍然倾向于 "更多但更小的代码示例"。
有趣的是,如上图所示,在用户认为实用的资源中,如果有助于获得灵感或看到既有的高品质应用,例如 GitHub 或 YouTube,选择 "更少但更大的应用示例" 的用户比例有所增加。这一结果也有助于 Flutter 社区的讲师来规划学习资料。
Flutter 应用性能
Flutter 可以编译为机器代码并在移动和桌面设备上运行,从而实现与系统框架相当的性能。不过,Flutter 团队仍投入大量精力改善各种性能指标,包括渲染速度、功耗、内存使用量和应用大小。因此,对 Flutter 的移动性能表示满意的用户比例从 2019 年第三季度的 85% 上升到本季度的 92%。
在本季度,相较于使用原生平台框架构建 Android 和 iOS 应用的用户,我们希望更好地了解用户对 Flutter 应用性能的看法。提问的对象是表示自己有 Android 和 iOS 开发实践经验的用户。
尽管 Flutter 开发者通常对我们的性能和资源使用情况感到满意,但应用大小仍有改进空间。在拥有 Android 或 iOS 经验的开发者中,有 11-13% 对此表示 "无法接受"。虽然我们在这方面做出了改进,但这显然不够。我们希望可以通过调整编译器和拆分 AOT 工件来进一步优化应用大小。
△ 与 Android 原生相比,Flutter 应用性能的相对接受度
我们还了解到,Flutter 应用内存使用量的满意度略低于速度和功耗的满意度。为此,我们正在改善内存性能 (特别是图像内存使用),同时也在所有领域大力投入,希望为大家带来更好的工具、测试和文档。团队正在改进 DevTools 的界面以及涉及测试内存、应用大小和能耗问题的相关文档。
编写 package
Flutter 开发者可以使用 pub.dev 上的 package 快速构建应用,而不必从头开始编写。虽然 pub.dev 提供了超过 10,000 个 Flutter 兼容 package,但只有一小部分是由 Google Flutter 团队直接维护的。Flutter 的生态系统一开始就有意倾向于更依赖来自社区的贡献。
Flutter packages
https://pub.flutter-io.cn/flutter/packages
我们致力于打造一个优秀的开发环境,支持 package 作者创建和管理高质量的 package。就在本周,我们根据大家的反馈完全重新设计了 pub.dev 网站。
现在,我们的用户体验研究人员希望了解,是什么促使作者们发布和维护 package。今年早些时候,我们联系了许多 package 作者,基于这些讨论的结果,我们在调查中增加了量化问题,以进一步探索这一课题。
调研的主要发现是,大多数 package 作者是出于利他动机发布 package,但维护 package 的动机则是来自自身需求。例如,82% 的作者是希望其他用户受益而发布 package,但只有 58% 的作者是出于同样的原因维护 package。另一方面,66% 的作者是为了自己使用而发布 package,同时 70% 的作者是出于同样的原因维护 package。
△ 82% 的作者是希望其他用户受益而发布 package
flutter/flutter repo https://github.com/flutter/flutter "would be a google package" 标签 https://github.com/flutter/flutter/issues?q=is%3Aopen+label%3A%22would+be+a+good+package%22+sort%3Areactions-%2B1-desc
我们还发现,我们可以更好地支持大家进行学习。很多用户指出,学到新东西的机会能激励他们维护 package。学习如何编写文档、从同行开发者处学习需要改进的地方,或者学习如何管理开源项目,都可能属于这一范畴。有了这些发现,我们将继续营造更好的环境,让您在为社区做出贡献的同时也能提升自我。
总结
我们希望这一系列调研结果分享能够证明我们十分重视开发者的意见。每个季度我们都会投入若干小时来分析和消化您的反馈。来自用户研究、工程和产品管理部门的几位成员通读了所有自由格式的评论。虽然我们无法直接回答每一条评论,但您的需求和评论每天都会影响我们的决策。
我们将继续保持这一 "传统" ——根据开发者的调研反馈做出决策。因此,请继续参与并和我们分享您的想法。特别感谢参与第二季度问卷调研的 7,883 位用户,正是大家的反馈让我们得以分享本文中的见解。
Flutter 的用户体验研究团队也正在开展多项研究,旨在为您打造更加愉悦的 Flutter 使用体验。例如,上一季度,我们联系并采访了 package 作者,了解他们发布和维护 package 的体验。如果您有兴趣,请在这里注册参加未来的研究。
参与 Flutter 用户体验调研 https://docs.google.com/forms/d/e/1FAIpQLSe0i4De809KXVCdljGKrjMj3lxhuzbuFKCtY5PEQPCYtGxFMg/viewform
推荐阅读