← 全部文章
故事

243 天,一个不会写代码的人做出了 iOS App

我没学过编程,看不懂报错,连「面向对象」都讲不明白。243 天、466 次提交、4.3 万行代码,最后真的上架了。这是完整过程,以及 4 条我认为最值得说的心得。

4 分钟读完
Read in English →
目录

243 天前,我连 Swift 是什么都不知道。今天,我的 App 在 App Store 上。

我是一个彻底的素人:没学过编程,看不懂报错,连「面向对象」都讲不明白。我唯一的武器是一句一句地说人话,然后和 AI 结对干活。

这不是一篇教你写代码的文章。我想说清楚的是:在不会写代码的前提下,一个人能把一个真实产品做到什么程度,以及这一路上真正难的东西是什么。

我的全部方法,是「说人话」

最开始我甚至不知道怎么跟 AI 提需求。前两周我一直在犯同一个错误:用程序员的词描述我想要的东西。

比如我想让列表支持滑动删除,我会说「给这个 List 加上 swipeActions 的 leading 和 trailing」。结果 AI 给了我一堆我不知道怎么塞进项目的代码。

后来我放弃了这种说法,改成:

「这个物品列表,我想往左滑出现删除按钮,往右滑出现置顶按钮。」

它立刻给对了。

这个转变听起来微不足道,但它是我在 243 天里学到的最重要的一件事:你不需要学会编程语言,但你必须学会准确描述你想要什么。

需求描述得越具体,AI 的输出越可靠。「重新设计购物清单」这句话,就是一个完整模块的开头。

243 天,时间线大概是这样

阶段发生了什么
前 10 天骨架全部立起来,一周点亮 6 个核心功能
第 3 个月爆发期,一个月 198 次提交。八大品类专属字段、统一搜索、家庭协作
第 5 个月v1.0 诞生:自建数据集训练 YOLOv8,让识别能离线跑;对话式智能体上线;订阅收款接通
第 7–8 个月整整两个月只有 1 次提交
第 9 个月回来之后一周冲刺到 v1.2.1

最后的数字是:466 次提交、4.3 万行代码、411 个测试。

前 10 天那种「它居然真的做出来了」的震撼,我现在还记得。但真正决定这个 App 能不能活下来的,不是前 10 天。

最难的不是功能,是崩溃

功能是可以一点点加的。崩溃不是。

最惨的一次是 AI 识别存库:只要识别完成、把结果写进数据库,App 必崩。 我写「彻底修复」,写了 5 次。

前 4 次我都在猜。猜一个可能的原因,改掉,运行,还是崩。那种感觉非常消耗人——你会开始怀疑自己根本不具备做这件事的能力。

第 5 次我换了做法:把报错原样丢给 AI,一个字都不改。

结果它很快指出了问题所在。我这才意识到,之前我一直在用「我觉得」代替「实际发生了什么」。

后来我把这个流程固定了下来:

崩溃其实是最好的老师。每一个报错都精确地告诉你:你对这段逻辑的理解是错的。它不给你含糊的空间。

7、8 月,我消失了两个月

这一段我犹豫过要不要写。

那两个月,整个项目只有 1 次提交。不是遇到了技术难题,也不是没时间——就是不想打开它了。前面几个月的连续输出把力气用完了,看到那个图标就有点抗拒。

我当时的焦虑很真实:别人在连续更新,我在原地不动。 但我后来允许自己休息了。

9 月回来,我发现一件有意思的事:那两个月并没有让我变差,反而让我看得更清楚。 很多之前卡住的设计问题,回来之后很快就定了。一个星期,我冲刺到了 v1.2.1。

如果你也在做一件长期的事,我想说的是:节奏断掉不等于失败。终点线一直在往前挪。

我最想说的 4 条心得

1. 说人话就能开工。 不需要先学会术语。「重新设计购物清单」一句话,就是一个模块的起点。术语是给协作提速用的,不是入门门槛。

2. 崩溃是最好的老师。 每个报错都送你一次进化。把原始报错原样交出去,比你自己猜十次都有效。

3. 小步提交,滚雪球。 这是我这种素人驾驭 4 万行代码的唯一方式。每次只改一小块,改完立刻确认没坏。想一次做对一个大功能,必然翻车。

4. 接受真实节奏:会爆发、会休息。 243 天里我有一个月提交 198 次,也有两个月只提交 1 次。这很正常。要求自己匀速前进,反而更容易放弃。

为什么我做的是「物品管理」

这个 App 叫 AllMyThings,做的是家庭物品管理。

不是我挑的赛道——是我自己家里东西太乱,找不到保修卡、重复买洗发水、冰箱里的东西过期了才发现。我想先解决自己的问题。

如果你更关心「物品管理具体该怎么做」,而不是「App 是怎么做出来的」,我另写了两篇更实用的:我把家里 128 件东西记进手机之后,发现了 3 件事,以及用 Excel 管理家里的物品会在哪里卡住。

普通如我都能做到,你真的可以试试。

继续读