![](https://i-blog.csdnimg.cn/blog_migrate/c947ce258022733fde5bdd2ff2564961.png)
为什么微信深夜发布的“小程序”引动了开发者的大地震?
传说中的微信“应用号”终于要来了,但它的正式名称很有可能是“微信小程序”。这一次微信还是按照惯例,通过机器跑出的数据,首先将“小程序”开放给了 200 名拥有微信服务号的开发者进行内测,而且目前开发者发布的小程序无法在用户的客户端显示。
简单说,微信“小程序”可以为开发者提供基于微信的表单、导航、地图、媒体和位置等开发组件,让他们在微信的网页里构建一个 HTML 5 应用。同时微信还开放了登录和微信支付等接口,让这个“小程序”可以和用户的微信账号打通。
根据参与本次内测的“小道消息”创始人 Fenng 提供的信息,微信小程序向开发者开放了下列 API 接口:
- 视图容器:视图(View)、滚动视图、Swiper
- 基础内容:图标、文本、进度条
- 表单组件:按钮、表单等等
- 操作反馈
- 导航
- 媒体组建:音频、图片、视频。
- 地图
- 画布
- 文件操作能力
- 网络:上传下载能力、WebSocket
- 数据:数据缓存能力
- 位置:获取位置、查看位置
- 设备:网络状态、系统信息、重力感应、罗盘
- 界面:设置导航条、导航、动画、绘图等等
- 开放接口:登录,包括签名加密,用户信息、微信支付、模板消息
虽然微信小程序本质上来说就是一个 HTML 5(移动网页) 应用,但与那些经常在朋友圈刷屏的 H5 小游戏或者应用不同的是,微信小程序获得更多的系统权限。首先是数据缓存能力,这可以让用户在打开一个小程序的时候将程序的主要框架缓存到微信上,下一次就可以快速打开了。微信创始人张小龙曾说过,微信应用号希望实现的目标是“用完即走,无需安装和卸载”,也就是说以后当你要使用一个应用时,只需要在微信里搜索就可以直接使用了。
![WechatIMG49](https://i-blog.csdnimg.cn/blog_migrate/5c9dd8f79a4e6fe7df2d50f54cb447ad.jpeg)
某开发者公布的小程序demo截图
在这些框架和组建的帮助下,微信小程序的启动和运行速度将远超过依赖浏览器的普通移动网页应用——甚至可以媲美手机本地安装的应用,但这还是得取决于你的网速。另外,16 GB 的 iPhone 用户可能真的得升级手机了:一旦“小程序”启用,微信可能吞噬你大部分的储存空间。
另外一个非常重要的开放权限是微信登录接口,有了这个接口,开发者就可以将用户的微信账号和应用账号打通——这一点是很多开发者梦寐以求的,毕竟在这种情况下获取一个活跃用户的成本要小得多。
此外微信还为开发者提供了非常详尽的开发文档,以及基于 Mac、Windows 和 Linux 系统的开发工具。不过小程序开发完后不能直接发布,需要提交给微信团队进行审核,审核方式类似于苹果审核严格的 App Store。目前还不确定微信是否会像苹果一样只允许付费的开发者发布程序,以及如何进行小程序的收入分成。
从目前已知的信息来看,微信“小程序”对于开发者来说还是非常友好的。首先是推广成本将大幅降低,开发者获取一个用户不再需要下载安装和注册的过程,而仅仅是让用户关注自己的小程序,一键即可完成,同时也不会占用太多用户的手机内存(当然微信应用自身会进一步吞噬更多的手机内存);其次是微信为开发者提供了完整的前端框架和后端管理平台,这可以为开发者节省不少在这方面的人力和资金成本——这就相当于一个内容创业者已经不需要开发一个网站,而是直接使用微信订阅号平台。
这也就是说,在很多数情况下,开发者不用再开发一款原生的移动app,再放到苹果的App Store应用商店和各种Android应用商店里去审核了,开发一款微信的“小程序”就能满足用户的浏览、定位、预订、分享和支付等绝大部分需求。而对普通用户来说,到应用商店里搜索下载应用,占用手机内存,然后再不断删除冗余的app以节约手机存储空间的做法也不必了;很多时候你只需要安装一个越来越臃肿的微信而已——大部分应用将以“小程序”的方式内置其中。
这对自2009年以来以“应用商店”为中心的移动应用和用户体验,是一个非常重要的改变。一款“超级应用”包含了人们需要的大部分应用。而人们仅仅需要从应用商店下载它——而且,在这个问题上,微信得到了苹果的默许。
其实在微信小程序正式登场之前,你就可以在 iPhone 的 iMessage 应用上体验类似的“小程序”了。在升级到最新版的 iOS 10 后,苹果简直就是在 iMessage 上复制了一个 App Store,你不仅可以在 iMessage 里发送表情包,还可以跟朋友玩小游戏和分享其他应用信息。但跟微信小程序不同的是,iMessage 使用的是 iPhone 手机自带的框架,而不是网页框架。
将应用“网页化”一直都是技术公司努力推动的一个趋势,而将强大的通讯工具“应用平台化”也是技术公司们正在探索的。除了微信的“小程序”和苹果的iMessage应用,此前 Facebook 也在自己的通讯工具 Messager 上推出了简单的应用开发接口,让用户直接通过聊天窗口完成打车和订餐等操作。
而 Google 则一直希望将 Chrome 浏览器变成一个超级网页 App 平台,Google 在最近提出了一个名为 Progressive Web App 的概念,指的是运行在浏览器里的 App。这类 App 跟微信小程序的原理很类似,也就是将应用需要的框架和进程缓存到本地的浏览器里,让 H5 程序在离线的状态下仍然能够使用。
目前 Google 旗下的 Chrome 浏览器和 Firefox、Opera 等主流浏览器都已经支持了 Progressive Web App,并在 Google 的主导下为开发者提供了统一的 API 接口。相比之下,微信在这个时候发布小程序也只是在自己的平台上进行了跟进。
这么看,移动应用程序开发和分发的大变局真的快来了。“别再开发app了”,有很多人这么说。那么,现在加上后半句吧。“请开发移动网页应用吧”,而且JavaScrpit程序员要更吃香了。对开发者们来说,这是一次地震。
不过,不难想象小程序的开发者同样会像微信公众号的运营中一样受到诸多限制,例如将应用内容分享到朋友圈、内容审核的规则都得按微信的来——微信在这方面从来就不比苹果更好对付。
如果说 3 年前微信推出订阅号让内容生产者能够将精力集中在创作和运营上的话,那么现在微信推出的小程序无疑能让开发者更专注地进行开发。因为微信已经准备好了用户和平台,开发者们只需要开发出更有趣和实用的应用。
Ready? Go!
![](https://i-blog.csdnimg.cn/blog_migrate/56d2d246e0426e621a0aa3f0e569e2f1.png)