Hybrid Mobile app和Mobile web app之间的区别

时间:2014-11-10 11:00:19

标签: javascript css mobile hybrid-mobile-app

最近,我开始学习名为Mobile Angular UIIONICSenchaKendoUI的移动应用开发框架。他们帮助使用html,javascript和css开发移动应用程序。 那时它让我想到上述框架是否是混合的。 混合框架是一种有助于使用html,css和javascript创建移动应用程序的框架。但移动应用程序也是如此。那么实际上移动网络应用程序和混合移动应用程序之间有什么区别。以上是混合框架的混合吗?

3 个答案:

答案 0 :(得分:2)

最初发布在此处:Cedcommerce

首先,让我指导一下本机应用程序究竟是什么以及Native vs Hybrid移动应用程序的含义。 Native应用程序是专门为特定操作系统构建的应用程序,是使用该特定设备的本机语言的不同操作系统的不同应用程序。

如果您对Native应用程序开发感到困惑,则意味着使用相应公司(在本例中为Google和Apple)SDK(软件开发工具包)和工具创建Android或iOS移动应用程序。

两个最广泛使用的操作系统是Android和iOS,其中Android占据市场的高达86%,而iOS以12%的速度遥遥领先。

原生与混合移动应用 Worldwide Smartphone OS Market share 图片来源:IDC

如果您正在为Android开发,这意味着使用Java(或Kotlin)和iOS编写应用程序,使用Objective-C或Swift编写应用程序。主要工具Xcode是集成开发环境,您的开发人员将在其中创建您的本机应用程序。

另一种鲜为人知的移动应用程序称为混合应用程序。混合应用程序开发意味着使用第三方混合平台(示例包括React Native,PhoneGap,Ionic,Cordova或Xamarin)并使用Web技术(HTML,CSS和Javascript)编写可在iOS和Android上运行的混合应用程序。

对于Native vs Hybrid移动应用程序,混合应用程序可以在任何平台上运行 - (Android和iOS) - 使用相同的代码。这可能听起来比原生应用程序更有优势,因为编写一个应用程序比两个便宜,但不要那么快就兴奋,因为我将强调为什么不选择混合应用程序,因为我们下降。

虽然79%的消费者只会在第一次无法工作时重试一次或两次移动应用,但只有16%的消费者会尝试超过两次。糟糕的移动应用体验可能会阻止用户再次使用应用。源

用户在移动应用程序方面体验了所有其他功能,糟糕的用户体验肯定会帮助您删除应用程序,用户几乎不可能再次返回您的应用程序。

See How Native Apps provide Faster and User-Friendly Checkout

谈到移动应用程序,下载数量肯定代表了应用程序的优秀和受欢迎程度,但关键因素是用户保留。移动开发社区的一个众所周知的秘密是移动应用程序保留率非常低。据TechCrunch称,四分之一的移动用户只使用一次应用程序。

Retention Curves for Android Apps 资料来源:Quettra

本地应用程序在速度,响应能力方面要优越得多,因此在用户保留段中得分更高。本机应用程序具有最佳性能,最高安全性和最佳用户体验。

谈论原生应用程序,为您的在线商店提供简单但性能最佳的解决方案是MageNative App

原生与混合移动应用

内置功能:原生应用可以更好,更快地访问设备的原生功能和内置实用程序,如相机,GPS,日历,而混合应用程序则有点挣扎。

速度:混合应用程序是本机浏览器中的Web应用程序(或网页),例如iOS中的UIWebView和Android中的WebView(不是Safari或Chrome),但本机应用程序作为独立应用程序运行(不需要网络浏览器)。由于这种对本机浏览器的依赖,混合版本落后于本机应用程序。

响应能力:与混合应用相比,原生应用更具响应性,因为它们遵循独特平台的设计模式,但混合应用对所有平台都相同。

离线使用:由于混合应用依赖于原生浏览器,因此无需互联网连接就无法使用,相比之下,媒体播放器,游戏,导航等原生应用也可以脱机使用。

  1. 安全性:原生应用程序存储在应用程序商店中,批准过程会阻止发布错误或有害,而混合应用程序不存在此类商店。
  2. Importance of Security Testing 资料来源:QArea

    如果用户想要搜索任何特定应用,App Store也提供了良好的可访问性。此外,在发布应用程序之前,您可以使用标准工具加密所有内容,隐藏实现等等。

    1. 更好的用户体验标准:正如我之前提到的,混合应用程序的问题在于,即使是最出色的用户体验架构师也无法真正构建满足两种主要用户类型的应用程序:iPhone用户和Android用户,而Native应用程序遵循用于创建Android或iOS应用程序的特定UX / UI标准,允许用户轻松了解应用程序的界面和导航。本机应用程序的一个示例:
    2. Native vs Hybrid Mobile App

      底线:原生与混合移动应用 现在是时候完成Native vs Hybrid移动应用程序之争,结论是用户和他的需求最终决定哪个框架最有效,对我来说,Native应用程序在几乎所有主要方面都优于混合应用程序。

      选择取决于您,如果您正在寻找具有一些基本功能的简单应用程序并且可以处理日常简单任务,请使用混合应用程序,但如果您想要更复杂的应用程序,可以充分利用设备的内置功能和处理复杂的任务然后本机应用程序将是最好的选择,你不会后悔。

答案 1 :(得分:1)

任何将HTML / JS代码包装到本机应用程序中的东西都是混合体。不同之处在于,混合应用程序依赖于UIView(将其视为简约的Web浏览器)来显示所有内容,而本机应用程序通常仅使用UIView进行浏览并将其他所有内容编码用母语。基本上,混合应用程序总是放在UIView上,一切都发生在它里面。类似于全屏打开专用网页并可访问所有(或大部分)本机电话功能(振动,传感器,通知等)。

想象一下使用HTML制作的简单按钮与使用Java / Objective C / C#制作的简单按钮......这就是混合框架试图使工作看起来尽可能相似的东西。混合应用程序不需要(或几乎不需要)本地语言编码。

  

“那么实际上移动网络应用和混合移动应用程序有什么区别?”

上述框架都没有这么说。更具体地说:没有人提到mobile web appshybrid apps形成鲜明对比,因为它们是相同的,只是不同的语义。框架提供的是:

  • 应用程序的网络版(网络应用程序)
  • 移动版应用程序(移动应用程序)

底线:

任何用HTML / JS / CSS编写并充当本机移动应用程序的东西都是混合应用程序。


本文介绍了原生应用,混合应用和“移动网络应用”之间的区别:http://blogs.telerik.com/appbuilder/posts/12-06-14/what-is-a-hybrid-mobile-app-

小心,最后一个只不过是针对无法作为应用安装在手机上的手机优化的网站,它绝对应该与手机应用程序(本机或混合)混合使用。摘录自上面的网址:

  

原生应用程序是针对具有平台SDK,工具和语言的特定平台构建的,通常由平台供应商提供(例如,适用于iOS的xCode / Objective-C,适用于Android的Eclipse / Java,适用于Windows Phone的Visual Studio / C#)

     

混合应用程序(如本机应用程序)在设备上运行,并使用Web技术(HTML5,CSS和JavaScript)编写。混合应用程序在本机容器内运行,并利用设备的浏览器引擎(但不是浏览器)来呈现HTML并在本地处理JavaScript。通过Web到本机抽象层,可以访问移动Web应用程序中无法访问的设备功能,例如加速度计,摄像头和本地存储。

     

移动Web应用程序是服务器端应用程序,使用任何服务器端技术(PHP,Node.js,ASP.NET)构建,这些技术呈现经过样式设计的HTML,以便在设备外形上呈现良好。

考虑到所有这些,您在上面列出的所有四个框架都可以创建移动网页(或移动应用程序,因为他们称之为),但似乎只有Ionic能够构建您可以在手机上实际安装的混合应用程序(找不到Sencha的相关信息,但现在你知道该找什么了。)

答案 2 :(得分:0)

同意上述所有说法。

将添加/总结混合移动应用程序(Apache Cordova和React Native)的优缺点。

Apache Cordova

<强> 赞成

  • 高开发速度
  • 编写Web开发技术(HTML,CSS,Javascript),产生交叉兼容的iOS,Android和Web软件(只需一个Web开发人员)
  • 框架可用于模拟本机应用程序UI元素(即按钮,菜单等)
  • UX非常接近使用模仿原生应用行为的UI元素的本机体验
  • 访问智能手机的硬件API,促进设备功能(例如相机,推送通知,地理位置等)

<强> 缺点

  • 用户体验不如原生应用程序(300毫秒点击延迟,滚动时虚拟点击等)。
  • 应用程序越复杂,由于使用了各种包装器和库,它的工作速度就越慢
  • 无法脱机工作
  • 动画很难在UI中实现

反应原生

<强> 赞成

  • 基于React的应用程序的高开发速度
  • 使用React.js构建的Web应用程序可以轻松转换为React Native移动应用程序,并且可以重用某些源代码
  • 原生用户体验
  • 应用程序的外观和感觉与特定平台的原生移动应用程序完全相同
  • 降低开发成本
  • React Native的专家通常可以构建Android和iOS应用程序

<强> 缺点

  • 相对较新的技术(有限的开源解决方案)
  • 视觉设计方面的限制
  • 不适合手机游戏或需要高负荷(重要计算)的应用等复杂项目

如果您有兴趣比较 Hybrid与Progressive vs Native应用程序开发 this article值得一读。