在技术行业,混合移动应用程序通常被开发人员认为比原生应用程序低劣吗?

7

我所在的小组正在为Android开发一个云端消息应用。最开始,我们学习并使用Ionic框架和Phonegap创建了一个混合应用。

根据我们目前所掌握的知识,我们了解到混合应用开发可以利用我们已经熟悉的网页技术(HTML、CSS、JavaScript)编写代码,相比原生应用的开发时间更短。此外,它还可以在多个平台上运行,只需要进行微调。

但是随着我们的开发不断深入,许多同事和业内人士反馈了一些奇怪的问题,这些问题都指向了一个方向——对混合应用存在普遍的不信任和怀疑。

最终,由于这些反馈以及其他原因,我们决定选择原生应用。但这种质疑感始终困扰着我们。

1个回答

3

是的,普遍认为混合应用程序比原生应用程序差。虽然这可能会让更熟悉Web技术的开发人员感到沮丧,但确实有充分的理由:

  1. 无法与本地组件交互:虽然存在像cordova-plugin-statusbar这样的插件,但使用Web技术与操作本地组件的限制还是存在。我个人遇到的一个很大(也很令人沮丧)的问题是,在键盘动画出现时无法在顶部拥有输入。这听起来可能不是问题,但在诸如Slack之类的聊天应用程序中,这是一个必要的功能。
  2. 300毫秒延迟:尽管现代浏览器开始消除这个问题,但混合应用程序上出现的几分之一秒延迟使应用程序感觉缓慢和非本地。随着更多用户采用像FastClick.js这样的解决方法以及一些框架(例如Ionic)默认消除它,这个问题正在变得越来越不重要。
  3. 批评者是正确的(在某种程度上):虽然混合应用程序开发已经取得了长足的进步,但仍然存在一些小的故障和延迟函数,这些在本地应用程序中根本不存在。屏幕转换、应用程序切换和电池寿命仍然是常见的错误出现的领域,即使它们开始变得越来越不明显。
  4. 有一些很棒的本地解决方案:随着像苹果的Swift这样的新语言的出现,使用本地语言编码变得更加容易。话虽如此,像React Native这样的工具处于本地和混合之间的灰色地带,允许开发人员使用友好的技术(如JavaScript)编写代码,但编译成本机代码。
这个故事的寓意在于,真正重要的是你特定用例的需求。混合应用程序已成为一种可行的选择,不再是尴尬的附属品。相反,与原生UX交互的一些细节仍然无法实现,除非使用原生应用程序。
总体而言,我建议您规划项目,并确定您的应用程序是否需要任何原生应用程序的优势。借助Ionic View等工具,可以轻松地组合应用程序的基本模型,并在真实设备上测试混合应用程序是否适合您的需求。

在选择混合和本地应用程序之间的时候,我们得到的一般经验法则是:如果我们计划制作一个非常依赖硬件和客户端的应用程序,我们应该绝对选择本地应用程序。否则,如果只是一个从服务器检索数据并显示的应用程序,可以选择混合应用程序。尽管在这种情况下,它与Web应用程序本身没有太大区别。 - Nuwan Jayawardene
2
很棒的回答!关于第一点:几乎所有功能都有插件支持。如果没有,那就自己动手创造一个。例如,我为Slack输入栏创建了这个插件:https://github.com/EddyVerbruggen/cordova-plugin-native-keyboard(它实际上使用了SlackVC库!) - Eddy Verbruggen
@EddyVerbruggen 谢谢!我这周正好在为一个项目看你的插件。继续保持好工作! - Tyler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接