非常感谢您参与我们的用户和贡献者调查。我们收到了 228 份提交。让我们直接深入研究数据。
这项调查收到了 200 多份回复,考虑到只有一小部分看到调查的人会做出回应,可能有很多快乐的 Cordova 用户以及新的和长期运行的应用程序项目。我们收到了一些关于最需要的改进和最大痛点的良好反馈。
使用情况
显然,几乎所有受访者都在使用 Cordova,最常用的平台是 Android(97.4%)、iOS(89%)、浏览器(21.1%)和 Electron(7%)。Windows 和 macOS Catalyst 总共只收到了少量回复。
构建可以访问 Web 平台尚未提供的原生功能的应用程序
选择 Cordova 的前 3 个原因是易用性、跨平台支持以及 Web 技术和技能的普及和熟悉程度。这些原因几乎被同等程度地提及。相当多的 (~20) 用户提到 Cordova 是很久以前选择的,或者他们是从 Phonegap 迁移过来的 (~7)。可能有很多长期运行的 Cordova 项目。其他提及的原因包括对原生功能的支持、Ionic、快速开发、项目的成熟度和开源。
它像网页一样易于编写、检查和调试
替代方案
Cordova 的非官方目标一直是,一旦 Web 在支持类似于原生的新 API 和功能方面赶上,它就会停止存在。因此,少数用户(6.1%)将其应用程序迁移到 PWA 是个好消息。大约 13% 迁移到 Capacitor,3% 迁移到 Flutter 和 React-Native。大约 2% 的项目迁移到 Electron 或完全原生。大约 4% 的人正在考虑或正在迁移过程中。
只有 23.2% 的受访者将应用程序迁移到了替代解决方案。
迁移的最大原因是维护不善的插件,其次是操作系统和应用商店兼容性问题以及框架本身的开发速度缓慢。这是我们作为 Cordova 社区需要解决的问题。一些用户还提到了对长期支持的担忧。其他人则遇到了构建或 Gradle 问题,或者更喜欢具有 Typescript 支持和更好开发体验的更现代的框架。WebView 和性能问题也被提及了几次。
贡献
只有少数受访者 (21.1%) 曾为 Apache 维护的插件、平台或工具做出贡献,17.5% 的人很乐意开始贡献。
对于“是什么阻碍了您做出贡献?”这个问题的回答,可能对于开源项目来说是很典型的。最大的因素是时间 (53%) 和工作与生活的平衡 (37%)。第二大原因是我需要帮助才能入门 (21%) 和冒名顶替综合症 (10%),我们应该通过更好的文档和对初次贡献者的支持来解决这些问题。
对于那些有兴趣为 Apache Cordova 做出贡献的人,最好的方法是提交 PR。它可以是修复您可能遇到的或其他人报告的已知问题,或者提交新功能。就工作与生活的平衡而言,Apache Cordova 是基于志愿服务的。没有要求每天都投入时间。通常,有些人可能会在空闲时花几分钟处理 Cordova。
有些用户只为 Web 开发,不想进入原生部分,这是完全公平的,因为这就是使用 Cordova 的目的。开发插件并深入了解 Cordova 内部结构并不像乍看起来那么困难和可怕,我们真的需要您对项目的支持。
我们还包括了一个关于发布投票的问题,因为我们认为大多数用户不知道 Apache 的发布流程是如何运作的。对于每个版本,我们需要 PMC 的至少 3 名成员检查并对该版本投赞成票。不是 PMC 成员的人也可以投票并帮助测试该版本。发布的投票和决策过程在邮件列表上进行。有时可能需要一段时间才能最终发布一个版本,因为需要 3 名 PMC 成员找到时间来检查它。如果我们能够引入新成员,发布可能会再次快一点。
需要改进的领域
进行这项调查的主要原因之一是为了找出许多 Cordova 开发人员的痛点。如果我们能够确定需要改进的领域,我们就可以收集快速修复和长期目标的想法。
最常被提及的问题是第三方插件缺乏维护。下一段会详细介绍。第二大痛点是跟上应用/Play 商店的要求和操作系统 API 的变化,以及发布缓慢和破坏性更新。
许多用户还提到了原生项目的问题。它们往往会随着更新而中断,或者需要手动更改,这会导致 Cordova 的钩子和临时原生项目出现问题。
相当多的痛点也涉及文档。我们应该改进 config.xml 的文档以及如何开发插件。一些用户还希望有(视频)教程。有时,有关新功能或更改的信息会隐藏在 PR、问题和评论中的某个地方。我们应该在更新文档方面做得更好。
一些用户还担心项目的寿命,并认为对新 API 和更改的支持需要太长时间。该项目已经很老了,一些代码今天被认为是遗留代码,一些用户希望看到对 TypeScript、Swift、Kotlin 等新语言的支持。
插件
我非常感谢这些插件!我知道维护它们有多么困难。
大多数受访者没有分享任何关于插件的反馈,并且有很多人表示他们对 Cordova 的插件生态系统感到满意。
由于它的成熟度和历史,几乎任何用例都有许多 Cordova 插件,但是缺乏维护对许多用户来说是一个令人担忧的问题。相当多的插件作者已经离开,不再维护他们的插件,用户很难找到可用的分支和修复。一些受访者建议,一份精选的插件列表可能会有所帮助。
一些用户还发现开发和测试插件非常困难。
一些用户的声音
构建 Cordova 插件并不理想,因为插件是在任何原生项目之外编写的,这使得开发和测试变得困难。如果没有可用的原生项目,则插件无法独立于 Cordova 项目构建,无法独立于 Cordova 项目测试,并且无法在没有 Cordova 项目的情况下使用带有智能感知的标准 IDE。
目前有许多 Cordova 插件没有得到维护,这使得向项目中添加新插件非常痛苦,因为您始终必须检查该插件是否仍然可用以及是否有替代插件。
总的来说,考虑到它们主要是由志愿者维护的,所以非常好。但我的印象是,一些没有替代方案的插件并不总是得到很好的维护(抱歉,没有具体的例子)。
有时维护不善、修复缓慢、过时等等。但对于任何真正的 Cordova 项目来说,它仍然至关重要。
我总是最终会分叉它们,因为它们没有随着每个 Cordova 版本进行更新
Cordova 使构建插件变得简单。
结束语
您可能知道,大多数维护人员都是志愿者,并且在业余时间从事 Cordova 的工作。因此,我们需要您的帮助,以确保 Cordova 仍然是一个用于构建移动应用程序的强大而可靠的平台。您的参与,无论是提供反馈、修复错误还是开发插件,对于确保 Cordova 的持续相关性和采用至关重要。Cordova PMC 将尽最大努力使贡献尽可能容易,并提供开发者指导、代码审查、文档和频繁的发布。多年来,许多错误修复、插件和功能都是由敬业的个人提供的,将来也会如此。您可以通过您的修复、解决方案、插件和发布协作为 Cordova 的未来成功做出贡献。
感谢您成为 Cordova 社区的一员。我们齐心协力,可以塑造移动开发的未来。