Skip to content

小米也有小程序?热闹了

2017年8月29日

上上周五(18号)支付宝小程序在经历了大半年的传闻之后,终于揭开了神秘面纱,开始公测。和之前传闻的一样,支付宝小程序的核心能力的 API 与微信小程序几乎完全一样。

至此,支付宝勉强算挤进“小程序俱乐部”,而小程序也不再是微信小程序的代名词。

小程序俱乐部

在之前的推文【闲聊】大前端揭秘中,有表述过 native 终端和 web 端融合的趋势。大体上来看,主要的方向包括 native 动态化(React-Native 为代表)、web native 化(以 AMP、PWA 为代表)以及“小程序”。

长期以来,在移动端被诟病的有两件事情:

  • web 不管是能力、性能还是体验都太差
  • native 体积大,发版更新困难

在大前端融合的大背景下,实现一种既可以充分利用 web 快速轻量的特性,又能够达成 native 的性能和体验的技术方案可谓是众望所归。正是在这种愿景下,诞生了小程序。

从这个角度来看的话,小程序的诞生可能还不能简单归于微信的高瞻远瞩,而更可能是行业发展到了一个路口,大家都发现要走一些新的路了,只是微信提前选定了小程序这样一条路,然后花了一年半的时间把它一脚一脚踩出来。

那么支付宝要做小程序也算是水到渠成了。既有行业大背景,又有前言的领路人。总之小程序俱乐部现在不止是微信一个人玩了。

小米 MIUI 也要加入

其实这才是本文的重点,MIUI 也要做小程序。

如果这篇文章提前两个月写好发出来,那么还可以说是 MIUI 要做,事实上到现在这个时间点,小米已经放出了一部分 MIUI 小程序,官方的名称似乎是叫作秒开应用,只是还没有正式对开发者开放。

从技术上来说,微信、支付宝、MIUI 三者的小程序落地方案各不相同,微信主要靠自研框架以 web 技术落地为主,支付宝以 React 来落地(React-web还是React-Native并不确定),MIUI 则是完全落地到 native UI 上。

MIUI应用市场搜索秒开

图:MIUI应用市场搜索秒开

小程序的宿主

小程序的体验如何,很大程度上会取决于它的宿主。一个好的宿主可以给小程序带来非常大的优势。

对于做技术的人来说,可能最容易理解的首先是生命周期上的优势。简单点说就是你的小程序什么时候被启动,什么时候被暂停,什么时候被杀掉,什么时候能跑在后台。

如果你做过 native 开发的话,会发现这些问题本身也是做一个 App 需要关注的问题。作为一个 App ,自身都可能随时被杀掉,却还要关注自己的子程序是否被杀掉,其实有点勉为其难。事实上在使用微信小程序的过程中也时常会碰到小程序被意外杀掉的情况,这很有可能是一个无法彻底解决的难点。

而如果小程序的宿主变成了操作系统,生命周期的管理就变得非常自然了,和 native App 完全一样。

同样的问题也出现在权限或者能力上。举一个简单的例子,一个微信小程序如果要修改锁屏界面,那么首先需要微信有修改锁屏界面的能力和权限,同时还需要微信赋予小程序能力和权限。这并不是一件容易的事情,甚至有一些事情是不可实现的,例如修改解锁方式。但如果小程序的宿主是操作系统,那么事情又会简单很多。

除了上面两者之外,宿主还能直接决定的一件事情,就是入口。

目前微信已经在各个功能中为小程序留下了入口,以便为它引流。但是这仍然不能解决一件非常尴尬的事情:入口太深。想想打开一个常用的小程序,需要先打开微信,然后点发现tab,然后点小程序,然后在列表中点开,这个过程是无比繁琐的。所以即便是只有 Android 才支持将小程序放到桌面,微信也义无反顾地进行了支持,因为除此之外确实很难有一个更方便的入口。

而如果小程序的宿主变成了操作系统,就是另一番风景了。别说桌面图标了,就是状态栏、锁屏、设置甚至通讯录都能轻易成为小程序的入口。更别说操作系统还可以支持更多场景化的入口:连上公司 Wifi 自动打开打卡小程序,回到家自动打开空调控制小程序,拍完照打开美图小程序等等。

总结下来,会发现 MIUI 做小程序在技术上是有巨大的优势的,无论是技术实现上还是入口引流上都能做得更好,用户用起来也会觉得更自然。

超级 App 与系统之争

留意科技新闻的同学可能前一阵有注意到一条新闻:苹果手机在华销量下滑,最大的原因居然是微信。手机和微信一个是平台,一个是 App,这两个看似是合作关系,怎么会有竞争性呢?

事实上微信早已经不是一般意义上的 App。从功能上来说,它含有通讯、阅读、社交、支付等主要功能,而这些刚好对应 iMessage / iBooks / Apply Pay等功能。或者换一个说法,苹果所提供的独特服务,在中国有很大部分被微信所承载,对用户来说,使用苹果手机或者别的手机,只要是能用微信,那么就能得到几乎完全一样的体验。这样就极大的削弱了苹果手机的差异性,从而客观上减弱了市场竞争力。

具体到小程序这件事上,也有相似的问题。如果我们假设用户会更信赖微信,而不是更信赖操作系统,假设用户使用手机的主要界面就是微信,那么从微信中打开小程序和从操作系统中打开小程序哪个更自然也许是一件不好评判的事情。或者换一个说法,当微信变成操作系统上的另一个操作系统时,它们就有了竞争关系。

事实上,现在已经有了这个趋势。例如微信小程序一直推崇的二维码入口即是如此。当我们看到一个二维码,第一反应会是打开微信扫一扫,而不是找系统相机或者系统浏览器来扫描。这样二维码就成了微信这一层的专属入口。当这样的入口越来越多时,操作系统的入口优势也许就不存在了。

回到技术上,我们说操作系统相比微信有天然的优势。但是当微信的体量足够大的时候,操作系统同样必须给予它足够的权限,并保证它的运行是顺畅的,否则用户会认为手机有问题,从而责怪操作系统厂商。以 Android 系统最典型的后台运行为例,现在没有哪个厂商是敢主动杀掉微信的进程的,既然如此,微信也就有一定信心能保证小程序的运行。从这个角度来说,超级 App 作为小程序的宿主也并不一定有非常大的劣势。

除了这些之外,超级 App 作为小程序宿主相比操作系统还会有一个优势,就是市场推广。让一个用户安装微信比让一个用户安装 MIUI 的代价可能要小100倍。

结论:微信小程序相比 MIUI 小程序在技术和入口上的劣势不一定非常大,反而在市场推广上有巨大优势。

目的

微信推出小程序,目的显然不在于建立技术规范或者引领技术潮流,否则不会对支付宝几乎全盘照抄这件事情如此淡定。事实上小程序的推出是有非常重的产品发展痕迹的。一方面,公众号取得巨大的成功,另一方面,公众号的用户体验却相当差。在前述技术背景下,小程序就这么被微信弄出来了。

它其实承载的是微信原来对服务号的期望,即微信提供信息呈现、交互、支付等功能,商家在微信中做好服务。所以也可以说小程序其实是为 O2O 而生的。这也是小程序对线上流量如此克制,却大力发展线下流量的原因。当这一套东西跑顺之后,微信实际上就拥有了电商、电商服务、支付业务的话语权,这正是微信商业变现的愿景。

MIUI 推出小程序的目的却有点让人摸不着头脑。从目前的产品形态来看,它跟微信打的算盘显然是不同的。那么猜想它的出发点可能有如下几种:

发现小程序的风口,先行投入建立技术规范,掌握话语权 为 MIUI 添加增值服务,使它不止成为一个操作系统,而是同时具备商业能力

不管是哪一种,都和微信的初衷是不一样的。目的的不同会导致产品和运营的方式有巨大的不同。

MIUI 小程序的不确定性

因为 MIUI 的推广跟微信相比有天然的劣势,因此产品策略上的选择就显得非常重要了。一种玩法是采用去中心化的策略,小米提供小程序技术框架,然后推动其它操作产家按这个框架自己实现。另一种则是中心化的策略,小米也和微信一样,提供统一的市场、入口并制定开发工具、审核标准。

这两种玩法各有利弊。前者可能可以推得更广一些,但是各个操作系统厂家不一定都有动力去做落地。即使是有落地意向,也可能在具体落地的时候采用一些不同的技术方案。后者则可以让小米从这个小程序中获取更多的商业利益,但同时也限制了它的生存空间。

具体小米会怎么样去经营这样一个小程序,拭目以待。

有端就有兼容性问题

对前端而言,小程序俱乐部一下子出现了三个玩家,可能意味着社区会再次分裂,并且这一次,没有 W3C 组织来一统天下。可以预见的是,小程序的兼容性问题会逐渐成为前端领域一个新的问题。然而从另一方面来说,这也正是前端工程师核心价值中的一部分:在不同的端中提供良好的一致的用户体验。不管怎么样,未来已经变得更好玩了。