H5、原生app、混合开发三者比较
一、概念
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、混合开发三者比较的更多相关文章
- Vue+原生App混合开发手记#1
项目的大致需求就是做一个App,里面集成各种功能供用户使用,其中涉及到很多Vue的使用方法,单独总结太麻烦,所以通过这几篇笔记来梳理一下.原型图如下: 路由配置 主界面会用到一些原生App方法,比如验 ...
- H5与APP混合开发相关知识点总结
整理一: 现在有这么个需求,如下图 app端点击右上角的 加 号 ,弹出模态框 这个项目是基于vue写的,客户端需要调用H5页面里定义的js方法,但是在vue里,所有的方法都是在组件内部声明的,也只能 ...
- h5与app混合开发,jsbridge
https://juejin.im/post/5bda6f276fb9a0226d18931f https://juejin.im/post/5abca877f265da238155b6bc http ...
- zx-editor 移动端(HTML5)富文本编辑器,可与原生App混合(hybrid)开发
ZxEditor 移动端HTML文档(富文本)编辑器,支持图文混排.引用.大标题.无序列表,字体颜色.加粗.斜体. 可用于独立web项目开发,也可以用于与原生App混合(hybrid)开发. 源码地址 ...
- Hybrid APP混合开发的一些经验和总结
http://www.cnblogs.com/kingplus/p/5588339.html 写在前面: 由于业务需要,接触到一个Hybrid APP混合开发的项目.当时是第一次接触混合开发,有一些经 ...
- Hybrid APP混合开发
写在前面: 由于业务需要,接触到一个Hybrid APP混合开发的项目.当时是第一次接触混合开发,有一些经验和总结,欢迎各位一起交流学习~ 1.混合开发概述 Hybrid App主要以JS+Nativ ...
- iOS之H5和Native混合开发
今天需要用到一个H5和Native 混合开发的项目,简单的写一点入门的东西,很简答: 先介绍一下简单的配置步骤: 1.新建项目:SB拖一个UIWebView 按住Ctrl 拖线delegate 设置为 ...
- hybird app混合开发介绍
一 概念 1 Hybird App,是用现有前端(html,js,css)技术来开发的app.特点:1 灵活(开发灵活 ,部署灵活) 2 拥有类似原生的性能体验. 2 不是h5页面,也不是在webvi ...
- AngularJS 之iOS 移动 APP 混合开发(原生+JS)
Ionic 简介 Ionic框架是什么 Ionic 是目前最有潜力的一款 HTML5 手机应用开发框架.通过 SASS 构建应用程序,它 提供了很多 UI 组件来帮助开发者开发强大的应用. 它使用 J ...
随机推荐
- 青风nrf52832跑zephyr——点亮LED
zephyr版本:1.10 硬件:采用青风nrf52832开发板 开发环境:虚拟机Ubuntu16.04编译+Windows7 64bit烧录 使用的是 zephyr-zephyr-v1.10.0 ...
- Mac OSX编译安装php5.6
安装好OSX 10.13以后默认自带的php7.1.7,跟现有环境不兼容,所以准备编译安装php5.6,自带的php7不建议卸载,重新安装一份php5.6 1.安装php的一些依赖,推荐使用brew安 ...
- 【SPOJ2371】LIS2
题目大意:求二维最长上升子序列的长度. 题解: 可以看出,这个问题等价于三维偏序问题. 不过在进行分治的时候要注意,由于 dp 转移是有顺序的,因此只能先处理左半部分,再处理左半部分对右边的贡献,最后 ...
- html背景图不随滚轮滚动,而且按住Ctrl并滚动滚轮时,图片不会变大缩小,就像百度的首页一样
之前在百度知道我提问过这一个问题,后来解决了.不过好多人来问我时怎么解决的,源码.其实很简单.这里我贴一下代码.有需要的小伙伴不用再加我qq了,直接来这里取吧. 里面的图片是我随便找的. <!D ...
- React 服务器端渲染流程
其实我们在访问客户端渲染的页面时,请求到的只是一个 html 空壳,里面引入了一个 js 文件,所有的内容都是通过 js 进行插入的,正是因为页面是由 js 渲染出来的,所以会带来如下几个问题: 1. ...
- 绑定与非绑定以及property装饰器_day_21 作业题
1.定义MySQL类 1.对象有id.host.port三个属性 2.定义工具create_id,在实例化时为每个对象随机生成id,保证id唯一 3.提供两种实例化方式,方式一:用户传入host和po ...
- 如何让一个sprite绕一个点旋转,同时又可以实现指定旋转角度并慢慢停下的效果
如何让一个sprite绕一个点旋转,同时又可以实现指定旋转角度并慢慢停下的效果 首先列出sprite围绕一个点旋转的公式,这个可以自己推导,假设sprite的起始位置为(x1,y1),围绕旋转的中心点 ...
- (转)Android中图片占用内存计算
在Android开发中,我现在发现很多人还不会对图片占用内存进行很好的计算.因此撰写该博文来做介绍,期望达到抛砖引玉的作用. Android中一张图片(BitMap)占用的内存主要和以下几个因数有 ...
- linux中more命令如何使用
more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上.兄弟连Linux培训教程() more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(sp ...
- JS大文件上传断点续传解决方案
1 背景 用户本地有一份txt或者csv文件,无论是从业务数据库导出.还是其他途径获取,当需要使用蚂蚁的大数据分析工具进行数据加工.挖掘和共创应用的时候,首先要将本地文件上传至ODPS,普通的小文件通 ...