简介
目前市面上有三种app,企业在开发前,会根据自己的需求,选择不同的app性能的app进行开发
话不多说先看表
Web App(网页应用) | Hybrid App(混合应用) | Native App(原生应用) | |
开发成本 | 低 | 中 | 高 |
维护更新 | 简单 | 简单 | 复杂 |
体验 | 差 | 中 | 优 |
Store或Marke认可 | 不认可 | 认可 | 认可 |
安装 | 不需要 | 需要 | 需要 |
跨平台 | 优 | 优 | 差 |
原生app(nativeapp)
- 介绍
利用Android、IOS平台官方开发语言开发,所有UI写在app中,下载app后,能本地化浏览
- 优点
1.支持访问本地资源(通讯录,相册,相机,麦克风,摄像头等)
2.(本地化浏览)运行速度快、性能高,绝佳的用户体验; - 缺点
1.更新麻烦,开发成本高
2.Android和iOS都需要单独开发
3.发布新版本慢,应用商店发布审核周期长。安卓大概1~3天,iOS需要的时间更长。
4.维护麻烦,下载是用户控制的,很多用户不愿意下载更新(如,版本发布到了3.0,但还是有很多1.0的用户,可能就得继续维护1.0版本的API)。
5.必须等下载完毕用户才可以打开,获得新版本时需重新下载应用更新。
webapp
- 介绍
可以理解为一个触屏版网站。APP就相当于是一个浏览器,固定去只能去那几个网页。
- 优点
1.开发成本极低,而且好更新迭代和维护。
2.无需下载安装包,节约手机空间。更新无需通知用户,由应用开发者直接在后台更新,推送到用户面前的都是全新版本,更便于业务的开展。
3.能跨平台使用 - 缺点
1.受限浏览器,不同浏览器自身属性不相同,如:浏览器自带的手势,页面切换方式,链接跳转方式,版本兼容问题等等。
2.体验和交互都是比较差的
3.受限网络环境,对联网要求高,离线不能做任何操作;运行速度慢,页面不能承载太多东西;
4.安全性相对较低,数据容易泄露或者被劫持。
5.不能直接访问设备硬件和离线存储,
混合app(hybridapp)
- 介绍
介于原生APP和webAPP之间的,结合这两种类型的长处,主要用js和原生技术相互调用。大的框架是原生的,其他内容是网页封装的。通俗讲,就是在native中提供一个容器,用来加载h5。一种取长补短的开发模式,原生代码部分利用WebView插件或者其它框架为H5提供容器,程序主要的业务实现、界面展示都是利用与H5相关的Web技术进行实现的。比如京东、淘宝、今日头条等APP都是利用混合开发模式而成的。
混合开发有两种开发模式:
- 原生主导:需要安卓和IOS原生开发人员,App既有原生开发的页面,也有H5页面,在需要H5页面由原生开发工程师内嵌。
- H5主导:只需要H5开发工程师,借助一些封装好的工具实现应用的打包与调用原生设备的功能,如HBuilder的云端打包功能。
- 优点
1.方便更新又在大的体验上保持优秀
2.效率中,可以跨平台
3.不需要安卓和ios两个进行开发,同一套代码Android和IOS基本上都可使用。节省开发费用,缩短开发周期。
4.可以跨平台使用,编写一次核心代码就可以部署到多个平台。
5.兼容多平台,可以随意调整排版布局等。
6.主要功能区相对稳定下,增加的功能区采用web 形式,使得迭代更加方。
7.每次升级版本只需要在服务器端升级即可,不再需要上传到App Store进行审核; - 缺点
1、用户体验没有native好;
2、web部分性能稍慢(需要连接网络);
如何查看混合app中原生和webview
- 安卓手机,使用开发者选项->显示布局边界,打勾。
页面元素如果是一整块的是h5的,布局密密麻麻的是原生控件。 - 看加载方式 -(比较准确)如过在打开新页面导航栏下面有一条加载条的话,这个页面就是H5页面,如果没有就是原生的。
- 看断网的情况把手机的网络断掉。然后点开页面。可以正常显示的东西就是原生写的。 显示404或者错误页面的是html页面。打不开的原生和H5的报错也是有区别的。
客户端,前端,后端
客户端:客户端修改代码,需要重新下包测试。
前端:前端修改代码,不用重新下包测试,需要连不同测试环境测试。
后端:后端改变不需要下载包,也不需要连测试环境。