乐于分享
好东西不私藏

尝试手搓一个APP

尝试手搓一个APP

👋 嗨,我是凯瑟琳。每天3分钟,陪你发现一个好用的小工具。

根据昨天的【灵感保险箱】创意,想试着搓个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 步:创建一个能跑的空项目(最重要的起点)

  1. 打开 Xcode → Create a new Xcode project

  2. iOS → App

  3. 配置:

    • Product Name:Cocoon

    • Interface:SwiftUI

    • Language:Swift

    • Storage:先不要选 Core Data(我们先用 JSON 本地存储)

  4. 选择一个文件夹保存 → Create

  5. 点 ▶️ 运行(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 校验可后置

确保工程可编译运行,给出每个文件改动与代码。


试着搓了一会儿,不是很顺利,明天继续。

我是凯瑟琳,在这里陪你慢下来。

每天甄选一个提升幸福感的小工具。

愿我们在互联网洪流中,都能拥有一张安静的书桌。

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 尝试手搓一个APP

评论 抢沙发

9 + 5 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮