客户端开发的尝试
记录我从学习 SwiftUI,到陆续尝试 iOS 与 macOS 客户端项目的过程。
客户端开发的想法,最初起于 2023 年 9 月的一次开发者交流会。
那是疫情之后,我第一次参加这类线下活动。现场遇到一些刚毕业或还没有毕业的开发者,他们已经做出了不少自己的作品。后来偶尔在社交网络上联系,也会看到他们继续发布新的项目。
那次交流没有让我立刻学会什么,却让我记住了 “Show me the code”。与其一直讨论想法,不如先做出一点东西。从那以后,我开始认真考虑自己的产品,也把 iOS 当成第一个尝试的方向。
从 SwiftUI 开始
我先花了大约两个月,跟完了 The 100 Days of SwiftUIHacking with Swift。Follow the 100 Days of SwiftUI and learn to build apps for free.。课程让我熟悉了 Swift 和 SwiftUI 的基础,也让我对一个客户端项目的组成有了初步认识。
不过,跟完课程并不等于掌握了开发。很多问题只有真正开始写项目以后才会遇到。对我来说,这一步更像是开始前的准备。

第一个没有完成的想法
我最早想做的是一个猫粮检索工具。那时希望把网上分散的第三方数据整理到一个 iOS 应用里,方便查询和比较;后来也考虑过加入 AI 识图和问答。
这个项目中途搁置过,之后又重新继续。进展不算快,但它让我第一次开始从一个具体需求出发,思考数据、功能和客户端之间的关系。
真正开始的第一个项目
2024 年 9 月,我在 GitHub Trending 上看到了开源项目 HiVisionPhotos。它把人像识别、抠图和证件照生成串在了一起,当时我没有找到合适的 iOS 版本,于是决定尝试自己做一个。
这个项目后来叫 IDPhotoMaker,也成了我第一个真正进入开发阶段的 iOS 项目。过程中还有很多不熟悉的地方,最早的设想也没有一次完成。
后来的两个项目
做完第一个 iOS 应用以后,我又尝试了两个不同方向的小项目。
Retimeber 是我第一次做 macOS 应用。它只是一个计时器和定时器,起因也很具体:临时计时时,我不喜欢手机提醒突然响起,又常常盯着时间等最后一秒关闭。这个项目大约用了两周,也让我第一次完整走过 macOS 应用的开发和上架流程。
VocabReader 是后来做的另一个 iOS 工具。因为我一直使用墨墨背单词,却发现单词离开语境后很容易忘,所以想把当天复习的单词放进一篇可以阅读的短文里。工具会读取当天的复习词汇,再通过 LLM 生成不同题材的文章,并补上翻译、段落解析和收藏。它没有替代原来的背词流程,只是给自己多加了一次带语境的复习。
回头看,这段经历没有一条很完整的路线:先学课程,再做项目,中间也有搁置和重来。这些工具都不算复杂,出发点大多只是我遇到的一个小问题。它们让我从“想做一个客户端”,慢慢走到真的开始写,也让我对 iOS 和 macOS 开发多了一些具体认识。