有钛度的 AI 观察 — 每周更新 EST. 2026 · WWW.GETAITI.COM
深度 · 原创 · 周更 WEEKLY · 有钛度

归档 / NO.013 · 日札 · 独立开发 · iOS · Codex · DeepSeek · AI 编程

我一行代码没写,用不到十天的业余时间做了一款 iPhone App

从整理旧日记开始,到 Codex 和 DeepSeek Harness 接力开发、测试、准备上架。

作者 Jeffrey Hu 2026.10.27 约 3,700 字 阅读 12 分钟
本文章节 · CONTENTS 07
  1. 01 起因:我只是想把以前的日记找回来
  2. 02 先想清楚自己要什么,再让 Codex 动手
  3. 03 隐私和便捷,有时需要反复权衡
  4. 04 为什么我特别在意离线语音输入
  5. 05 Codex 额度不够,就换 DeepSeek Harness 接着做
  6. 06 AI 做的不只是写代码
  7. 07 写了二十多年代码,这次最大的收获反而不是代码

日札:安静记下内心的地方

从整理旧日记开始,到 Codex 和 DeepSeek Harness 接力开发、测试、准备上架,我想聊聊这次 AI 编程的真实经历。

我做了二十多年软件开发,写过不少代码,也带过开发团队。但最近,我用不到十天的业余时间,做了一款 iPhone 日记 App,名字叫「日札」。

有意思的是,这次我自己一行代码都没有写。

从最初的界面设计、功能实现,到运行模拟器、调试、制作产品网站,再到准备 App Store 所需的截图和提交审核,绝大部分工作都是 Codex 和 DeepSeek Harness 完成的。我做的主要是描述需求、体验产品、提出修改意见,在 AI 卡住的时候偶尔动手帮一把。

这篇文章不打算写成一份“如何用 AI 十分钟开发 App”的教程。我更想记录,这个原本只打算给自己用的小工具,是怎么一步步做出来的,以及这次经历让我重新思考了什么。

起因:我只是想把以前的日记找回来

散落的日记,收拢到一处

这些年,我断断续续写过一些日记。有时候写在 Day One 这样的日记 App 里,有时候记在其他文档里,还有一些直接放在电脑上的 Markdown 文件中。当时觉得很方便,几年后想重新看看,却发现这些内容散落在不同地方,有些软件甚至已经不用了。

日记本来是留给未来的自己看的,结果真正想回顾时,反而要先想清楚当年到底把它写在哪里。于是我有了一个很简单的念头:能不能先把这些日记收集到一起,按时间整理好,至少让我能方便地阅读和查找?

我先让 Codex 帮我做了一个本地网页,把过去的日记归类、集中展示。电脑上打开网页,就能翻看那些很久没读过的文字。这一步其实已经解决了最初的问题。

但用了一阵子,我又觉得不够方便。我平时并不是总坐在电脑前,更多时候拿在手里的还是手机。既然网页已经做出来了,那为什么不干脆做一个 iPhone App 呢?

一开始,我只想在手机上读旧日记。后来又想,既然可以读,为什么不把写日记的功能也做进去?就这样,一个原本为了解决自己小麻烦的网页,慢慢变成了一个完整的 App 想法。

先想清楚自己要什么,再让 Codex 动手

真正开始做的时候,我并没有准备一份很长的产品需求文档,而是先告诉 Codex,我想要一个极简、实用、用起来流畅的日记 App,请它先给我设计界面。

同时我明确了几个原则:不需要注册账号,日记内容优先保存在本地;隐私要有保障,但不能为了安全把操作搞得太麻烦;要适合手机上的快速记录,尤其是语音输入;另外,以后想查找、回顾或者备份日记,也得方便。

大概半天时间,Codex 就把 App 的框架和主要功能搭出来了。这不是说半天就完成了一款可以发布的成熟产品,而是已经有了能运行、能体验、可以继续迭代的版本。对我来说,这已经足够让我开始真正试用。

开口就记:一张空白的纸

接下来的几天,我基本是利用下班后的时间,打开 App 体验一下,发现哪里不顺手,就直接告诉 Codex 修改。很多需求不是我一开始就想好的,而是自己用着用着才冒出来的。

比如写日记时,除了文字,我有时候也想放一张照片或者一段视频;有些记录希望带上位置信息,但这个应该由用户自己决定;回顾某一天时,除了内容,还可以用五种心情标记当时的状态。后来又逐步加入标签、关键词搜索等功能,让记录和查找都更方便。

手写字体与纸面

照片、视频也能放进日记

这些听上去都是普通功能,没有什么特别复杂的技术。但我越来越觉得,对日常使用的产品来说,真正重要的往往不是功能数量,而是有没有把这些普通事情做得舒服。

安静地读,没有别的打扰

按天回看:心情与日子

隐私和便捷,有时需要反复权衡

安全与便捷的取舍

日记是很私人的东西,所以我从一开始就希望日札不需要用户注册,数据主要留在自己的设备上。安全方面,可以通过密码或者 Face ID 保护访问,同时支持本地备份和可选的 iCloud 备份,尽可能降低日记丢失的风险。

最初我想得很直接:既然重视隐私,那每次打开 App 都验证一下身份好了。功能做出来以后,我自己用了几次就觉得烦。拿起手机只想记一句话,却要一遍遍验证,反而打断了记录的念头。

所以后来我让 Codex 加上了可设置的免重复验证时间,比如五分钟内再次打开,就不用反复刷脸。这个改动不大,却是一次很典型的产品取舍:安全当然重要,但安全措施也应该考虑真实的使用场景。

密码与面容 ID

备份也是一样。我希望日记内容尽量掌握在自己手里,但又不能因为只存本地,就让用户承担设备损坏、误删带来的风险。因此,本地自动备份、手动备份和可选的 iCloud 备份,成了我坚持保留的能力。

每天自动备份,iCloud 可选

为什么我特别在意离线语音输入

相比电脑,手机上写长文字还是有点麻烦。有时候一个想法突然冒出来,或者走在路上想记几句话,最自然的方式就是直接说出来。所以我特别要求加入语音输入,而且希望在设备支持的情况下,可以不依赖网络完成语音转文字。

这背后其实还是两个很普通的要求:方便和隐私。记录日记不应该非得有网,也不应该为了输入一段私密内容,先把声音发到某个远程服务。

我并不是先研究好所有语音技术细节,再一步一步指挥 AI 编程。更多时候,我先说清楚想达到的使用效果,让它去寻找和实现可行的方案,然后在实际设备上体验,哪里不流畅再继续调整。当然,具体的离线能力也要受到 iPhone 设备、系统以及语言支持情况的限制,不能不加区分地说所有设备都能用。

从文字、图片、视频,到心情、标签和语音,功能一点点增加,但我始终提醒自己:这是一款日记 App,不应该为了显得强大,把界面做得越来越复杂。

Codex 额度不够,就换 DeepSeek Harness 接着做

Codex 与 DeepSeek Harness 接力

开发过程中也不是一直顺利。做到中途,Codex 的使用额度不够了。但我不想因为一个工具暂时用不了,就把整个项目停下来。

于是我让 Codex 先整理好项目的现状、已经完成的功能、待解决的问题和下一步计划,再把这些交接资料交给 DeepSeek Harness,由它继续开发。换工具时,我同样要求把交接说明做好,而不是指望新的 AI 自己猜之前发生了什么。

这段经历让我觉得,AI 编程并不一定要从头到尾绑定一个模型或者一种工具。只要项目资料、代码和任务状态整理得清楚,工具之间完全可以接力。当然,交接并不意味着零成本,新的 AI 也需要理解项目,所以把上下文写明白非常重要。

还有一个习惯,是我一直坚持的:每次做完比较大的改动,就让 AI 通过 Git 提交一次代码。如果下一轮修改出了问题,至少能找到上一个正常工作的版本,必要时可以回滚。

这听起来是很基础的软件工程常识,但在 AI 编程时可能更重要。因为 AI 改代码的速度太快了,几轮对话下来,它可能已经动了很多文件。如果没有版本管理,出了问题很难说清楚从哪里开始坏的。

我虽然没亲手写代码,但不是把工程风险也一并交出去。代码可以交给 AI 写,项目进度和修改的主动权还是要握在自己手里。

AI 做的不只是写代码

这次让我印象很深的一点,是 Codex 和 DeepSeek Harness 不只是生成代码文件。它们还能在我的 Mac 上配合开发环境完成不少实际操作,例如构建运行 App、调用模拟器、调试问题、准备 TestFlight 测试以及 App Store 的提交材料。有些步骤可以借助命令和工具自动完成,有些界面操作卡住时,我就人工接手处理一下。

以前即使只是做个自己的小 App,写完代码后还要处理不少琐碎的工作:配置工程、检查设备上的显示效果、准备不同尺寸的截图、填写上架信息等等。这次,这些事情也大多被纳入了 AI 的工作范围。

我还让 Codex 给日札做了一个产品介绍网站:rizha.getaiti.com。网站里的 App 界面展示,使用的是实际应用配合模拟日记数据生成的截图。连提交 App Store 所需的 iPhone、iPad 截图和宣传素材,也主要由 AI 协助制作。

日札产品站

从一个想法,到能在手机上安装体验的应用,再到产品网站和上架资料,不到十天的业余时间,我把原本需要自己处理的许多事情交给了 AI。这里面当然还有反复修改、测试和人工介入,但和过去相比,整个过程已经很不一样。

发布状态说明:写作时日札已可以通过 TestFlight 测试,正式版本仍在等待 Apple 审核。本文发布前将根据实际审核结果更新。

写了二十多年代码,这次最大的收获反而不是代码

可能有人会问,既然你本来就是程序员,一行代码不写有什么意义?

我觉得意义恰恰在这里。我有二十多年的软件开发经历,知道做一个产品远不只是把功能写出来。过去,一个想法冒出来后,我会下意识考虑要投入多少时间、搭建什么架构、用什么技术、怎样测试和发布。如果只是满足自己的一点小需求,很多想法可能算算成本就放弃了。

现在不一样了。我可以先把想法说出来,让 AI 很快给我一个能运行的版本,自己拿在手里体验,再不断提出新的意见。这让我把更多时间花在了产品本身,而不是实现过程中的每一个细节上。

但这并不意味着,只要会跟 AI 说话,就一定能做出好产品。

同样的功能,界面可以做得很乱,也可以做得很舒服;同样是强调隐私,可以每次打开都要求刷脸,也可以在安全与便捷之间找到更适合的平衡;同样是增加功能,可以越加越臃肿,也可以始终保持克制。这些判断不是代码自动生成之后就自然成立的,它们来自人的审美、体验、反馈和取舍。

AI 极大地降低了把一个想法变成软件的成本,但产品最终做成什么样,还是取决于人能不能看出问题、提出好问题,以及知道自己真正想要什么。

这次做日札,让我真正感受到了一种变化:不是说我突然什么都懂了,而是很多以前觉得麻烦、需要专门抽出大段时间才能开始的事情,现在可以利用业余时间试一试。做出来不好,就改;不合适,就重新来。一个人的想法,不必再被自己一天能写多少代码限制得那么死。

如果一定要用一句话总结这次经历,我想说:AI 没有让我变成一个更厉害的程序员,而是让我有机会成为一个更自由的创造者。


日札 App:https://rizha.getaiti.com

作者网站:https://getaiti.com

订阅 · SUBSCRIBE

扫码关注公众号

文章每周更新,网站和公众号「AITi智能」同步发布。想在微信里第一时间看到,扫码关注。

  1. 01 微信搜索「AITi智能」
  2. 02 关注并加星标
  3. 03 每周更新,不见不散
公众号「AITi智能」二维码

扫码关注 · 每周一篇