微信小程序,不可不知的一二三四

忽如一夜春风来。国内开发者圈最近的热门话题莫过于微信的小程序,也很合理,当下没有任何一个APP能达到微信这种万人瞩目的量级。当我们的睡前最后一眼和醒来第一眼都给了她的时候,如张小龙所说,微信已经成为了一个生活方式。而微信的小程序最直观的联想就是一个搭载在微信里的App Store,这意味着一个覆盖6亿人口的大市场裂开了一个新的流量入口,这对所有开发者来说好比获得了一次重新洗牌的机会。错过了苹果App Store的你,还舍得再次错过微信App Store吗?

幻想总是美好的,但是当我去仔细研读微信小程序的文档,又发现我们都误解了微信的本意,或者说,小程序的出发点本来就不是为了取代或重建App Store,正如文档的第一句所说的,这只是一种新的开放能力

小程序不能做游戏和直播

在苹果App Store畅销榜上最吸睛的就是游戏和直播类应用(前40名35个游戏,5个直播),结合微信的天然传播能力完全有出现新爆品的可能性。然而「微信小程序平台运营规范」却赫然写着:

3.4 微信小程序的服务范围需与实际填写的类目和标签一致,也需和自身所提供的服务一致,且不应超出小程序平台的类目库范围。如游戏、直播、虚拟物品购买功能等均尚未开放。

个人猜测这个规定的背后有两方面的考虑:

一是与苹果的交锋与妥协,小程序的诞生必然会分流App Store的关注,而抢走App Store收入最大头的游戏和直播,无异于虎口夺食,苹果是万万不敢答应的,从小道消息传出的由「应用号」改名叫「小程序」也是类似的道理。

二是出于用户体验的考虑,我相信微信OS(像某个段子说的,微信将来会占用50G空间)并不是张小龙的目标,事实上微信也不需要成为一个OS,微信的核心始终是一个社交工具。而游戏和直播,与社交都有一个共同的特点,就是花时间,用户的时间被游戏和直播带走了,必然社交的关注度就会有所降低,最终受伤的是微信本身。当然,从技术角度出发,设备性能、网络条件和缓存空间的限制也不可能放任游戏和直播在微信体系的生长,这会影响到微信使用的流畅程度。

小程序的大小被严格限制

小程序源码打包后的大小限制为1M,单次通过网络传输的数据最大也是1M。

1M也就是十张高品质压缩图片的大小,与App Store动辄上百M的应用相比,小程序还真是「小得可怜」。而单次网络请求的数据量限制也决定了热更新只能采取小碎步快跑的方式。微信小程序对于大小的限制说明微信并不希望大家去开发很重的小程序,也不希望小程序加载庞大的资源文件。以目前的4G网络,1M的小程序大约只需要3-5秒即可加载完毕,真正做到来了就用,用完就走。如果加上坊间流传的20个小程序的限制,那么小程序不算网络加载的话只会给微信带来额外的20M左右的负担。小程序是真正的「小」程序,是为开发者提供一种新的连接用户的能力,而不是喧宾夺主、自成体系

小程序无法实现单页的分享

小程序由于没有包含WebView控件,开发者无法在小程序内部打开一个网页(所有的网络通信只能在客户端与预设域名之间进行),既然如此,任何一个微信小程序的页面都无法以一个标准的资源标识符(比如URL)代表,自然也就无法分享。之前某科技媒体评论到,像今日头条这类的资讯浏览类需求适合用小程序实现,当时我就呵呵了,要知道以内容传播为核心的产品分享向来是不可或缺的一环。之所以这么设计,我想是因为微信已经拥有了一个超乎强大的以内容传播为核心的体系 — 公众号。由公众号提供资讯,由小程序提供服务,不存在谁取代谁,两者相辅相成

小程序的推送需要用户激活

当用户在小程序内部提交过表单或者完成过支付后,可允许开发者向用户在7天内推送1条预设模板的信息。

一如既往,微信对于打扰用户的行为是深恶痛绝的;体现在小程序上,就是只有用户想起你才去用你,用户没想你不能主动去唤醒他。相比于苹果APNS没有明确频率限制的推送,简直天差地别。如果你的产品是需要用户高频率、高互动、高粘性的,就不太适合以小程序为载体。毕竟,你不可能被允许在微信内部再造一个微信。

关于小程序的小知识

  1. 小程序并不是H5,而是一种类似React Native的技术,微信将小程序的标记语言翻译为iOS或安卓指令,执行效率类比原生APP。
  2. 官方明确不允许小程序内部推荐其他小程序,ByeBye to 小程序导航/小程序推荐/小程序搜索。
  3. 小程序可以通过二维码和搜索进入,当然,诱导分享仍然会被强力管控。
  4. 同时打开页面最多5个,不适合做太深层级页面的交互。
  5. 小程序不支持cookie,同时账号体系只能使用微信的。

小程序是另一次洗牌的机会吗?

我觉得不是。

从08年Jobs发布iPhone起,智能手机的销量以指数级增长;到14年10月,移动端的流量全面超过PC端,移动互联网的春风带来了上一次洗牌的机会,有的人被赶下牌桌了(像百度),也有的人牢牢抓住机会狠狠赢了几把。但仔细一想,移动互联网的窗口期可分为三个阶段:

  1. 新的服务。手机和PC相比具有便携性、多传感器和随时在线的特性,对这部分特性的深挖造就了第一波的窗口期,像陌陌(利用了地理位置)、Instagram(利用了相机)、荔枝FM(利用了麦克风)、微信支付(利用了指纹传感器),这些APP所提供的服务,在PC端都很难实现,或者会大打折扣。
  2. 新的场景。随着智能手机的进一步普及,人们越来越懒得开电脑,干脆用手机去使用和PC上相同的服务。于是移动端的搜索流量超过了PC端、移动端的购物量超过了PC端、移动端的阅读量超过了PC端、端游也一步步向手游转移。
  3. 新的用户。当千元机成为市场的主流,当通信资费相对生活成本的比重快速下降,原本离互联网很远的人群(三线城市的居民、中低收入者、老人,比如我爸妈十多年都没学会电脑怎么开机,现在微信已经能用得比我还6了)也逐步被纳入到移动互联网的体系之中,这创造了一个新的增量市场。像快手这种向增量人群提供细分服务的APP开始崭露头角。

而微信的小程序,这三点哪里都不占:植根于移动端之上,并不能提供超越原生APP的能力,相反有所阉割;也并没有创造新的场景或机会。这一局里最有利的,仍然是那些已经在牌桌上的人,他们拿着现有的牌,大胆走向新的赌局。

但是,如果开发者立足于微信自身,利用好这一种新的开放能力,想方设法服务好微信的用户,强化实体与用户之间的连接,而不是去颠覆什么,虽然洗牌遥不可及,还是能有多几张牌可打的

不管怎么说,这至少会是前端工程师的春天,继React Native之后的又一重磅消息,连我都想去学JavaScript呢。

更多精彩内容,欢迎关注微信公众号「极客思享」

广告:2shou试用过国内外超过10个的主机服务商,Linode是综合评价最高的一个。如果你恰好需要云主机,这是一个邀请链接,让你获得额外的10美元优惠。