Flutter:2020年第三季度开发人员调查结果

你好!Surf的Eugene Saturov与您保持联系



Google团队发布了2020年第三季度Flutter开发人员调查结果。我正在发表我的评论的材料翻译。







本文是由Flutter UX研究团队(Flutter UXR)(Jayeon LeeHyoyoyang HouJack KimTao Dong编写的。



2020年8月,Flutter团队启动了第十个季度开发商调查。在10天内,全球7,668名Flutter开发人员通过了它。他们每个人花了大约7.4分钟回答-总共39.4天。感谢您花费宝贵的时间提出反馈意见,并希望与您分享结果。



和往常一样,我们询问您对Flutter各种组件的满意度。此外,在本季度,我们希望获得有关新主题的反馈,例如针对Web的Flutter,Sliver(用于创建复杂滚动效果的小部件)以及调试平台特定的问题。在本文中,我们将仔细研究每个主题。



摘要数据



  • 总体而言,94%的受访者对Flutter框架感到满意(PSAT-感到非常满意),58%的受访者非常满意(VSAT-非常满意)。PSAT的份额没有变化,但VSAT的百分比正在稳定增长。

  • 专业开发人员的份额已从26%增长到31%。高级用户的份额也在增加。

  • , 3 Flutter for web, 59% . 71% Flutter , -UI.

  • , , 79% . (36%) , .

  • 71% , . (32%), (28%) (28%).





本季度,对Flutter感到非常满意的用户比例达到了创纪录的58%。总体而言,尽管社区呈指数增长,但Flutter用户仍然对该产品感到满意(94%)。下图显示了Flutter的满意度如何随时间变化。





58%的用户对以下问题回答“非常满意”:“您对Flutter的总体满意度如何?”



我们的用户群发生了一些重大变化。首先,Flutter框架的企业用户比例从第一季度和第二季度的26%显着增长到31%,而初创企业的开发人员比例仍然约为35%。





尽管大多数Flutter用户都为初创公司工作,但公司开发人员的比例已从26%显着增长到31%







, Flutter . Surf : .



— , .



, , . , Android iOS, — . , , .



此外,在用户群中对Flutter体验的主观评估已发生了很大变化。如下图所示,新手用户的份额逐渐减少,而高级用户的份额逐渐增加。这意味着我们社区中有更多经验丰富的用户可以与初学者分享他们的知识。如果您有兴趣学习某些知识或分享知识,则可以参加与其他Flutter开发人员的在线讨论。转到flutter.dev上“社区”选项卡





高级用户的份额稳步增长







. , Flutter-. , «» - . Flutter- . , , , .



, pro-. .



, . HR-. Flutter-, software-. , .



Flutter for Web



除了在稳定版中支持移动开发外,Flutter还支持Beta版中的Web开发。这次,我们要求Flutter的早期用户确切地告诉我们他们在Web应用程序的性能,外观和功能,工作流程和文档方面遇到了什么问题,以便首先了解要做什么。



调查参与者广泛使用Flutter来构建Web应用程序。根据下图的第三行,大约33%的人报告说他们评估了商用Web应用程序中的Flutter(15%),使用它构建了该应用程序的演示版(11%)或发布了一个商业应用程序(7%)。





33%的用户(4449个中的1468个)报告说,他们在商业Web应用程序中评估了Flutter(15%),使用它构建了该应用程序的演示版(11%)或发布了一个商业应用程序(7%)



特别是,在过去3个月中(出于潜在的商业目的),在移动和Web开发方面都有经验的29.5%的用户更认真地使用Flutter for Web。该百分比根据以前的开发人员在平台上的经验而有所不同。显然,以前仅从事Web开发的受访者使用Flutter作为替代Web框架(22%的人仅将Flutter用于Web以用于潜在的商业目的),而以前仅从事移动开发的受访者则积极地将Flutter用于Web进行集成。使用Web开发(16%的用户使用Flutter for Web)。





在过去的三个月中,基于Flutter在移动和Web平台上的商业用途而在网上使用Flutter的用户所占的百分比有所不同



,Flutter的Web团队还收集了与Web应用程序外观有关的各种问题的反馈。首先,我们了解到,最重要的调查参与者考虑了浏览器导航和页面历史记录(55%),所选文本的复制/粘贴(34%),滚动物理(33%)和文本突出显示(32%)。受访者还要求提供有关页面导航和使移动版式适应网络的更好文档。







Flutter for Web . , Flutter Team web. FlutterDevPodcast Flutter for Web , , . , UX, . CEO .







根据用户的说法,在使用Flutter构建Web界面时,“浏览器导航和页面导航”是最重要的功能。



Flutter团队将开发人员的反馈考虑在内,并正在积极进行改进。为了解决与导航和页面导航有关的主要用户问题,该团队最近发布了Navigator 2。我们还增加了对复制/粘贴所选文本的支持,并计划改进所选文本的功能(尤其是富文本格式)。我们将根据社区问题继续致力于解决物理和性能问题。



最后,我们的团队收到了有关工作流,性能和第三方API的反馈。据受访者称,在所有主要工作流程中,最困难的是调试。页面加载速度和滚动是受访者最常遇到的性能问题。受访者要求改善对本地存储(例如SQLite),Firebase存储和Google Maps for Flutter for Web的支持。随着Flutter for Web的发展,我们的团队将努力改善这些方面。



注释



当然,将Flutter for Web完美化的愿望值得称赞。框架是否准备好成为其传统竞争对手的完整替代品?我的观点是明确的:不。未来还有很长的路要走。


条子



Sliver小部件(以“ Sliver”开头的小部件,例如SliverAppBar和SliverList)用于创建复杂的滚动效果。可以使用诸如ListView,GridView,PageView或AnimatedList之类的小部件来实现许多滚动效果,但是,sliver小部件有助于自定义滚动视图并使UI更加美观。





这种复杂的滚动效果可以使用条子小部件来实现



,Flutter团队了解了许多有关条子用户体验的故事。有些人说他们在应用程序中没有使用切片,而有些人说他们需要更多的切片器来实现各种效果。本季度,我们的团队决定更新调查问卷,以更好地了解Flutter用户如何使用拖鞋。



我们了解到的第一件事是,大多数调查参与者(49%)设计的UI具有简单的滚动效果。具有复杂效果的UI开发了39%。 (该调查提供了简单和复杂滚动效果的示例。)在需要复杂效果的用户中,有78%的人表示需要碎片才能达到理想的效果。





与具有复杂效果的UI(39%)相比,具有简单滚动效果的UI开发的用户更多(49%)。



需要条状的用户中有20%表示没有尝试过。更有趣的是,使用拖鞋的用户中有35%的人报告他们有问题。当我们问什么是最具挑战性时,搜索排名第一(36%),其次是探索(30%),最后是可用性(19%)。





事实证明,对于条子用户而言,搜索是最常见的问题,对于学习小部件及其可用性而言,报告的困难较少,



由于我们不希望这些问题影响您的用户界面,因此我们计划更新flutter.dev,以使查找条子小部件和研究相应条子变得更加容易信息。如果您正在寻找Flutter没有的新条子,请尝试使用由社区开发的软件包,例如sliver_toolssticky_headers。 Flutter社区也欢迎您在此领域的投入。



如果您还不熟悉银条,并且想了解更多有关银条的信息,我们将为您提供以下资源:



神秘的银条(小文章)



Slivers解释-制作动态布局(YouTube上的“无聊的颤动开发秀”,第12集)



评论



Sliver-许多Flutter开发人员的绊脚石。他们害怕而不被理解。也许原因不是用于组件的最透明的API,以及棘手的小部件嵌套。CustomScrollView,SliverList,SliverChildBuilderDelegate-直到您弄清楚这些组件在构建总体图中起什么作用之前,您似乎都在试图阐明经验丰富的魔术师的技巧。实际上,条子和类似机制是我爱Flutter的主要原因之一。做复杂事情的能力非常重要。


调试平台特定的问题



在我们之前的调查中,我们发现针对Flutter开发人员的平台特定的故障排除和跨平台的应用程序测试是最具挑战性的任务。我们遇到了特定于特定平台的错误,但不知道哪些问题的优先级更高,以及是否有可能按主题将其分组。为了理解为什么调试和测试确实非常困难,我们询问了用户面临什么样的问题。



首先,我们询问用户他们调试了哪些平台特定的问题。其结果是,我们发现,最经常 工具问题(32%),不同平台上的视觉差异(28%),依赖管理(28%),不同平台上的功能差异(27%),插件在不同平台上的功能差异(26%)和同样,本机功能通常会丢失(25%)。



评论



最近,自定义构建的禁用了Metal的Flutter Engine出现在GitHub上事实证明,如果没有它,为iOS构建的应用程序将更加流畅!我们通常不会遇到如此讨厌的平台问题。但是,您应该始终为他们做好准备。要全副武装,只有深入了解受支持平台的基础知识才有帮助。





最常见的特定于平台的问题涉及工具问题,视觉差异和依赖管理问题。



调查参与者还对他们调试的每个问题的重要性和复杂性进行了评估。最重要的调试问题是缺少本机功能,性能差异,性能差异,插件功能上的差异以及发行问题。调试中最困难的问题是缺少本机功能,特定设备的问题,性能差异,依赖性管理和工具。





该图的注释(从左到右):困难-困难,测试问题-测试问题,视觉差异-视觉差异,重要性-重要性,特定于设备的问题-特定于设备的问题,依赖性管理问题-依赖性管理问题,发布问题-发布问题,工具问题-工具问题,行为差异-功能差异,缺少本机功能-缺少本机工具,插件行为差异-插件功能差异,性能差异-性能差异。



平台特定问题的重要性和复杂性。图中的“卷须”标记95%的置信区间





在多个平台上测试应用程序时,有85%的受访者表示这非常重要。然而,事实证明,对于27%的被调查者来说,这是非常或极其困难的。因此,在多个平台上测试应用程序很重要,但是对于大多数开发人员而言,这并不是很难。从问题的详细答案中,我们了解到,在针对iOS(尤其是Windows开发人员)进行测试,针对多种屏幕尺寸进行测试以及在多种物理设备上进行测试时,会出现最常见的测试问题。



在下一季度,我们的团队将花费更多的时间,大幅度减少错误,并解决与工具,依赖项管理和发布相关的主要问题。我们还将继续改进有关这些主题的文档。例如,我们将改善GitHub Actions和Bitrise等CI工具的用户文档,以帮助用户测试iOS应用。





只要您的存储库不是私有的, GitHub Actions注释就可以。从现在开始,您每月只有200分钟的免费构建时间可以在用于macOS的虚拟机上构建。阅读有关为Flutter项目设置完美工作流程的文章



下一步是什么



您的意见每天都会影响我们的决定。我们将恪守这一传统,并将继续根据您对我们调查的回答做出决定。因此,我们请您继续参与并分享您的想法。而且,Flutter UX研究团队进行了广泛的用户体验(UX)研究,以改善您的Flutter体验。如果您想参加研究,请注册并考虑您的候选人资格以供将来研究。



All Articles