技术行业的开发人员是否普遍认为混合移动应用程序不如原生应用程序?

Are Hybrid Mobile apps generally considered inferior to Native apps by developers in the tech industry?

对于一个大学项目,我的团队计划为 Android 制作一个云消息传递应用程序。最初,我们通过研究和使用 Ionic Framework 和 Phonegap 来创建混合应用程序来开始开发。

根据我们到目前为止所阅读和了解的内容,我们了解到混合应用程序开发允许我们使用网络技术(HTML、CSS Javascript)进行编码,我们与构建原生应用程序相比,我们在更少的时间内就非常熟悉了。它在多个平台上也有 运行 的优点,只需很小的调整。

但是随着我们的前进,我们从许多同事和该领域的人那里得到了一些奇怪的反馈,这些反馈都指向一件事; 对混合应用程序的普遍不信任和怀疑。

最终,由于这种反馈以及其他原因,我们决定使用原生应用程序,但我们总是困扰我们为什么人们会有这种感觉。

是的,普遍认为混合应用不如原生应用。虽然这会让更熟悉网络技术的开发人员感到沮丧,但它确实有充分的理由:

  1. 无法与本机组件交互:尽管存在 cordova-plugin-statusbar 等插件,但使用 Web 技术与本机组件交互和操作本机组件存在局限性。我个人 运行 遇到的一个重大(且令人沮丧)的问题是无法在键盘顶部输入输入,因为键盘动画进入。这听起来像是一个无关紧要的问题,直到你看到一个应用程序,其中这是一个基本功能,例如 Slack 等聊天应用程序。
  2. 300ms延迟:虽然现代浏览器开始phase this out, the fraction of a second delay present on Hybrid apps makes the app feel slow and non-native. This issue is becoming less of a factor as more users adopt workarounds such as FastClick.js and some frameworks such as Ionic默认消除它。
  3. 仇恨者是对的(某种程度上):虽然混合应用程序开发已经取得了长足的进步,但仍然存在原生应用程序中不存在的小故障和滞后功能应用程序。屏幕转换、应用程序切换和电池寿命仍然是错误出现的常见区域,并且可能会持续一段时间,即使它们开始变得越来越不明显。
  4. 有一些很棒的本机解决方案:随着较新的语言(例如 Apple Swift it is becoming easier to code in a Native language. That being said, tools such as React Native)允许开发人员使用友好的技术进行编码,从而陷入本机和混合之间的灰色地带例如 JavaScript 但编译成本机代码。

这个故事的寓意是,它实际上取决于对您的特定用例来说什么是重要的。混合应用程序已成为一种可行的选择,不再是令人尴尬的旁白。相反,与 Native UX 交互的一些小方面仍然是不可能的,除非使用 Native 应用程序。

总的来说,我建议规划您的项目并确定您的应用程序是否需要原生应用程序的任何优势。使用 Ionic View 应用程序等工具,可以轻松构建应用程序的基本模型,并在真实设备上测试混合应用程序是否适合您。