聊不下去的时候,让电话响起来
一个人拉着你聊天,你从「嗯嗯嗯」聊到「哈哈哈」,心里只剩一句话:我到底什么时候才能走。借口不如一个真电话。既然找不到合适的理由,那就自己造一个——这是「体面离场」的由来,也是这篇真正想说的:决定它像不像的,从来不是核心功能。
你有没有遇到过这种时候:
一个人拉着你聊天。他没有恶意,甚至聊得还挺热情。
但你已经从「嗯嗯嗯」聊到了「哈哈哈」,又从「哈哈哈」聊到了点头微笑,心里想的却只有一件事:
我到底什么时候才能走?
你不好意思直接说「我先走了」,于是开始找借口:
「我还有点事。」
「我等下还有个电话。」
「时间也不早了……」
这些借口都不如一个真的电话有说服力。如果这时候手机真的响了,而且看起来是个你不得不接的电话,你就能体面地走开。
于是我想了想:既然找不到一个合适的理由,那就自己造一个。
我用 WorkBuddy 做了一个网页,名字就叫——「体面离场」。
一、这个需求小到没人会立项
应用商店里有模拟来电的 App。我下过几个,都不太能用:开屏广告、看视频才给用、进去先要通讯录权限,最要命的是界面一眼假——那种 2016 年安卓的味道,红色绿色的圆按钮又亮又硬。
它们要满足所有人,所以谁都满足不好。而我要的其实只有四件事:选一个人、定一个时间、它响、我走。
小到不值得做的需求,正好适合自己做
因为产品团队算的是市场规模,你算的是这周三晚上八点。
二、几个别人不会做的细节
做的时候我在意的不是功能,是像不像。现实里的电话有几个特征,缺一个就会露馅。
| 细节 | 现实里的样子 | 大多数 App 的做法 |
|---|---|---|
| 连续来电 | 着急的人不会只打一次 | 响一次就结束 |
| 挂断之后 | 手机锁屏,黑的,什么都不显示 | 立刻跳回设置页 |
| 响铃声音 | 两个频率叠出来的拍频 | 播一段 mp3,循环得生硬 |
| 屏幕边界 | 全屏,没有地址栏 | 就是个网页 |
第一条我做了「连续催促」:挂断之后,过六到九秒对方自己再打来,最多三次。间隔是随机的,因为每次间隔都一样,反而像程序在数拍子。
这一条解决的是最难那部分。第一次来电你还需要解释一句「不好意思我接一下」;等它挂断又响第二次,你就不需要解释了。
第一次是借口,第二次是事实
第二条是待机屏。挂断之后不回到设置页,屏幕变成一块纯黑的锁屏,上面只有今天的日期和当前时间,取的还是本机真实时间,跟旁边人手机顶部显示的一致。这一屏要停留几秒,让对面觉得你只是挂了个电话。
第三条没用任何音频文件,声音是现场算出来的:两个差不了多少的频率叠在一起,会生出那种「嗡——」的拍频,一秒收尾,再跟一个短促的高音。老式座机铃就是这么响的,所以它比任何下载来的音效都像。紧急模式换一套更急的,间隔也更短。
第四条是浏览器的固有问题。地址栏没法被网页盖住,只能靠三件事降低露馅概率:从主屏幕图标启动、调全屏接口、实在不行把状态栏染成深色。这点代码占了不少篇幅——决定像不像的从来不是核心功能,是这些没人会写进需求的边角。
三、会写的人,这次没写
我是做前端的。这种页面以前我自己写,大概两天:一堆动画、一个状态机、真机适配来回试。
这次我没有开编辑器。以前那套流程是写需求、想方案、写代码、调试;现在只剩四步:描述感觉、看结果、指出哪里不对、再改。
有意思的不是它能写代码,是我说的话变成了具体的东西:
- 「姓名下面要有一行小字写『手机』」——系统来电界面就是这样分组的,加了它才像。
- 「挂断以后不要回设置页,要停在一块像锁屏的屏幕」——这一句换掉了一整个页面。
- 「等待的时候要有个环,不要只显示数字」——一圈缺口在收拢,等待就有了实体。
- 「震动只在来电时,挂断不要震」——这种要求你不会写进需求文档,但它决定了手感。
你真正要讲清楚的从来不是技术,是那个东西应该长什么样
技术方案我一句没说,它来想。我做的工作全在判断这一侧:像不像、顺不顺手、该停几秒。
会写代码的人有个坏处:容易一开始就想怎么实现,而不是它应该长什么样。这次顺序被反过来了,反而快。
四、这类东西的意义
它不算作品。一个页面、几百行 CSS、一个状态机,没有任何技术难度。
但它把一句老话反过来了。以前看到这种需求,第一反应是「太小了,不值得做」;现在的第一反应是「太小了,正好自己做」。中间没有别的障碍——没有一个环节需要等别人点头。
能被别人做好的东西,用现成的;只有你自己需要的,才值得自己做
它现在就存在我的手机主屏幕上,一年大概用五六次。
每一次它响起来,我都可以少说一句很难说的话。
本文所述为个人自制的娱乐演示页面,不会真的拨打电话,也不读取通讯录。
在微信里点不动?点右上角「···」→「在浏览器打开」,再点下载。
文件是单个 HTML,双击就能用,断网也照常跑;声音是现场合成的,不带任何音频文件。不读通讯录,也不会真的打出去。加到主屏幕再打开,能少一条地址栏。