尝试手搓一个APP

根据昨天的【灵感保险箱】创意,想试着搓个APP。和Chatgpt Pro讨论了下,给出建议如下:

我们就按 A:纯记录 / 灵感保险箱 这条路线,带你用 Claude Code 一步步把 iOS App 做出来。你是技术小白没关系——我会把每一步拆到“你照做就能跑起来”的程度,并给你可以直接复制给 Claude Code 的提示词。
下面默认你用 Mac + Xcode + SwiftUI(这是做 iOS 最省事的组合)。
第 0 步:你要准备什么(一次性)
你需要
-
一台 Mac
-
安装 Xcode(App Store 搜 “Xcode”)

-
一个 Apple ID(免费也行;真机安装需要开发者签名,后面再说)
建议(可选但强烈)
-
安装 Git(Mac 一般自带;没有的话
xcode-select --install)
第 1 步:创建一个能跑的空项目(最重要的起点)
-
打开 Xcode → Create a new Xcode project
-
iOS → App
-
配置:
-
Product Name:
Cocoon -
Interface:
SwiftUI -
Language:
Swift -
Storage:先不要选 Core Data(我们先用 JSON 本地存储)
-
选择一个文件夹保存 → Create
-
点 ▶️ 运行(Simulator)确保能看到 “Hello World” 类似的界面
✅ 到这里,你已经拥有一个能跑的 App 外壳。

第 2 步:把 Claude Code 变成你的“随身开发搭子”
你可以把 Claude Code 当成:
“读你项目代码 → 按你的 PRD 写功能 → 自动修复编译报错 → 解释每一段代码在干嘛”
你对 Claude Code 的固定开场提示词(复制)
你是我的 iOS SwiftUI 教练。我是技术小白。
目标:做一个“灵感保险箱”App(纯记录,不做孵化、不做提醒、不做任务)。
请你以“每一步都能编译运行”为原则推进:给我明确要改哪些文件、粘贴哪些代码、我运行后应该看到什么。
每次只推进一个小里程碑,并在最后给我一个“自检清单”。
第 3 步:我们按 4 个里程碑做(每一步都能看到成果)
里程碑 1:数据模型 + 本地 JSON 存储(先能保存一条灵感)
里程碑 2:首页(保险箱列表 + 右上角 + 新建按钮)
里程碑 3:新建页(Modal Sheet:取消/保存/标签/星标)
里程碑 4:详情页 + 搜索筛选页 + FaceID 开关(你图里的启动页效果可以后面加)
你现在要做的第一件事,就是让 Claude Code 帮你完成 里程碑 1。
第 4 步:里程碑 1(模型 + JSON 存储)Claude Code 提示词
把下面这段直接发给 Claude Code(它会在你项目里创建/修改文件):
在我当前的 SwiftUI 项目里实现“灵感保险箱”的数据层(里程碑1):
需求:
1) 数据模型 Idea:
- id(UUID)、content(String)、createdAt(Date)、tags([String])、isStarred(Bool)、attachments([String] 可先占位)
2) 本地存储:
- 用 JSON 文件存储到 Documents/ideas.json
- 提供 load() / save(),并用 ObservableObject 的 Store 管理 ideas 数组
3) 提供示例数据(首次启动时写入 2-3 条)
4) 所有代码必须能编译运行
请你:
- 新建文件:Idea.swift、IdeaStore.swift、JSONStorage.swift(如需)
- 在 ContentView 里临时展示 ideas.count 和第一条标题,证明读写成功
- 给我每个文件的完整代码,并告诉我下一步怎么运行验证
你运行后的“应该看到什么”
-
App 打开后显示:比如 “共 3 条灵感”
-
重启 App 仍然存在(说明 JSON 存储成功)
第 5 步:里程碑 2(首页保险箱)Claude Code 提示词
等里程碑 1 成功后,继续发这段给 Claude Code:
里程碑2:实现首页「保险箱 Home」(iOS 风格,Dark Mode First):
页面要素:
- Large Title:保险箱
- 右上角:搜索按钮、+ 按钮
- 顶部一张“快速输入卡片”(点击后打开新建页,先用占位)
- Section:最近(列表卡片显示:标题、时间、最多2个标签、星标⭐️)
- chips:⭐️星标 / 今天 / 本周 / 未分类(先做 UI,不必实现过滤也行)
- 空状态文案:这里还空着。灵感来的时候,先存起来。
实现要求:
- 使用 IdeaStore 的 ideas
- 点列表进入详情页(先跳转到一个临时 DetailView 展示内容即可)
- 代码必须可运行
第 6 步:里程碑 3(新建页 Modal Sheet)Claude Code 提示词
里程碑3:实现记录页「新灵感 New」(Modal Sheet):
UI 文案必须严格使用:
- 顶部:取消 / 保存(未输入置灰)
- 文本框 placeholder:把它放进来。
- 元信息小字:03/01 09:12(自动时间)
- 工具条按钮:# 标签 / ⭐️ 星标 / + 图片(图片先占位不实现)
- 保存 toast:已存入保险箱。
交互:
- Home 右上 + 或快速输入卡片 → 打开 NewIdeaSheet
- 保存后写入 store,并自动关闭 sheet
- 列表立即刷新
请给我完整代码并确保可编译运行
第 7 步:里程碑 4(详情页 + 搜索筛选 + FaceID 开关)Claude Code 提示词
里程碑4:补齐剩余页面并让体验像“灵感保险箱”:
A) 详情页「灵感 Detail」
- 标题:灵感
- 右上:⋯ 菜单(编辑/复制/分享/导出/删除)
- 展示正文、时间、标签、⭐️
- 删除需二次确认:要把它从保险箱移走吗?
B) 搜索与筛选「查找 Search」
- 搜索框 placeholder:搜关键词 / 标签
- 筛选:日期(今天/本周/本月/自定义)+ 标签多选 + 只看星标开关
- 空状态:没搜到。换个词试试?
- 结果点击进入详情页
C) FaceID 解锁开关(设置页或启动页开关均可)
- 开关文案:FaceID 解锁
- 说明:像保险箱一样保护你的念头
- 先实现“开关状态持久化”(UserDefaults),真正 FaceID 校验可后置
确保工程可编译运行,给出每个文件改动与代码。
试着搓了一会儿,不是很顺利,明天继续。
我是凯瑟琳,在这里陪你慢下来。
每天甄选一个提升幸福感的小工具。
愿我们在互联网洪流中,都能拥有一张安静的书桌。
夜雨聆风

