7

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

根据我们目前所阅读和了解的内容,我们所理解的是,混合应用程序开发允许我们使用我们非常熟悉的 Web 技术(HTML、CSS Javascript)进行编码,而这些技术比构建原生应用程序的时间要短得多。它还具有在多个平台上运行的优势,只需进行非常小的调整。

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

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

4

1 回答 1

3

是的,普遍的看法是混合应用不如原生应用。虽然这对于更熟悉 Web 技术的开发人员来说可能会令人沮丧,但它确实是有充分理由的:

  1. 无法与本机组件交互:尽管存在诸如此类的插件cordova-plugin-statusbar,但使用 Web 技术与本机组件交互和操作本机组件存在限制。我个人遇到的一个大(也是令人沮丧)的问题是,当键盘动画进入时,无法在键盘顶部进行输入。这听起来像一个问题,直到您查看一个应用程序,其中这是一个基本功能,例如在像 Slack 这样的聊天应用程序中。
  2. 300ms 延迟:尽管现代浏览器开始逐步淘汰这一点,但混合应用程序上存在的几分之一秒延迟使应用程序感觉缓慢且非原生。随着越来越多的用户采用FastClick.js等变通方法,而Ionic等一些框架默认消除了这个问题,这个问题变得越来越不重要。
  3. 反对者是对的(在某种程度上):虽然混合应用程序开发已经取得了长足的进步,但仍然存在原生应用程序中不存在的小故障和滞后功能。屏幕转换、应用程序切换和电池寿命仍然是错误出现的常见领域,并且可能会持续一段时间,即使它们开始变得越来越不明显。
  4. 有一些很棒的 Native 解决方案:使用更新的语言,例如 Apple 的Swift,使用 Native 语言编写代码变得越来越容易。话虽如此,React Native等工具落入了 Native 和 Hybrid 之间的灰色地带,因为它允许开发人员使用 JavaScript 等友好技术进行编码,但可以编译成原生代码。

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

总的来说,我建议您规划您的项目并确定您的应用程序是否需要原生应用程序的任何好处。使用诸如Ionic View应用程序之类的工具,您可以轻松地将应用程序的基本模型放在一起,并在真实设备上测试混合应用程序是否适合您。

于 2017-04-21T23:59:38.540 回答