一. 前言
微信小程序的概念已经炒了很长一段时间,时不时的还弄出个大新闻,小程序的每一个动作都能触动媒体圈的G点,屡试不爽。媒体圈从最开始鼓吹小程序将能对抗苹果,到后来小程序将取代原生App,最近又出来微信小程序与支付宝小程序谁得天下。为什么『取代』了这么久也不见苹果出来封禁小程序?App Store里面排名前20的哪个举家搬到了小程序(做个阉割版占坑的不算)?
抱着一大堆疑问,我决定深入了解小程序。目标:沉浸式使用小程序一周并且动手编写一个小程序。
二. 小程序的『小』
小程序里面的『小』最初是想把千万个复杂并且庞大的App缩小到微信中,不过发展到现在发现越来越难实现。于是变成了真正的小,现在的这个『小』表示很多功能小程序做不到。直接告诉外界难当大任呗?可微信没这么实诚,因为他憧憬着未来,总有一天会长大的。不过路漫漫其修远兮……
微信团队并不寄予小程序厚望,总是弄个大新闻无非是想给投资人更多YY的空间,KPI也需要起来。但是坑了开发者,很多人至今都觉得有微信小程序之后不需要开发App了,真是天真无邪。
我使用最频繁的两个小程序分别是摩拜单车和微信支付智慧新生活,其中微信支付智慧新生活还是莫名其妙出现的。摩拜单车小程序很便捷,就是会莫名其妙的出bug,还好有ofo、blue哥哥救场。总体来说微信小程序我不敢太信任,不是不信任微信,而是不信任开发者。
三. 小程序的封闭
微信很优秀,对用户非常友好,从用户的角度来说微信和小程序都很完美,但对开发者来说就不那么友好了。现在玩小程序的一帮人还是开发者偏多,大家都想提前站在风口,做一只风口的猿。小程序的不友好体现在封闭,封闭会导致开发者思维受限(其实就是功能无法实现),进而导致开发者开发的小程序的质量受影响,最终导致用户用的不爽。为什么摩拜单车小程序会莫名其妙的出Bug?这个锅摩拜的程序员说是微信的问题,微信说是摩拜技术不行,最后就用户背吧。
小程序的封闭体现有如下几点:
- 腾讯系的产品优先,必须用腾讯地图,微信支付,QQ浏览器,不用就滚。将来可能必须要求用腾讯云……越来越封闭。
- 你想要的交互,就是实现不了,比如我想画个图表。老板会说别人都能实现,我一看那是HTML5。
- 你想要的功能,就是做不到,比如我想加个滑动验证码。
当然2,3点随着时间的积累会慢慢得到解决。封闭当然也有好处,比如小程序上手非常快,Ctrl c + Ctrl v 拿起键盘就是干。使用小程序是可以快速的开发Demo,但是想快速的迭代产品简直是噩梦,需要不停的趟坑,有些坑还只能等小程序官方优化。
有一个很形象的比喻,从你开发小程序那天起,你就成了一个被微信捏着蛋的男人。
四. 小程序没法工程化开发
小程序工程化简单的理解就是几十人协同开发一款大型的微信小程序,怎样才算大型呢?App Store排名前20的应用都属于大型应用,必须要完整的工程化标准才能开发出来。而小程序做不到,现阶段的小程序根本无法做到多人协同开发。
有人会说可以协同开发,用XX工具和XX工具就行了。是没错,但是野路子和工程化不一样。曾经我给朋友说PHP原生的支持热更新,朋友给我说Python下载XX工具也能热跟新,这根本就没可比性,一个是公认的工程化的标准一个不是公认的工程化标准,没人敢保证你的热更新工具不带来副作用。
再一点就是微信升级版本可能会带来副作用。你的小程序本来运行好好的,突然支付功能就不能用了,你慌不慌?你刚用上百万推广来的用户一转眼就流失了。微信版本迭代很快,你得不停的关注才能保证你的小程序一直可用,否则你能忍受核心功能2天无法使用吗?我就是一个小白鼠,之前开发了一个自带P图功能的小程序,结果微信的某个版本把上传图片接口内部逻辑改了,导致小程序2天无法使用(最后另辟蹊径才从新上线),这个Bug我给小程序团队反馈快两个月了还未得到解决。
最后,随着时间的流逝工程化的问题也会慢慢得到解决,至少现阶段放弃App的开发是不明智的,转战HTML5都比小程序有优势。