1. 什么是uniapp
Uniapp(全称:Universal Application) 是基于 Vue.js 框架的多端开发框架,基于当前web技术栈,可以方便地实现多端的开发,不同平台的应用使用同一套代码,可开发出H5、小程序、APP、微信公众号、支付宝小程序等多端应用。
那么,uniapp属于原生吗?这是很多人经常问到的一个问题。下面我们来一次深入探究。
2. uniapp与原生的关系
2.1 uniapp的特点
uniapp 有一个非常明显的特点,就是使用 web 技术栈开发多端应用,省去了开发者去学习 iOS、Android、微信小程序、支付宝小程序等各种端的技术栈,大大降低了开发难度。
虽然 uniapp 使用 web 技术栈进行开发,但它并不等于一个 Web App。Web App 是运行在浏览器中,而 uniapp 是通过框架提供的特殊编译方式,将代码编译成各个平台所对应的原生界面,让应用具备了原生应用的体验。
同时,uniapp 给开发者提供了很多原生能力的接口,例如调用摄像头、获取地理位置等,这让 uniapp 的应用具备了很多原生应用的功能。
2.2 uniapp与原生应用的比较
我们可以采用以下角度来比较 uniapp 和原生应用:
2.2.1 性能比较
原生应用的性能比 uniapp 快很多,原生应用可以充分调用设备硬件,而 uniapp 使用了跨多端技术,难免会存在性能瓶颈。不过,在部分功能实现的性能上,uniapp 依旧可以媲美原生应用。
例如,uniapp 在使用 canvas 进行图形渲染时,因为直接调用 canvas API,性能是很不错的。
2.2.2 用户体验比较
原生应用的用户体验比 uniapp 更好,如滑动流畅、图片加载快速等。因为 uniapp 在渲染时,由于存在多端和多种设备的考量,难免无法达到同原生应用一样的性能。
但在实际开发中,对于绝大部分的应用,uniapp 的用户体验是完全没问题的,特别是对于中小型应用的开发, uniapp 完全可以满足开发需求,甚至当满足需求的同时大幅度缩短开发时间。
2.3 uniapp的开发环境搭建
在开始使用 uniapp 进行开发之前,需要先进行开发环境的搭建,具体步骤如下:
// 安装 HBuilder
https://www.dcloud.io/hbuilderx.html
// 创建 uniapp 项目
HBuilder-X -> 新建 -> uniapp -> uni-app -> 模板 -> 个人模板
// 运行项目
HBuilder-X -> 运行 -> 运行到手机
//预览 H5 测试版
HBuilder-X -> 运行 -> 运行到浏览器
// 发布应用
HBuilder-X -> 发布 -> 云端打包(免费)或离线打包(收费)
2.4 uniapp的优点
uniapp 的首要优点就是可以多端开发,统一代码,避免了重复开发的时间和精力浪费,同时也加强了项目后期的维护和升级难度。
其次,uniapp 也可以实现对原生端基础库 API 的调用,开发体验方面与原生应用逐渐趋向一致。
再者,uniapp 已被多个公司广泛使用。也有大量的开源组件可供扩展使用。
2.5 uniapp的缺点
缺点方面,对于一些较为复杂的APP或游戏,重度操作的需求 uniapp 仍然无法胜任。 由于跨多端调试、适配等方面的问题,导致 uniapp 在性能、使用体验、安全性等各个方面与原生应用存在一些差距。
3. 总结
根据以上介绍,我们可以看到 uniapp 与原生应用相比仍然存在一定的差距,但由于多个端、同一套代码、低成本开发等优势使得开发者使用起来十分便利,也因此 uniapp 成为多端开发趋势的一股力量。