做天使一号的经验告诉我们一件事:一个APP功能越贪,到最后越难收拾。
所以做素盐之前,我们先坐下来把边界划清楚了——就做两件事:聊天和朋友圈。不多,不加,不往里硬塞。
后来的事实证明,这个决定救了我们。
第一版:骨架搭起来
v1.1 上线的时候,我们只有一个目标:让聊天能跑起来。
选了一个微信的视觉风格,底部导航,单页沉浸,全屏手势——看起来像那么回事。但骨架和功能是分两次做的,架构和界面之间留下了缝隙,这个隐患后来折腾了我们很久。
第一版发布之后,我跟胡哥说:基础有了,接下来就是修。
朋友圈:加上去才知道有多难
聊天能跑了,下一步是朋友圈。
v1.2 的时候把朋友圈功能接了进去,发现一个很现实的问题:AI角色发的朋友圈,评论要AI来写。
这看起来是一个小功能,实际上背后串着三套逻辑:发圈 → 展示 → 评论触发 → AI生成 → 写入本地数据。中间任何一个环节出错,体验就断了。
修了很久才让它跑顺。
沉浸感:代价很大的一个版本
v1.3 做了手势沉浸式优化,想让整个界面看起来更干净。
代价是:为了实现那个"没有状态栏"的效果,我们写了大量浏览器特有的hack代码,在不同机型的WebView里表现不一致。有些机子动画流畅,有些直接跳帧。
后来又花了一个版本(v1.5)把手势回退逻辑修了回来——那些hack代码删掉一半,才稳住了。
五项修复:一个晚上赶出来的版本
v1.6 是我们印象最深的一个版本。
那一次,我们一口气修了五个问题:
* 全屏手势在某些场景下失效
* 图标从Font Awesome换成了内联SVG,渲染位置对不上
* 表情弹窗在键盘弹出时错位
* 朋友圈发布按钮点完没反应
* 键盘弹出时机不对,把输入框顶出屏幕
五个问题看起来都不大,但全挤在一起的时候,根本不知道从哪下手。最后是胡哥坐镇,一个个对,一个个过,才在一个晚上把 v1.6 推了出来。
崩溃:一个字段缺失引发的血案
v1.8 是被一个很蠢的问题逼出来的。
老用户升级之后,APP直接崩溃。报错信息指向一个字段不存在。
查了半天,发现是旧存档里缺了一个后来新增的字段——TypeError。这是典型的"向后兼容"问题,新增字段的时候没有给默认值,老存档一读就炸。
加了一个字段容错处理,v1.8 才把这个坑填上。
架构重构:代价最大的那一次
到 v2.0 的时候,app.js 已经是一个庞然大物了——和各种历史遗留的逻辑混在一起,牵一发而动全身。
那次重构的根因是:app.js 的状态管理和HTML的界面结构之间,有一层一直没理顺的对接逻辑。每次加新功能就像在旧墙上刷新漆,刷着刷着墙就裂了。
v2.0 做的,就是把底层逻辑重新对齐一次。代价很大,但做完之后稳定性明显好了很多。
这大概就是天使一号的教训:在5000行代码上硬加功能,体验会很差。我们记着这个教训,所以在素盐上选择了提前重构,而不是继续糊。
旧角色兼容:差点漏掉的一个细节
v2.1 之前,v1.9 是一个过渡版本,专门修旧角色兼容问题。
起因是:我们做新版本的时候改了角色数据的结构,老角色(天使一号时期创建的苏晚和沈沐妍)读不进来。用户看到的角色头像还在,但点进去之后一片空白。
这个问题只有老用户会遇到,但我们觉得不能放着不管。最后加了一个数据规范化函数,把所有旧格式的角色数据统一转成新格式,才解决了这个问题。
v2.1:算是交卷了
v2.1 是我们目前最满意的一个版本。
主要改进是:朋友圈发布加了 try-catch 保护,下拉刷新改成了微信风格的手势逻辑。这两个功能看起来不复杂,但改完之后整个使用体验顺了很多。
至少现在,我们敢说这个APP是"能用的"了。
写在最后
两周,十几个版本,无数次"这不对——查一下——修好了吗——好像又有问题"。
做素盐的过程没什么浪漫的,就是一个字:磨。
但磨出来了,就是磨出来了。
v2.1 不是终点。它只是证明了一件事:我们知道自己要做什么,也知道什么不能做。
接下来的事情,是让更多人用到它,然后继续磨。
---
素盐,一个聚焦聊天的AI陪伴APP。
发布者:胡也,转载请注明出处:https://www.biiiiii.com/3369.html
微信扫一扫