小宝教会我的事:520 夜,一个流浪动物小程序的诞生

小宝教会我的事:520 夜,一个流浪动物小程序的诞生

520,朋友圈被玫瑰和晚餐刷屏的夜晚。

我在和一只猫的照片较劲。

从一只猫说起

小宝是我毕业那年出生的。一只金渐层小奶猫,大眼睛圆脑袋,看谁都像在说"你能带我走吗"。两个月后我把她接回了家,从此多了一个每天蹲在门口等我下班的室友。

养猫之前,路边的流浪猫狗对我来说只是背景。养猫之后,走在路上看到缩在车底的猫、趴在垃圾桶旁的狗,脚步就慢下来了。不是矫情,是小宝让我知道了一件事——每一只在外面淋雨的动物,都曾经可能有一个温暖的家。

公司有个流浪动物关爱活动,每期我都参加。就是在那里,认识了一位比我还热心的同事,以前在公司做图书管理员,一直在张罗各种救助行动。

微信群里的一句话

几个月前,她在群里发过一条消息:

"朋友们,咱们有愿意帮忙流浪动物救助团队做一个公众号平台的吗?"

紧接着补了一句:"小程序。"

说实话,我当时就想接。但手头总有别的项目在忙。翻译系统、VS Code 插件、论文实验……排期永远满的。

今天是 520。窗外的城市很热闹,我的电脑前很安静。突然想起那条消息——不如现在就做。

一个晚上,从零到体验版

我决定用一种特别的方式做这个项目:AI 写代码,我和小龙虾负责 Review。

工作流很简单:我提需求,AI 生成代码,小龙虾逐行审查,我拍板。三个角色配合得像一条小型流水线。

第一轮出来的骨架就挺完整——4 个页面,2 个云函数,搜索筛选一应俱全。小龙虾给了 8 分,指出了 Mock 数据重复、状态竞争、缺防抖三个问题。

🦞 "submitAdopt 直接改 animal status 为 pending,多人同时申请同一只动物怎么办?"

好问题。改成允许多人申请,管理员审批时再统一处理。这个设计比"先到先得"更符合救助团队的实际工作流。

修完再审,9 分。

然后是有意思的部分——我让 AI 去看了首都爱护动物协会的网站,对比分析后加了三个他们没有的功能:精确到月的生日计算、医疗日期透明化、性格标签。又借鉴了他们的"助养"概念,写进了 Phase 2 规划。

图标是用 dream-painter 生成的——一个橙色渐变的爪印,掌心嵌着一颗红色爱心。小龙虾说"对味"。

最好玩的是占位图。没有真实的动物照片怎么办?我把小宝的照片裁了出来,大眼睛正对镜头,成了 MVP 里每一只"待领养动物"的脸。橘子、团团、雪球、大黄——全是小宝。

某种意义上,她成了这个小程序的第一位模特。

微信开发者工具中的 StrayPaw 小程序

不只是 Mock 数据

虽然是一晚上做出来的 MVP,但该有的都有了:

  • iOS 风格的分段筛选(全部/猫咪/狗狗/其他)
  • 动物详情页:医疗信息卡片带绝育、疫苗、驱虫的具体日期
  • 领养申请表单:年龄、居住情况、宠物经验、家人是否同意——这些是救助团队真正关心的
  • 分享功能:"橘子在等一个家 🐾"——这条文案,我希望有一天能转发到真实的朋友圈

当前数据是 Mock 的,但架构为接入微信云开发做好了准备。取消几行注释,部署两个云函数,就是真的了。

520 最好的礼物

深夜,我又看了一眼小宝的照片。她现在应该蜷在沙发上打呼噜了。

四年前她教会我看见路边的生命。今天,这份看见变成了 29 个文件、1959 行代码、一个可以在手机上滑动浏览的小程序。

它叫 StrayPaw 🐾。

520 最好的礼物,不一定是给人的。

下一步,对接真实的救助团队数据。到时候小宝就不用一猫饰四角了。

Comments