混合 JavaScript 移动开发 - Apache Cordova vs Capacitor with Ionic vs NativeScript vs React Native
Hybrid JavaScript Mobile Development - Apache Cordova vs Capacitor with Ionic vs NativeScript vs React Native
首先,希望这个问题不要太宽泛。来自前端背景,我正在考虑开始学习 JavaScript 相关的移动开发框架之一。 第一个问题来了,我应该选择 Apache Cordova 还是 Capacitor? 第一个问题是我将 Phaser (HTML5) 游戏开发用作业余项目,而不是说实话最好的体验。根据 Stack Overflow 年度报告,我能感觉到为什么 Apache Cordova 是最令人讨厌的技术之一。
然后是第二个问题,我应该选择Ionic,NativeScript还是React Native? React是我"big 3"中唯一的前端框架到目前为止感觉不舒服。我对 Angular 和 Vue.js 的体验相当积极,我也想在我的移动应用程序项目中使用其中任何一个,因此我有点偏向于 Ionic 或 NativeScript。另一方面,React Native 拥有最多 GitHub 颗星。我认为这可能是有原因的。
那么最后一个,我可以将 Apache Cordova/Capacitor 与 Ionic/NativeScript/React Native 中的任何一个结合起来,或者有一些更容易工作的东西,例如Capacitor 和 Ionic 的组合? 同一家公司做的,所以我认为它应该是相对无缝的组合。
编辑:
最后一个 - 为了从我的移动应用程序的相同代码库制作 PWA,我被迫只使用 Ionic?
在某种程度上,答案将取决于您个人 experience/knowledge、个人喜好(您的想法和工作方式),最后,您的项目可能具有的任何性能要求。和你一样,我也研究了所有这些框架并使用了其中的大部分。他们中的任何一个最终都会完成工作。但是,我发现的一件事是,当您尝试推送它时,运行包装在本机应用程序中的 Web 视图的框架(例如 Cordova)可能会出现一些明显的性能问题。使用实际本机组件并编译为本机代码的框架最终将更具响应性。然而,即便如此,您仍会发现它与本机编写的代码不匹配的情况。例如,一年多前我参与了一个项目,我们从 React Native 开始。一切都很好,直到我们开始尝试使用地理定位和用户交互来制作一些实时地图动画。那时,我们开始看到延迟和卡顿,即使是在全新的设备上也是如此。对于那个项目,我们最终咬紧牙关,以纯原生的方式重新开始。我们只是对框架要求太高了。
目前,我正在开发一个使用 NativeScript 和 Vue 的项目。而且,到目前为止,我对此感到头晕目眩。和你一样,我也是 VueJS 的粉丝,主要是因为我喜欢 Vuex 和整体数据绑定的处理方式。肯定有一些学习曲线和范例可以让我头脑清醒,但大约一周后我开始大踏步前进。话虽这么说,我还没有真正用复杂的动画之类的东西来推动框架。但它是一个成熟的框架,它有很好的文档记录并且有一个活跃的社区(我几乎立即加入了 Slack 工作区)。我非常喜欢它对您应该使用的 if/what 框架没有意见这一事实。 Vanilla JavaScript、React、Angular、Vue...它根本不在乎。
如果您完全担心在项目中增加其他开发人员,那么将来肯定会有更多熟悉 React Native 的人。话又说回来,任何称职的开发人员都应该能够毫不费力地使用新框架。如果您正在考虑使用 NativeScript,我建议您查看 Playground 中的一些示例并翻阅文档。我怀疑它会吸引你或排斥你。话虽如此,我对现有的任何其他框架都没有任何抱怨。有些只是比其他应用更适合某些类型的应用。
祝你好运!
没错,NativeScript 有自己的 iOS/Android 本机组件。它不是一些其他框架的包装器。 Telerik 从头开始构建它。它是一个独立的生态系统,当前版本为 6.x。所以它已经存在了一段时间,并且正在积极地开发和维护(这不能保证它不会在某个时候消失)。
对于 PWA 之类的东西,可以选择 Ionic 或 Flutter。今天早上,我通过 StackShare 偶然发现了一个名为 Quasar 的新工具,它看起来很有趣 (https://quasar.dev/). But you can actually build a PWA from the same NativeScript codebase that you use to build mobile apps (https://www.nativescript.org/blog/how-to-build-a-pwa-an-ios-app-and-an-android-app-from-one-codebase)。所以似乎不缺少工具,这很好,因为它可以让您根据自己喜欢的工作方式进行选择。
我在这里遇到同样的问题。我的答案:
- 电容,毫无疑问
- NativeScript 优于其他语言。纯本机代码,让您在 angular 网络和移动设备之间共享代码。我的选择。
- 可以,但这要视情况而定。对于一般用途(表格),任何都可以。我建议,选一个,尽量坚持。
- 您与 Angular(效果很好!)和 Capacitor 共享了 NativeScript 代码。
我想我正在转向 Capacitor,因为我的项目的性质:使用单一代码从应用程序为网络和移动提供简单的业务 -> 简单的 webview 就可以了。
PS:如果您需要解决所有这些目标,Quasar 是唯一的选择。如果您只是指网络和移动设备,那么大多数都可以,而且实际上取决于您的项目需求和偏好。
首先,希望这个问题不要太宽泛。来自前端背景,我正在考虑开始学习 JavaScript 相关的移动开发框架之一。 第一个问题来了,我应该选择 Apache Cordova 还是 Capacitor? 第一个问题是我将 Phaser (HTML5) 游戏开发用作业余项目,而不是说实话最好的体验。根据 Stack Overflow 年度报告,我能感觉到为什么 Apache Cordova 是最令人讨厌的技术之一。
然后是第二个问题,我应该选择Ionic,NativeScript还是React Native? React是我"big 3"中唯一的前端框架到目前为止感觉不舒服。我对 Angular 和 Vue.js 的体验相当积极,我也想在我的移动应用程序项目中使用其中任何一个,因此我有点偏向于 Ionic 或 NativeScript。另一方面,React Native 拥有最多 GitHub 颗星。我认为这可能是有原因的。
那么最后一个,我可以将 Apache Cordova/Capacitor 与 Ionic/NativeScript/React Native 中的任何一个结合起来,或者有一些更容易工作的东西,例如Capacitor 和 Ionic 的组合? 同一家公司做的,所以我认为它应该是相对无缝的组合。
编辑:
最后一个 - 为了从我的移动应用程序的相同代码库制作 PWA,我被迫只使用 Ionic?
在某种程度上,答案将取决于您个人 experience/knowledge、个人喜好(您的想法和工作方式),最后,您的项目可能具有的任何性能要求。和你一样,我也研究了所有这些框架并使用了其中的大部分。他们中的任何一个最终都会完成工作。但是,我发现的一件事是,当您尝试推送它时,运行包装在本机应用程序中的 Web 视图的框架(例如 Cordova)可能会出现一些明显的性能问题。使用实际本机组件并编译为本机代码的框架最终将更具响应性。然而,即便如此,您仍会发现它与本机编写的代码不匹配的情况。例如,一年多前我参与了一个项目,我们从 React Native 开始。一切都很好,直到我们开始尝试使用地理定位和用户交互来制作一些实时地图动画。那时,我们开始看到延迟和卡顿,即使是在全新的设备上也是如此。对于那个项目,我们最终咬紧牙关,以纯原生的方式重新开始。我们只是对框架要求太高了。
目前,我正在开发一个使用 NativeScript 和 Vue 的项目。而且,到目前为止,我对此感到头晕目眩。和你一样,我也是 VueJS 的粉丝,主要是因为我喜欢 Vuex 和整体数据绑定的处理方式。肯定有一些学习曲线和范例可以让我头脑清醒,但大约一周后我开始大踏步前进。话虽这么说,我还没有真正用复杂的动画之类的东西来推动框架。但它是一个成熟的框架,它有很好的文档记录并且有一个活跃的社区(我几乎立即加入了 Slack 工作区)。我非常喜欢它对您应该使用的 if/what 框架没有意见这一事实。 Vanilla JavaScript、React、Angular、Vue...它根本不在乎。
如果您完全担心在项目中增加其他开发人员,那么将来肯定会有更多熟悉 React Native 的人。话又说回来,任何称职的开发人员都应该能够毫不费力地使用新框架。如果您正在考虑使用 NativeScript,我建议您查看 Playground 中的一些示例并翻阅文档。我怀疑它会吸引你或排斥你。话虽如此,我对现有的任何其他框架都没有任何抱怨。有些只是比其他应用更适合某些类型的应用。
祝你好运!
没错,NativeScript 有自己的 iOS/Android 本机组件。它不是一些其他框架的包装器。 Telerik 从头开始构建它。它是一个独立的生态系统,当前版本为 6.x。所以它已经存在了一段时间,并且正在积极地开发和维护(这不能保证它不会在某个时候消失)。
对于 PWA 之类的东西,可以选择 Ionic 或 Flutter。今天早上,我通过 StackShare 偶然发现了一个名为 Quasar 的新工具,它看起来很有趣 (https://quasar.dev/). But you can actually build a PWA from the same NativeScript codebase that you use to build mobile apps (https://www.nativescript.org/blog/how-to-build-a-pwa-an-ios-app-and-an-android-app-from-one-codebase)。所以似乎不缺少工具,这很好,因为它可以让您根据自己喜欢的工作方式进行选择。
我在这里遇到同样的问题。我的答案:
- 电容,毫无疑问
- NativeScript 优于其他语言。纯本机代码,让您在 angular 网络和移动设备之间共享代码。我的选择。
- 可以,但这要视情况而定。对于一般用途(表格),任何都可以。我建议,选一个,尽量坚持。
- 您与 Angular(效果很好!)和 Capacitor 共享了 NativeScript 代码。
我想我正在转向 Capacitor,因为我的项目的性质:使用单一代码从应用程序为网络和移动提供简单的业务 -> 简单的 webview 就可以了。
PS:如果您需要解决所有这些目标,Quasar 是唯一的选择。如果您只是指网络和移动设备,那么大多数都可以,而且实际上取决于您的项目需求和偏好。