很多朋友在了解小程序技术的时候,都会有这样的疑惑“到底与 H5,原生应用”这些技术相比,小程序具有哪些优势与劣势呢?
H5 移动应用
我们常说的H5 其实也通常可以被视为一种 Web App,相比于我们在桌面端浏览器中打开的网页,主要是增加了一些响应式的设计与交互优化,从而使得这些网页更适合在移动端的浏览器中显示运行。既然是网页应用,那依然是基于JavaScript,CSS 和 HTML进行实现的,由于是基于各类前端技术栈进行实现,最大的好处就是快速、简单、方便,且有各种技术资料可以参考。同样,H5的缺点与优点也是并存的,比如由于技术已经很成熟了,对于前端经验欠缺的新人来说,面对各式各样的框架,模块、任务管理工具,UI库可能会出现无从下手的问题;此外相比于原生应用,对于系统权限的获取(比如数据缓存能力,网络通信状态等)都显得比较鸡肋,当低性能的设备加载包含复杂逻辑的页面时,会出现明显的卡顿与延迟问题。
原生应用
原生应用也被叫做Native App,相比于 H5 应用通过前端三大件进行实现不同,原生应用主要会采用 iOS 与 Android 的专有语言Object-C(或 Swift),Java(或 Kotlin)进行实现,大多我们所常见的国民应用,比如微信,支付宝等都属于这种原生应用。既然被叫做「原生应用」,就像操作系统的亲儿子一样,天然在性能与体验上具备优秀的潜质,也有组件库丰富,接口支持完善等各种优势特点。但原生应用最大的缺陷就是不能跨平台研发,以目前的主流市场为例,必须要支持 iOS 与 Android 两个主流平台。
混合应用
混合应用一般被称为 Hybrid App。简单来说,混合应用就是将原生功能封装成对应的 JS 接口,在前端使用 H5 来开发对应的 App (即 H5 作为内容+原生应用作为壳),看上去虽然是一个移动原生应用整体,但实际的页面还是网页,一套代码可以生成 iOS 与 Android 两种安装包,开发成本较低。
我们常见的淘宝,京东等应用由于更新与优化节奏都十分快速,为了更好的响应「贴近用户」的目标,应用中有的功能通过原生 Native 实现,有的功能则通过 H5 页面进行实现,这种应用就属于我们所说的混合应用。
小程序
严格意义上来说,小程序并不属于以上3 种应用的任何一种。小程序主要通过 JavaScript 与 CSS 这种常见的前端技术进行开发,但又没有完全使用 HTML进行实现,在不同的操作系统中,JavaScript 代码分别运行在 iOS 的 JavaScriptCore 与 Android 的 X5 JSCore 中,各家小程序平台或多或少都有一部分自研的核心,因此渲染视图层的组件也有所不同。相比「 H5 移动应用」与「 移动原生应用」,小程序具备如下优势:
- 具备跨平台的能力,一套代码可以在 iOS 与 Android 两个平台中运行;
- 远超过 H5 的体验(支持本地缓存,Webview,有丰富的组件与支持库);
- 能获取更多系统权限,完成更加丰富的产品设计;
- 可以避免 DOM 泄露(不使用常用的 window 对象与 document 对象);
- 开发简单,上手成本低(比如 FinClip 提供了 FIDE 与开发文档);
此外,小程序还具有这样一些特有优势(以下内容以FinClip为例):
- 目录结构清晰,代码结构简单,便于初学者更好的学习与探索;
- 开发环境简单,不需要配置各种各样的脚手架与框架,开发成本极低;
- 发布与部署流程简单,不需要运维与服务端的相关支持,几乎可以只通过「点击」完成小程序的提审与上架;
- 支持自定义组件,通过将组件的业务逻辑写在组件模块之中,用组件化的编程思维设计业务;
- 具备 Windows SDK,在桌面系统中也能够提供对应的支持与支撑,并不局限在移动业务与应用中;
FinClip是什么?
FinClip 小程序开放平台是基于我们自研的小程序容器技术,帮助任何企业中的 App 具备运行小程序能力的一套技术。任何 App 都可以通过引入 FinClip 小程序 SDK 来获得运行小程序的能力,也能够在http://FinClip.com的后台中完成小程序的更新,上架能力,与微信、头条或支付宝小程序不同,FinClip 同时提供 SaaS 与私有化版本的小程序管理平台,最大程度帮助开发者打造自己的业务开放生态,同时构建企业的专属小程序开放平台。
与Taro 或 Uni-App 不同,FinClip 是一套小程序生态,开发者可以通过集成的 SDK 帮助 App轻而易举获得打开小程序的能力,此外 FinClip 也支持微信等其他平台的小程序语法,支持平滑上架,如经过 Uni-App所编译的微信小程序可以直接被上传至 FinClip 中,并在移动应用中打开使用,为了尽可能为开发者与用户提供良好的体验,FinClip不仅提供完善的开发、测试、上下架等全生命流程,引入 FinClip SDK 的应用安装包体积仅会增加 2M 左右。