一、概念

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构建而成,然后封装在细薄的原生容器里面,可通过容器来访问原生平台功能。

H5、原生app、混合开发三者比较的更多相关文章

  1. Vue+原生App混合开发手记#1

    项目的大致需求就是做一个App,里面集成各种功能供用户使用,其中涉及到很多Vue的使用方法,单独总结太麻烦,所以通过这几篇笔记来梳理一下.原型图如下: 路由配置 主界面会用到一些原生App方法,比如验 ...

  2. H5与APP混合开发相关知识点总结

    整理一: 现在有这么个需求,如下图 app端点击右上角的 加 号 ,弹出模态框 这个项目是基于vue写的,客户端需要调用H5页面里定义的js方法,但是在vue里,所有的方法都是在组件内部声明的,也只能 ...

  3. h5与app混合开发,jsbridge

    https://juejin.im/post/5bda6f276fb9a0226d18931f https://juejin.im/post/5abca877f265da238155b6bc http ...

  4. zx-editor 移动端(HTML5)富文本编辑器,可与原生App混合(hybrid)开发

    ZxEditor 移动端HTML文档(富文本)编辑器,支持图文混排.引用.大标题.无序列表,字体颜色.加粗.斜体. 可用于独立web项目开发,也可以用于与原生App混合(hybrid)开发. 源码地址 ...

  5. Hybrid APP混合开发的一些经验和总结

    http://www.cnblogs.com/kingplus/p/5588339.html 写在前面: 由于业务需要,接触到一个Hybrid APP混合开发的项目.当时是第一次接触混合开发,有一些经 ...

  6. Hybrid APP混合开发

    写在前面: 由于业务需要,接触到一个Hybrid APP混合开发的项目.当时是第一次接触混合开发,有一些经验和总结,欢迎各位一起交流学习~ 1.混合开发概述 Hybrid App主要以JS+Nativ ...

  7. iOS之H5和Native混合开发

    今天需要用到一个H5和Native 混合开发的项目,简单的写一点入门的东西,很简答: 先介绍一下简单的配置步骤: 1.新建项目:SB拖一个UIWebView 按住Ctrl 拖线delegate 设置为 ...

  8. hybird app混合开发介绍

    一 概念 1 Hybird App,是用现有前端(html,js,css)技术来开发的app.特点:1 灵活(开发灵活 ,部署灵活) 2 拥有类似原生的性能体验. 2 不是h5页面,也不是在webvi ...

  9. AngularJS 之iOS 移动 APP 混合开发(原生+JS)

    Ionic 简介 Ionic框架是什么 Ionic 是目前最有潜力的一款 HTML5 手机应用开发框架.通过 SASS 构建应用程序,它 提供了很多 UI 组件来帮助开发者开发强大的应用. 它使用 J ...

随机推荐

  1. [CF 1238F] The Maximum Subtree 树DP

    题意 给定一颗树,求这个树的最大子树,且这个子树是一个good-tree. good-tree的定义是:每个节点可以表示成一个数值区间,而树上的边表示两个点表示的数值区间相交. 题解 通过分析可以发现 ...

  2. PowerDesigner 生成SQL Server 注释脚本

    --生成数据表的注释EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=[%R%?[N]]%.q:COMMENT% , @l ...

  3. Spring MVC Theme(简单示例)

    在渲染视图的spring-web中,配置them. 实现两个接口就可以使用: ResourceBundleThemeSource  --> 用于确定要使用的主题的名字(theme name) S ...

  4. nginx upstream和轮询策略

    upstream nginx upstream语法配置 upstream 后面跟服务名 其中包含了,域名,端口 以及权重,可以看到他既支持http协议也支持socket协议的类型,backup意味着该 ...

  5. oracle 循环的一种写法

    for v_n in( select bb.temNum, bb.LOANTYPE from (select decode(bns.assignstate, '{016D68F9-719B-4EFC- ...

  6. List集合的方法总结

    1. 添加方法 boolean add(E e): 向集合的末尾添加指定的元素 boolean addAll(Collection<? extends E> c): 向集合的末尾添加一个指 ...

  7. hdu 1208 Ignatius and the Princess III 划分数,dp

    题目 题意:给你一个数字n,求将其划分成若干个数字相加总共有多少种划分数: <span style="font-size:24px;">#include <ios ...

  8. TensorFlow使用记录 (二): 理解tf.nn.conv2d方法

    方法定义 tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=True, data_format="NHWC&quo ...

  9. 动态调用WebService接口的几种方式

    一.什么是WebService? 这里就不再赘述了,想要了解的====>传送门 二.为什么要动态调用WebService接口? 一般在C#开发中调用webService服务中的接口都是通过引用过 ...

  10. 轮播图和xadmin后台管理

    一.数据库设计 轮播图 1.安装依赖 pip install Pillow 2.模型类:home/models.py class Banner(models.Model): ""& ...