一、概念
a) H5:即Html5,接触过互联网的都知道html,所以很明显h5是html的第5次重大修改的一项超文本标记语言的标准协议。
b) 原生:使用原生制作APP(Native app),即在基于目前的智能手机的操作系统(如安卓android、苹果IOS,另外还有windows phone)的基础上并且搭配原生的编程编写运行的第三方的移动应用程序,简称原生APP。
二、用户使用角度
一款APP展现给用户的时候,用户最关心的事是用户用最简单的操作完成我想要的东西或者是完成一些操作,用户不管你是怎样实现的功能,因为对用户说最最最主要的是“用户体验”。
“用户体验”这是程序猿和企业运营者必需(必定需要)要考虑的头等大事。
具体用H5的体验好还是用原生的体验好,这就涉及到应用本身的内容以及各个页面来决定了。
h5 app开发快,实现的功能也很炫,好高大上哦!那是我想达到的技术。原生的开发太耗时耗力。
native app能更好的适应各种类型的功能实现,你H5可以的我原生的都可以实现。
H5+原生混合开发,某此固定格式和控件的、页面反应速度要求高的模块就采用原生natvie开发,对于新闻、大段文字、资讯类的用H5语言的标准实现页面来加载,将其嵌入到原生框架中那么,可以达到比较良好的体验。
————————————————————————————————
原生应用程序:原生应用程序是某一个移动平台(比如iOS或安卓)所特有的,使用相应平台支持的开发工具和语言(比如iOS平台支持Xcode和Objective-C,安卓平台支持Eclipse和Java)。原生应用程序看起来(外观)和运行起来(性能)是最佳的。
HTML5应用程序:HTML5应用程序使用标准的Web技术,通常是HTML5、JavaScript和CSS。这种只编写一次、可到处运行的移动开发方法构建的跨平台移动应用程序可以在多个设备上运行。虽然开发人员单单使用HTML5和JavaScript就能构建功能复杂的应用程序,但截至本文截稿时仍然存在一些重大的局限性,具体包括会话管理、安全离线存储以及访问原生设备功能(摄像头、日历和地理位置等)。
混合应用程序:混合应用程序让开发人员可以把HTML5应用程序嵌入到一个细薄的原生容器里面,集原生应用程序和HTML5应用程序的优点(及缺点)于一体。
简而言之,原生应用程序提供了最佳易用性、最佳特性以及最佳总体移动体验。以下这些是只能通过原生应用程序才能实现的功能:
多点触控:双击、缩放及其他组合的用户界面(UI)手势。
•快速图形API:原生平台为你提供了显示最快速的图形。如果你显示只有寥寥几个元素的静态屏幕,这个功能可能不太重要,但如果你使用大量数据,需要快速刷新,这项功能却很重要。
•流畅动画:与快速图形API有关的是实现流畅动画的功能。这在动画、高度交互的报表或者转换照片和声音的计算密集型算法中显得尤为重要。
•内置部件:摄像头、地址簿、地理位置及设备的其他原生功能可以无缝地整合到移动应用程序中。另一个重要的内置部件是加密的存储装置,这方面稍后会有详细介绍。
•易于使用:原生平台是人们耳熟能详的平台,所以如果你在这个熟悉的平台上添加人们期望的所有原生功能,也就拥有了一款使用起来完全更容易的应用程序。
•说明文档:市面上仅仅介绍iOS和安卓开发的图书就有2500多本,Stackoverflow等网站上还有不计其数的文章、博文和详细的技术帖子。
原生应用程序通常使用集成开发环境(IDE)开发而成。IDE提供了用于构建、调试、项目管理和版本控制的工具,还提供了专业开发人员需要的其他工具。虽然iOS和安卓应用程序是使用不同的IDE和语言开发而成的,不过开发环境方面却有颇多相似之处,没有必要深入钻研两者的差异。简而言之,设备需要什么样的工具,你就使用什么工具。
你之所以需要这些工具,是因为原生应用程序开发起来比较困难。同样,需要的开发经验也要比其他开发场景来得丰富;你根本不能剪贴拷贝Objective-C,就指望可行。确实,开发团队的技术专长是个重要的考量因素。如果你是名专业开发人员,恐怕早已通晓成熟可靠的API和框架、通过已构建的部件轻松实现的特效,或者将代码都放在一个地方的好处。说实话,这年头技能娴熟的原生iOS或安卓开发人员如同摇滚明星,自然可以提出摇滚明星般的要求。
虽然我们从开发的角度来探讨原生应用程序,不过别忘了还有一个更重要的角度:最终用户。如果你在物色某款应用程序,可以在应用程序商店中找到。如果你开始运行应用程序,它会立即启动。如果你使用应用程序,可以获得快速的性能以及一致的平台外观感觉。如果你的应用程序需要更新,它会告诉你需要更新。原生应用程序为你提供了期望从制造你手头设备的公司获得的一切,好像应用程序的用途就是这样。
原生应用程序通常使用集成开发环境(IDE)开发而成。IDE提供了用于构建、调试、项目管理和版本控制的工具,还提供了专业开发人员需要的其他工具。虽然iOS和安卓应用程序是使用不同的IDE和语言开发而成的,不过开发环境方面却有颇多相似之处,没有必要深入钻研两者的差异。简而言之,设备需要什么样的工具,你就使用什么工具。
你之所以需要这些工具,是因为原生应用程序开发起来比较困难。同样,需要的开发经验也要比其他开发场景来得丰富;你根本不能剪贴拷贝Objective-C,就指望可行。确实,开发团队的技术专长是个重要的考量因素。如果你是名专业开发人员,恐怕早已通晓成熟可靠的API和框架、通过已构建的部件轻松实现的特效,或者将代码都放在一个地方的好处。说实话,这年头技能娴熟的原生iOS或安卓开发人员如同摇滚明星,自然可以提出摇滚明星般的要求。
“只要编写一次、可到处运行”的HTML5方法的一个重要部分是,就原生应用程序而言,分发和支持要容易得多。需要开发修正版或添加功能特性?完成后可以为所有用户统一部署。就原生应用程序而言,开发和测试周期比较长,之后消费者通常必须登录到商店、下载新版本,才能获得最新修正版。重大局限性在于离线存储和安全,对企业移动应用程序来说更是如此。虽然你可以通过将文件缓存在设备上,貌似实现离线功能,但这根本不是一种很好的解决办法。虽然底层数据库可能经过加密,但是其不如用开发者证书保护每个应用程序的原生钥匙链加密方法来得充分分隔。此外,如果从桌面端启动带验证机制的Web应用程序,每当应用程序被发送到后台,它都需要用户输入登录凭据。这对用户来说是个糟糕的体验。通常来说,在原生平台上实现哪怕微不足道的安全措施对Web移动开发人员来说也是很复杂的任务。因此,要是安全至关重要,这个因素可能会决定你选择哪一种移动技术。
混合开发集原生和HTML5两者的优点(及缺点)。我们定义的混合应用程序是一种Web应用程序,主要使用HTML5和JavaScript构建而成,然后封装在细薄的原生容器里面,可通过容器来访问原生平台功能。