谈谈微信和支付宝

一月初的时候,微信推出了JS SDK,增加了如下接口:

  1. 分享类接口
  2. 图像类接口
  3. 音频类接口
  4. 智能类接口
  5. 设备信息类接口
  6. 地理位置类接口
  7. 界面操作类接口
  8. 微信扫一扫接口
  9. 微信小店接口
  10. 微信卡券接口
  11. 微信支付接口

看起来能做的事情不少啊,这让不少移动前端的同学感慨是否要转型html5+js了。。。

我想说这其实完全不是一个新问题。

因为微信很早以前就开始布局了,从他开放sdk那天开始。

微信开放JS SDK,不能算是多大的跨越,只能说是再进一步;即对于公众号/服务号就可以满足需要的应用(主要是生活服务类,例如银行啊,快递啊,吃穿住用啊)来说,不需要火急火燎的开发android/iOS/WP对应的客户端了,只要网页端接口调用和优化到位,依托微信的支持,开发更快(生活服务类的应用普遍有配套网站,现成的JS码农),效果更好(废话啊),而且使用量(专业点是不是该叫“日活”?哈哈哈)很可能会比自己独立开发的app还要高的多。

话说现在才有这个担心的同学们,你们是不是太后知后觉了点?

已经在做html5+js的同学们,你们注意啦,以后竞争压力只会越来越大。


会有人疑问,是不是大一统时代到来了啊?(其实html5刚出来的时候,这种呼声就层出不穷)怎么说那,就是让浏览器搞定所有事,例如浏览器可以看电影,可以听音乐,可以看新闻,可以聊八卦,可以购物,可以分享,可以下载,甚至还可以玩3D游戏…试问对于一个普通人,一台电脑装一个浏览器不就够了么?

这个疑问,多少会让人想起90年代微软和网景(神马?你不知道这个公司?很正常,哈哈哈)的撕逼大战。结果嘛,很明显,你看现在还多少人知道网景这个公司?

那时候受制于各种因素(硬件对渲染能力的限制,操作系统对权限的限制,网络基础带宽的限制等等),浏览器的capability完全无法满足用户的需要。所以那场撕逼大战的胜利要素就是浏览器单价;对,那时候的浏览器,作为一个app,是需要花钱买的。。。所以微软心一横,直接捆绑在windows里面,送给用户。尽管后来因此被告涉嫌垄断,被巨额罚款并且还要拆分公司,但微软的IE一度达到市占率90%!好吧扯淡到此为止。

继续说,而现在,随着Chrome等一众浏览器的兴起,加上html5(你丫不就加了几个tag么)的推波助澜,大一统说法不仅仅只是停留在讨论的层面,Google甚至还顺势推出了Chrome笔记本(尽管雷声大雨点小)。。。

在我看来,这一切,又仿佛回到了若干年前,那个从Rich Client向Thin Client过渡的时代。其实归根结底,还是要看基础带宽和基础硬件的性能瓶颈。

当基础带宽不够,基础硬件跟不上的时候;那就把脏活累活都扔到带宽够硬件强大的服务器去做吧;当基础带宽和硬件渐渐跟上,自然也可以把一部分工作放回本地(电脑/手机/平板)来处理;随着基础带宽和硬件的不断进化,服务器和本地的差别也就越来越小;是服务器来处理,还是本地来处理,甚至可以采用动态均衡的方式(网游普遍用类似的策略来避免突发延迟带来的卡顿);Rich client和Thin client这种泾渭分明的标签,已经不适合我们的时代了。

现在,3G/4G已经可以轻松支持高清视频在线播放;Face Time及类似App提供的更直观的通话方式,让传统电信运营商压力倍增;

现在手机/平板的运算速度/内存大小,甚至已经超过了很多人的家用电脑;

曾经,对于一个普通人来说,手机需要同时安装浏览器,QQ,淘宝,京东,支付宝,打车软件,大众点评,各类手机银行等等等等;

现在,手机只要有微信就够了;

随着接口的不断开放,协议/标准的不断完善,云服务对过往常规本地服务的不断优化改进;操作系统/浏览器/App彼此的功能交叉覆盖越来越多,彼此的界限也越来越模糊(现在已经不能简单的说微信只是一个社交软件了吧)。

大一统的赶脚有木有?


有了这些铺垫,再回过头来,说说微信和支付宝在做的事情。

微信和支付宝,两者出发点不同,但都在尽全力扩大自己的入口优势并提高用户粘性。

不说枯燥的功能点,这里举个生活中具体的例子:

下班了,要和朋友去吃饭;

  1. 打开手机某App,点开某美食公众号,它根据我的坐标帮我推荐了旁边一家餐厅,我确认后它还帮我在线排队;
  2. 不错,估计走到地方就差不多可以吃了,到地方的途中刷刷朋友圈;
  3. 落座,点餐前餐厅服务员说关注他们家的公众号可以打折并享受免费WIFI;关注后发现了一些新菜品,点之;
  4. 等上菜的时候朋友分享我一个数码新品,看起来蛮有意思的,下单买之,妥妥的次日达;
  5. 吃饭前比个剪刀手拍个照(真是恶俗啊。。)上传朋友圈;
  6. 吃完饭结账,服务员说手机付款还有额外折扣,便宜了很多;
  7. 出了餐厅,用手机打车各回各家,打车还有红包可以用;

如何,一台手机一个应用,手指抖抖就搞定所有生活细节,是不是很方便?这其实就是目前一线城市(非地域党,但一线城市对移动互联网的推广和完善力度毋庸置疑)很多年轻人的生活方式;很多二三线城市也在被快速接受的生活方式。

现在很多人用微信来做1/2/3/4/5/7;用支付宝来做6/7;而实际上,目前最新版本的微信和支付宝,都可以基本实现上述所有功能。(微信和支付宝的差异这里就不展开了,都在用的东西谁都能说出个一二来)

微信对JS SDK的放开,就是在进一步加强对支付环节的控制。

而支付宝新版本的功能强化,就是对公众号/朋友圈功能的补全。

撕逼大战再次展开(我看好微信哦)~

所谓的大一统,也许浏览器尚未完成的事情,要交给带有支付属性的社交软件来完成了。

想象一下,一个普通的饭店,不需要自己购买POS机(也许一个二维码就够了),不需要自己去铺设高速WIFI,不需要请码农不需要请美工,不需要租借服务器,只要付出也许一周甚至几天的流水(作为年费),就可以跻身移动互联网的浪潮中,可以在线订外卖,在线排队,在线点餐,全店覆盖免费WIFI,在线支付,在线获取吃客反馈;可以鼠标点点就将新菜新优惠等通知到本店拥趸吃货手中;而互联网的及时效应,会以良性循环的方式不断推动这家饭店,保证新鲜食材,保证质量,提高服务态度等等(小心差评哦)。

而这种生活,这种方式,这种正向推动,才是未来;才是互联网,应该做的。


有木有发现一件事情;

入口的变化:桌面端操作系统 -> 桌面端浏览器 -> 移动端操作系统 -> 微信/支付宝;

而码农们需要做的事情:跨平台(Windows/Linux) -> 跨浏览器(IE6,哈哈哈) -> 跨平台(Android/IOS/WP) -> 跨App(微信接口和支付宝接口);

有木有一种腾讯要出个微信手机的赶脚?抽象层级在不断提高,这本身就意味着技术进化(就像当年写汇编那帮人,看着语言一步一步进化到C -> C++ -> Java/PHP/OC -> Python/Ruby -> Go/Swift一样);也同时意味着之前也许很流行的技术,过两天就过时了。

如果抓不住这个时代,那就跟上吧。


回到最开始,那是不是要转型了那?

回答是,要看这些接口(以及未来可能提供的接口)是否可以满足你的需要(废话嘛)。从下面几个角度来看吧:

  1. 技术层面上是否有可能实现?准确的说,是否有必要实现? 例如美拍的功能,依赖native surface,通过JNI挂载ffmpeg的库来decoding,再通过OpenGLES来渲染不同轨道的帧;这样一套东西需要的接口,微信提供出来干嘛?
  2. 微信/支付宝是否需要你在做的应用所提供的功能?这很重要!
  3. 是否自己的应用也有社交属性,而且不愿意为微信/支付宝作嫁衣?

看看自己有没有中枪吧。不过:

我想说,全栈(Full-stack development)是必备技能啊。


不说了,工头喊我继续搬砖了。