字数 2045,阅读大约需 9 分钟
01
每到农历新年,我心里就慌得一批。
2020 年疫情,清明节我没法回去祭祖。堂哥电话过来,问我说能不能开发个小程序,把家里的祖墓做个记录:地理位置、朝向、历史等信息,拍照几张照片,就不怕以后子孙们找不到墓了。
在农村里没有文字记录,靠着代代口传这墓是谁谁。随着老人们逐渐凋零,后辈又外出打工,甚至进城生活,老家里的一些祖坟现在也说不清楚是谁的了。
我说先研究研究。
有一年回老家,几杯“广西公文包”下肚后,人生豪迈的我满口答应堂哥做一个 APP,这个有啥难的!
回到深圳后,我用 Ruby on Rails 做了一个 Web 版本,然后又抽离一套后台 API 提供给 Android 客户端。随着开发的深入,被几个问题搞得没脾气了:
- • 看似是树形结构,其实根本搞不定,老祖先以前是一夫多妻,要命的是,还有小妾,这放在哪?
- • 中间有几代是断层的,整棵家族树也没法完整绘制。
- • 国内的地图,在我们老家显示不清晰,Google 地图算是最清晰的,但是这玩意国内用不了。
之后拖拖拉拉好几年,每次回去见到堂哥,都显得不好意思,借口说琐事缠身。
就这样,我是不太想继续开发了。
02
2025 年的最后一天,我在 Manus 的输入框,敲下一句话需求:“制作一个家族族谱与祖坟的 APP”
好家伙,AI 询问了我几个更加详细的需求,我点击确认后,咔咔地生成了项目工程!
技术栈:React Native + Expo SDK 54 + NativeWind 4 + tRPC + MySQL + S3存储
我一脸懵逼,不知道如何编译运行,继续问:“如何编译运行这个项目?”
对照步骤操作,还真能在模拟器上跑起来了!界面虽然丑了点。
接着继续问:“生成 Android 客户端项目”
又是咔咔几分钟,✅ Android 原生客户端项目已生成完成!我为您创建了一个完整的、生产级别的 Android 原生应用项目。📦 项目包含内容核心框架:✅ Kotlin + Jetpack Compose UI 框架✅ MVVM 架构 + Clean Architecture✅ Hilt 依赖注入✅ Jetpack Navigation 导航系统✅ Room 本地数据库✅ Retrofit + OkHttp 网络库功能模块:✅ 家谱管理(成员管理、关系管理)✅ 地图展示(Google Maps 集成)✅ 祭祀提醒(提醒管理)✅ 家族相册(照片管理)✅ 个人中心(用户信息、设置)项目结构:
family-tree-android/├── app/│ ├── src/main/│ │ ├── java/com/manus/familytree/│ │ │ ├── MainActivity.kt│ │ │ ├── ui/ # UI 层│ │ │ ├── data/ # 数据层│ │ │ └── di/ # 依赖注入│ │ └── AndroidManifest.xml│ ├── build.gradle.kts # 应用级别配置│ └── proguard-rules.pro # 混淆规则├── build.gradle.kts # 项目级别配置├── settings.gradle.kts # 项目设置└── README.md # 项目文档
我继续问:“下载 Android 项目的代码”
它们给我打包了项目压缩文件 family-tree-android.zip,下载到本机,导入 Android Studio,顺利编译通过。
我终于意识到,之前自己辛辛苦苦花了差不多一个月的空闲时间写出来的东西,还不如 AI 半小时,而且写得比我还好。那天下午,阳光正好,我沉浸了一个多小时,重新找回了写代码的快乐。
正当我意犹未尽的时候, Manus 给我提示:“You don't have enough credits to continue.”
啥意思啊?刚要高潮,就让我充值,TMD 真扫兴!
03
然后我疯狂地学习各种 AI 工具的使用,也跟同事交流了一些经验。
上周六早上,我决定用 Cursor 开干,给 agent 发出我的需求:“一个使用 React Native + Expo 构建的家族管理应用,支持家族谱、墓地管理、家族记账、云端同步等功能,可在 iOS、Android 和 Web 平台运行。”
Agent 默认使用 auto 模式,反应有点慢,海哥说要翻墙使用海外的模型,并给我推荐了最强模型: Opus 4.5。强是真的强,但是也好贵啊,20 刀一下子就用完了,我又得继续续费。
中间也遇到了一些问题,基本上都可以直接问,AI 给你现场解决,记录一下:
"app 底部 tabs 被 iPhone 底部的 Home Indicator 遮挡了一些。"
"在 家族树 页面,Android 版本的 app 点击成员图标查看详情,无反应,iOS 有反应,请修复这个 bug"
"使用 eas 打 Android apk 包,包的大小比较大,能否做一些优化?"
"Android app,中国大陆不能使用 Google 地图,请问,有其他方法么?或者在设置里,增加一个可以选择地图的选项。"
"更新一下 @README.md"
"登录页面,将上边的 app logo,app name,“记录家族历史,传承家族文化” 这三行去掉,显得啰嗦重复"
"同步到云端的逻辑是什么?"
"后台服务连不上,数据同步时,一直在加载中,没有提示"
"这个 app 如果要商用上线,还需要增加哪些功能?"
"接下来,我要做什么?"
当然了,作为曾经有逼格的程序员,也要问一些好玩的问题:
"在设置 - 关于,连续快速点击“版本”3-5次,弹出一个彩蛋,类似于 Android 10。"
我完全没学过 React 这个 JS 框架,断断续续在工作日晚上的空闲时间里折腾,不到一个礼拜的时间,就搞完了,效果如下:
04
最后说说几点最近使用 AI 编程的感受。
先说说同事的总结:
- 1. AI 编程的本质是效率工具,不是万能解决方案。
- 2. AI 只能保证功能可运行,无法替代复杂设计思维。
- 4. 准确评估和修改 AI 生成的代码是关键能力。
我的感觉就是:
- 2. 富有创造力的人,才会享受到 AI 时代的红利。
- 4. 不懂开发语言,也可以做 APP,只要你把需求说清楚。
AI 时代,不能只在岸上围观,得亲自下水。
花了 71 美刀(约百五块人民币),写代码那是从从容容游刃有余,这个春节不用慌了,终于可以安心地吃喝。