现在的 APP 功能越来越庞大了,就拿我们熟悉的来说吧,现在已经很难找到没有信息流的 APP 了。像微信和支付宝这样的巨型 APP 来说,就更夸张了,简直是手机操作系统上的操作系统。
那就产生了几个问题:
- 巨型应用 :用户可能仅仅想使用一个 APP 的核心功能,捎带手有几个个性化的非核心功能,就够了,可是却需要在手机上安装一个巨型 APP,安装包大小也是不断递增。
- 无法敏捷迭代 :对于 APP 开发者来说,一方面修改其中一个小功能时可能牵一发而动全身容易出错,另一方面任何修改都需要重新发版,改动无法热部署,只能等待一个很长的发版流程,十分不敏捷。
- 代码量堆积 :对用户来说是个巨型应用,对开发者来说也会导致代码堆成屎山,有各色各样的代码风格,依赖冲突,负担很重。
- 多平台维护 :同样一个小功能,可能要安卓和 iOS 统统开发一遍,维护多套代码,并保持一致,这会导致人格分裂。
所以,模块化开发、热更新、灵活组建、跨平台等特性是开发者所梦寐以求的,而且随着 APP 功能越来越庞大,也必然要想办法解决这些的痛点。
一种方法是,把模块化的功能 H5 化,然后嵌入到 APP 中,这样 H5 页面可以随时远程热更新,其改动也不会影响原生 APP 的功能,岂不很美。
但如果你开发过 APP 里嵌入 H5 的应用的话,你就知道 H5 存在些许弊端,例如 APP 原生的系统权限 H5 多数是获取不到的,也不支持本地缓存。
所以,Hybrid 模式渐渐开始流行, native 小程序 的架构模式也成为趋势,它解决了巨型应用带来的问题,同时又有远超 H5 的体验。
当然,微信小程序已经成功开创了这样的模式。
自微信推出小程序开始,各大厂商都针对自己的平台推出了相应的小程序的方案,可以说是层出不穷,基本上每一个厂都有一个对应的小程序的一个方案(如下图所示)。
然而,各大厂商的小程序只能运行在自己生态内的 App 上,可不可以让我自己的 APP 里的功能,也以小程序的形式体现呢?
当然可以,但这需要开发量,你需要为你的 APP 定制一个小程序开发平台,然后再在上面开发小程序应用,等你定制完了,黄瓜菜都凉了。
你也可以选择市场上比较成熟的小程序SDK进行集成便可让自己的APP快速拥有小程序运行能力。例如类似 FinClip 这样的 SDK 就可以完全满足需求。
只需要在 APP 里嵌入小程序容器运行时 SDK ,就可以把你开发好的小程序放在你的 APP 里。
其中我觉得有一点很吸引我,是这一条, 兼容微信小程序开发规范 。
也就是说,原来微信小程序的开发者,可以在不改代码的情况下,顺带手把这个小程序放在自己的 APP 里。同时,提供后台管理页面,可以统一管理自有和外部开发上架的小程序,以及对收集到的小程序数据进行分析。