APP、H5 、小程序区别
●运行环境
原生App直接运行在操作系统的单独进行中(安卓中可以开启多进程),而小程序运行环境是微信开发团队基于浏览器内核完全重构的一个内置解析器,针对性做了优化,配合自已定义的开发语言标准,提升了小程序的性能 。是一种应用,并非完整的浏览器,只用到一部分H5技术,无法调用window对象和document对象
H5是一种技术,依附的外壳是浏览器,,包括WebView,可以随意使用浏览器中常用的window对象和document对象
●开发成本
原生app的开发涉及到Android/IOS多个平台、开发工具、开发语言、不同设备的适配等问题,开发成本大;一款完善的双平台 App 平均的开发周期约3个月;
小程序只需要开发一个就可以在 Android/IOS等不同平台不同设备上运行,平均开发周期约2周,仅为App的六分之一。
原生APP需要在商店上架(安卓的需上架各种商店);
小程序是微信团队提供了开发者工具并规范开发标准,不用考虑浏览器兼容性,小程序 一次开发就可以自动适配所有手机,开发成本相对低;
H5 的开发,涉及开发工具(vscode、Atom等)、前端框架(Angular、react等)、模块管理工具(Webpack 、Browserify 等)、任务管理工具(Grunt、Gulp等),还有 UI 库选择、接口调用工具(ajax、Fetch Api等)、浏览器兼容性等等。尽管可可定制化非常高,可以有自己的配置模板,但对于项目中各种外部库的版本迭代、版本升级,开发成本比小程序相对高些;H5页面由于无法被单独沉淀用户(无法直接关注),一般都是配合公众号或者APP(html5打包APP)的产品形态
●系统权限
原生app调用的是系统资源,即系统提供给开发的API都可以使用;
小程序是基于微信的,所有功能都受限于微信,不能绕过微信直接使用系统提供的API
原生app可以给用户推送消息;
小程序不允许主动给用户发送消息,只能回复模版消息。
原生App有独立的数据库,可以做离线存储;
小程序只能存储到localStorage,无法做离线存储。
原生app需要下载,安装包比较大;
小程序无需下载,可以通过小程序码等方式通过微信直接打开。
H5不能获取系统权限(如网络通信状态、数据缓存能力等),大多应用被定位在业务逻辑简单、功能单一的场景中。
●运行流畅度
原生App运行在操作系统中,所有的原生组件可以直接调用GPU进行渲染;
小程序运行在微信的进程中,只能通过WebView进行渲染。用HTML+CSS+JS开发,配合微信的解析器最张渲染出来的原生组件的效果,比H5体验上更好。
H5应用面对复杂的业务逻辑或丰富的页面交互时,需要不断的对项优化来提升用户体验。
●下载 与安装
App 从应用商店(如 App Store)里下载;
小程序 通过微信(扫描二维码、搜索)直接获得;
App 安装在手机内存中,就像自己买了辆车放在车库里随时开;
小程序 不需要安装,召之即来用完拜拜;
●占用空间
App 会一直存在手机中占用空间,太多的 App 可能会导致内存不足;
小程序 因为不需要安装,占用内存空间忽略不计;
●机会
App 市场已经饱和,几乎所有的领域都已经被覆盖;
小程序是一片蓝海,在新的使用场景下有很多瓜分蛋糕的好机会;