微信和苹果
july 13, 2022 3 mins read
很早就发现海外的华人程序员,以及会翻墙用境外SNS的海内程序员,基本上都不怎么待见微信。我可以想象很多人反感国产app对言论的监控和屏蔽,但除此之外有些不明就里,就觉得不就是个社交软件吗。我觉得社交软件的体验感,很大程度上取决于你经常聊天的朋友用不用,而不是你自己用的开不开心了。
但同时我有个朋友,经常看到什么算命啊之类的小程序就会和我说“啊你也写一个,赚钱”我就挺反感的,就不知道为什么总觉得当一个“小程序程序员”很自降身价,赚这个钱多少有点“为五斗米折腰”的耻感。可能是因为我对于在一个原生app里面用html/js写代码,还必须要通过微信平台才能编译,就感觉非常没有技术含量——之前吭哧吭哧的给某个Wordpress网站写前端我也有一样的感觉。
当然,那会儿还有一点让我很困扰的就是——凭啥微信小程序这么没有技术含量的东西能赚钱,我好好写Java/ObjC搞移动开发写手机app不也能赚钱吗,为啥还让我去写小程序?那么我朋友说的是“小程序方便传播”,我也不服啊——安卓我不了解,苹果的分享功能不是很好用吗?长按app点share,想给谁就给谁,好多平台还能自动生成预览图,哪儿不香了?
直到有一天,我为了研究如何从Yelp/4sq通过actions extension跳转到我写的Dionysus(比较难,已然放弃这个想法了……)开始研究苹果的custom URL scheme,突然想起来国产app的分享方式:无一例外,全都靠剪贴板(复制粘贴本条信息,打开某某app,会自动显示相关内容)。而这个URL scheme在技术实现上无比简单,真的就是改一个参数的事情,为什么这些国产app就都不做呢?
于是上推特问了一圈,所有人的回答都是:微信不让。我一开始还没反应过来,觉得淘宝/小红书加个custom URL scheme,微信就算禁止了跳转到本尊app,也不妨碍我用其他app的时候,打开链接就可以跳转到app吧。
于是,我尝试在微信中打开了一个Yelp链接,发现打开后竟然是这样(而不是起一个webview打开Yelp内容)——
我恍然大悟,合着在微信统治的中国互联网中,手机操作系统自带的分享功能是没有姓名的,会被扔到中国互联网的废物堆……
为什么会得出这个结论呢?因为完全没有使用custom URL scheme的app(淘宝,小红书云云),微信会直接用一个web view打开,然后用户可以在停留在微信上的同时,使用这些app的部分功能。但是一旦加上了custom url scheme,微信就直接不干了,显示个上面这个白屏——你自己用Safari打开这个页面吧。用户嫌费事可能就懒的打开了。(我相信这不是技术上做不到,推特就能直接在自己的webview上打开这些app的短链接)
那么,也就是说,如果我在中国开发一个iOS app,我该不该写这个custom URL scheme呢?写了,那么在微信上分享会很麻烦;不写,那么在所有微信以外的地方分享都很麻烦,iOS提供的很多很方便的“一键分享”功能算是废了。但在全民把微信当操作系统用的国内,为了微信用户而放弃苹果用户,明显是更划算的。
正准备开骂微信,突然觉得不太对劲。且不说产品想做一个“只许进不许出”的环境完全可以理解,关键是——苹果也没好到哪去啊?
作为一个苹果开发者,我要注册苹果开发者账号(每年还有100刀保护费,微信好歹免费的),用苹果开发的编程语言和编辑器,写出来的app也是要上传到苹果后台上(和微信的看着也挺像的),恭恭敬敬等他们审核。和微信有什么不同了?
好像最大的区别依然是还是技术层面。不管怎么说,ObjC和Swift都比HTML/JS这套技术栈要更缜密,更经得起复杂功能和逻辑的考验;而且苹果它自己是个操作系统,直接给操作系统写程序还是更符合我平时对“编程”的认知;而微信明明是个原生app,硬生生被当成了操作系统在用。
PS:这不能光说不练。写了这么大堆以后,我真的有点想去发个鸡肋的微信小程序了。。。之前用html写过几个小游戏就可以上头放放。。。