跨平台开发:如何缓解依赖第三方插件实现本机功能的问题?
Cross-platform development: How to mitigate the issue of depending on 3rd party plugins for native functionality?
我正在开始一个新项目,它将是一个跨平台的移动应用程序。
我正在考虑使用带有电容器的 ReactNative、NativeScript 或 Ionic 4。
关于所有这些技术,我注意到的一件事是自定义行为或对本机功能的访问需要插件。
虽然有各种各样的开源插件,但这可能存在风险。例如,假设您的应用程序依赖于 iBeacon 插件。
- 没有iBeacon插件怎么办
- 如果有一个插件但它没有做你需要它做的事情怎么办
- 如果有一个插件但开发者放弃了这个插件或者没有努力解决问题等等怎么办
学习如何构建插件是您唯一的选择吗?
我们是一家小公司,因为我们忙于主要产品,所以没有太多时间用于插件。
React-Native 已经存在了很长一段时间,并且拥有强大的社区支持。现在你的情况完全取决于设计。
如果你是做产品设计的,那最好拿一个
在设计的时候看看react-native插件,这样你就可以实现
完全按照您的设计开发。
2.If 给你设计之类的,你可以根据 react-native 提供的 external/internal 插件修改一些设计。遵循 react-native 是明智的,因为它具有大部分组件。
- 如果给你设计并要求你严格遵循设计,那么假设 react-native 中甚至不存在 1 个组件替代方案,那将是一个很大的问题。所以在这里你可以选择原生编码等等。
所以这完全取决于设计和功能。
因此希望我确实回答了你的问题,希望有任何疑问,
过去几个月我一直在开发 Ionic 应用程序,遇到了您提到的问题。简而言之,如果没有插件或插件有问题,你就完蛋了,这意味着你必须自己构建(或修复)插件。
Ionic 的好处是它建立在 Cordova 之上,属于 Apache。他们有相当不错的插件集合,可以在 Ionic 中完美运行并且维护良好。它们涵盖了主要功能。
Ionic self 有一个带有快速说明的社区插件列表,you can find it here。他们中的大多数工作正常,有些是越野车。
他们还有高级访问权限(称为 Premier),可让您访问官方插件和支持,但这非常昂贵。
好消息是:一旦您知道如何操作,构建您自己的插件就不难了(如果您知道 JavaScript 和本机代码)。但是,要找到教程并不容易,特别是要知道 Ionic 版本之间有很大差异。 This tutorial 是一个很好的起点(查看底部的参考书目)。
不是在谈论原生,而是在 Ionic 中谈论插件:有时我也使用 Angular 插件,大部分都是成功的。关于 JS 库,有些是开箱即用的(比如 HammerJS),其他的我无法让它们工作(比如 jQuery)。
您在这里比较的是完全不同的框架。
Ionic 只是在 WebView 中 运行,它不提供原生用户体验。所以个人不推荐。
ReactNative 为您提供原生 UX,但为了自定义插件,您应该知道 Java / Objective C 或 Swift。即便如此,随着时间的推移,可能也很难管理定制。他们确实有大量的社区插件,但同样无法保证持续支持。
另一方面,NativeScript 让您仅使用 JavaScript 就可以 100% 访问设备 API,您不必了解本地编程语言,但仍然可以需要一些关于将本机代码编组为 JS / TS 的基本知识,他们对此有很好的文档。
在我看来,如果你完全依赖社区插件,你应该选择 ReactNative。如果您(或您的团队)精益求精,可能会花一些时间构建插件,那么您会喜欢 NativeScript。插件的自定义将更容易管理,因为它主要是 Java脚本,您可以随时覆盖原型链,而不必触及原始插件代码。
我正在开始一个新项目,它将是一个跨平台的移动应用程序。 我正在考虑使用带有电容器的 ReactNative、NativeScript 或 Ionic 4。
关于所有这些技术,我注意到的一件事是自定义行为或对本机功能的访问需要插件。
虽然有各种各样的开源插件,但这可能存在风险。例如,假设您的应用程序依赖于 iBeacon 插件。
- 没有iBeacon插件怎么办
- 如果有一个插件但它没有做你需要它做的事情怎么办
- 如果有一个插件但开发者放弃了这个插件或者没有努力解决问题等等怎么办
学习如何构建插件是您唯一的选择吗?
我们是一家小公司,因为我们忙于主要产品,所以没有太多时间用于插件。
React-Native 已经存在了很长一段时间,并且拥有强大的社区支持。现在你的情况完全取决于设计。
如果你是做产品设计的,那最好拿一个 在设计的时候看看react-native插件,这样你就可以实现 完全按照您的设计开发。
2.If 给你设计之类的,你可以根据 react-native 提供的 external/internal 插件修改一些设计。遵循 react-native 是明智的,因为它具有大部分组件。
- 如果给你设计并要求你严格遵循设计,那么假设 react-native 中甚至不存在 1 个组件替代方案,那将是一个很大的问题。所以在这里你可以选择原生编码等等。
所以这完全取决于设计和功能。 因此希望我确实回答了你的问题,希望有任何疑问,
过去几个月我一直在开发 Ionic 应用程序,遇到了您提到的问题。简而言之,如果没有插件或插件有问题,你就完蛋了,这意味着你必须自己构建(或修复)插件。
Ionic 的好处是它建立在 Cordova 之上,属于 Apache。他们有相当不错的插件集合,可以在 Ionic 中完美运行并且维护良好。它们涵盖了主要功能。
Ionic self 有一个带有快速说明的社区插件列表,you can find it here。他们中的大多数工作正常,有些是越野车。 他们还有高级访问权限(称为 Premier),可让您访问官方插件和支持,但这非常昂贵。
好消息是:一旦您知道如何操作,构建您自己的插件就不难了(如果您知道 JavaScript 和本机代码)。但是,要找到教程并不容易,特别是要知道 Ionic 版本之间有很大差异。 This tutorial 是一个很好的起点(查看底部的参考书目)。
不是在谈论原生,而是在 Ionic 中谈论插件:有时我也使用 Angular 插件,大部分都是成功的。关于 JS 库,有些是开箱即用的(比如 HammerJS),其他的我无法让它们工作(比如 jQuery)。
您在这里比较的是完全不同的框架。
Ionic 只是在 WebView 中 运行,它不提供原生用户体验。所以个人不推荐。
ReactNative 为您提供原生 UX,但为了自定义插件,您应该知道 Java / Objective C 或 Swift。即便如此,随着时间的推移,可能也很难管理定制。他们确实有大量的社区插件,但同样无法保证持续支持。
另一方面,NativeScript 让您仅使用 JavaScript 就可以 100% 访问设备 API,您不必了解本地编程语言,但仍然可以需要一些关于将本机代码编组为 JS / TS 的基本知识,他们对此有很好的文档。
在我看来,如果你完全依赖社区插件,你应该选择 ReactNative。如果您(或您的团队)精益求精,可能会花一些时间构建插件,那么您会喜欢 NativeScript。插件的自定义将更容易管理,因为它主要是 Java脚本,您可以随时覆盖原型链,而不必触及原始插件代码。