前言

这几天看到微信团队推出了一个名为 Donut 的小程序原生语法开发移动应用框架,通俗的讲就是将微信小程序的能力开放给其他的企业,第三方的 App 也能像微信一样运行小程序了。

其实不止微信,面对广阔的B端市场,阿里也早已开放了这样产品——mPaas,只不过阿里没有兼容市面中占比和使用范围最大的微信小程序,所以一直处于不温不火的状态。

今天就主要对比分析下目前市面上这类产品的技术特点及优劣。

有这些产品

目前这类产品有一个统一的技术名称:小程序容器技术。

小程序容器顾名思义,是一个承载小程序的运行环境,可主动干预并进行功能扩展,达到丰富能力、优化性能、提升体验的目的。

目前我已知的技术产品包括:mPaas、FinClip、uniSDK 以及上周微信团队才推出的 Donut。下面我们就一一初略讲下各自的特点。

他们的特点

1、mPaas

mPaaS 是源于支付宝 App 的移动开发平台,为移动开发、测试、运营及运维提供云到端的一站式解决方案,能有效降低技术门槛、减少研发成本、提升开发效率,协助企业快速搭建稳定高质量的移动 App。

mPaaS 提供了包括 App 开发、H5 开发、小程序开发的能力,只要按照其文档可以开发 App,而且可以在其开发的 App 上跑 H5、也可跑基于支付宝小程序标准开发的的小程序。

微信小程序 集成第三方 架构 小程序集成第三方sdk_App

由于行业巨头之间互不对眼,目前 mPaas 仅支持阿里生态的小程序,不能直接兼容例如微信、百度、字节等其他生态平台的小程序。

2、FinClip

FinClip 是一款小程序容器,不论是移动 App,还是电脑、电视、车载主机等设备,在集成FinClip 小程序 SDK之后,都能快速获得运行小程序的能力。

提供小程序 SDK 和小程序管理后台,开发者可以将已有的小程序迁移部署在自有 App中,从而获得足够灵活的小程序开发与管理体验。

FinClip 兼容微信小程序语法,提供全套的的小程序开发管理套件,开发者不需要学习新的语法和框架,使用FinClip IDE、小程序管理后台、小程序开发文档、FinClip App就能低成本高质量地完成从开发测试,到预览部署的全部工作。

微信小程序 集成第三方 架构 小程序集成第三方sdk_微信小程序_02

3、Donut

Donut 多端框架是支持使用小程序原生语法开发移动应用的框架,开发者可以一次编码,分别编译为小程序和 Android 以及 iOS 应用,实现多端开发。

基于该框架,开发者可以将小程序构建成可独立运行的移动应用,也可以将小程序构建成运行于原生应用中的业务模块。该框架还支持条件编译,开发者可灵活按需构建多端应用模块,可更好地满足企业在不同业务场景下搭建移动应用的需求。

微信小程序 集成第三方 架构 小程序集成第三方sdk_微信_03

4、uniSDK

Uni-app 小程序 SDK,是为原生 App 打造的可运行基于 uni-app 开发的小程序前端项目的框架,从而帮助原生 App 快速获取小程序的能力。uni 小程序 SDK 是原生SDK,提供 Android 版本 和 iOS 版本,需要在原生工程中集成,然后即可运行用uni-app框架开发的小程序前端项目。

Unisdk是 uni-app 小程序生态中的一部分,开发者 App 集成了该 SDK 之后,就可以在自有 App 上面跑起来利用 uni-app 开发的小程序。

优劣势对比

1、各自的优势

mPaas

● 大而全,App开发、H5开发、小程序开发一应俱全;
● 技术产品来源于支付宝,背靠蚂蚁金服有大厂背书;
● 兼容阿里系的小程序,例如支付宝、钉钉、高德、淘宝等;
● 拥有小程序管理端、云端服务。

FinClip

● 小而巧,只专注小程序集成,集成SDK后体积增加3M左右,提供小程序全生命周期的管理 ;
● 提供小程序转 App 服务,能够一定程度解决 App 开发难的问题;
● 几个产品中唯一支持企业私有化部署的,可进行定制化开发,满足定制化需求;
● 兼容微信小程序,之前开发者已拥有的微信小程序,可无缝迁移至 FinClip;
● 多端支持:iOS、Android、Windows、macOS、Linux,国产信创、车载操作系统。

Donut

● 微信的亲儿子,对微信小程序兼容度有其他厂商无可比拟的优势(但也不是100%兼容微信小程序);
● 提供小程序转 App 服务,能够一定程度解决 App 开发难的问题;
● 体验分析支持自动接入功能,无需修改代码即可对应用中的所有元素进行埋点;
● 提供丰富的登录方法:微信登录、苹果登录、验证码登录等。

uniSDK

● 开源社区,众人拾柴火焰高;
● uniapp 开发小程序可迁移至微信、支付宝、百度等平台之上,如果采用 uni 小程序 SDK,之后采用 uni-app 开发小程序,那么就可以实现一次开发,多端上架;
● 免费不要钱。

2、各自的不足

mPaas

● 小程序管理略简单,没有小程序全生命周期的管理;
● App 集成其 SDK 之后,体积会扩大 30M 左右;
● 不兼容微信小程序,之前微信开发的小程序,需要用支付宝小程序的标准进行重写才可迁移到 mPaaS 上;
● 目前只支持 iOS 与 Android 集成,不支持其他端。

FinClip

● 没有对应的移动应用开发平台,只专注于做小程序;
● 生态能力相较于其他三者相对偏弱,但兼容微信语法可一定程度补齐;
● 暂不支持 Serveless 服务;
● 产品快速迭代,既有惊喜,也有未知。

Donut

● 对小程序的数量、并发数、宽带上限等有比较严格的规定;
● 目前仅处于 beta 阶段,使用过程有一定 bug 感;
● 集成后体积增加明显,核心 SDK 500 MB,地图 300 MB;
● 没有小程序全生命周期的管理;
● 目前仅支持 iOS 与 Android 集成,不支持其他端。

uniSDK

● 开源社区,质量由开源者背书,在集成、开发过程当中出现问题,bug解决周期长;
● uni 小程序 SDK 仅支持使用 uni-app 开发的小程序,不支持纯 wxml 微信小程序运行;
● 目前 uni 小程序 SDK 仅支持在原生 App 中集成使用,暂不支持 HBuilderX 打包生成的 App 中集成;
● 目前只支持 iOS 与 Android 集成,不支持其他端。

以上就是关于几个小程序容器的测评分析结果,可以看出并没有完美的选择,每个产品都有自己的一些优势和不足,选择适合自己的就是最好的。希望能给需要的同学一定的参考,如果你有更好的选择欢迎交流讨论。