整个过程我没碰过 Xcode
CLAUDE.md 写完,项目目录还是空的。我打开终端,cd 进去,敲 claude,回车。
这是第一次让 Claude Code 接一个 iOS 项目,我心里其实有点忐忑——它会不会一上来就缺这个缺那个、找不到 Xcode、报一堆我看不懂的错。我对它说:
我们要做个 iOS app 叫"实图小记",最低 iOS 16,用 SwiftUI。先把项目骨架搭起来,能在模拟器里跑出一个白底页面就行。
它先扫了一下当前目录(空的),看了 CLAUDE.md,然后开始干活。装 xcodegen(之前我没装,它用 brew 装上的)、写了一份 project.yml、生成了三个 Swift 文件——RealAlbumApp.swift 是 app 入口,ContentView.swift 是首页,再加 Info.plist 该有的字段、Assets.xcassets 资源目录占位。然后跑 xcodegen generate 生成 .xcodeproj、跑 xcodebuild 编译第一次过、跑 xcrun simctl 把 iPhone 15 模拟器启起来、把 .app 装进去、用 simctl launch 打开。
模拟器里出来一个白底页面,中间一行字。
整个过程花了两三分钟,中间它没问我任何问题。stdout 里有几个我看不懂的 warning,懒得看——模拟器跑起来了。
这就是我想说的"不写代码做 iOS app"的样子。你交给它一句话,它自己摸路、自己装工具、自己写文件、自己编译、自己跑模拟器、自己打开。整个过程我没碰过 Xcode。
项目目录现在长这样:
real-album/
├── CLAUDE.md
├── project.yml
├── RealAlbum.xcodeproj/
└── RealAlbum/
├── RealAlbumApp.swift
├── ContentView.swift
├── Info.plist
└── Assets.xcassets/
粗略地说:project.yml 是项目配置的真相,RealAlbum/*.swift 是源代码,CLAUDE.md 是给 AI 看的说明书——这三类要在 git 里 commit。RealAlbum.xcodeproj/ 是从 project.yml 自动生成的,每次 xcodegen generate 会重写,可以直接进 .gitignore。这是这个系列里你需要培养的少数几种"读项目"能力之一——不是读代码内容,是知道哪些文件是源、哪些是产物,改错地方等于白改。
那两个 .swift 文件你想读可以让 Claude 解释一遍。我自己的建议是初次过一眼就行,知道 RealAlbumApp 是 app 入口、ContentView 是首页内容就够了。具体语法没必要硬记,下次看到觉得别扭再问它。
到这一步,整个系列的开发循环已经成型:你跟它说要什么 → 它改文件 → 它跑 xcodebuild → 它启模拟器 → 你看屏幕。下一篇展开这个循环里"你的工作"是什么——怎么提需求不让它跑偏,怎么验收,出错的时候把哪些信号准确回灌给它。
参考资料
版权声明: 如无特别声明,本文版权归 sshipanoo 所有,转载请注明本文链接。
(采用 CC BY-NC-SA 4.0 许可协议进行授权)
本文标题:第一次发牌:从一句话到模拟器亮屏
本文链接:https://www.sshipanoo.com/blog/ai/vibe-ios/03-起项目骨架/
本文最后一次更新为 天前,文章中的某些内容可能已过时!
目录