近期几个 iOS App 的开发小结
Publish by2026-07-02
Updated by2026-07-02
Read in~8 min
联网翻了下自己 GitHub 上近期几个 Apple 手机软件项目,做一次阶段性记录:从生活碎片、物品日耗到日语词汇学习。
Written by - kok-s0s
这次不是单独复盘某一个功能,而是把 GitHub 上近期几个 Apple 手机软件项目放在一起看:它们都不算“大工程”,但刚好能看出自己从桌面端、工具链、C++/Qt 那套经验,开始往 iOS 本地应用开发迁移时的一些取舍。
这次主要看了三个仓库:
- Suipian:生活片段记录类 iOS 日记应用
- Daywise:物品日均成本追踪应用
- KotobaNyan:日语词汇学习应用雏形
从近期提交看,Suipian 和 Daywise 是最活跃的两个:Suipian 在 2026-06-08 到 2026-06-15 之间有一串围绕碎片流、Tab 统计、工具栏、故事线、媒体处理的提交;Daywise 在 2026-06-15 的提交主题是成本追踪和金额处理优化。KotobaNyan 更像是一个已经搭好基础模块、还在排功能路线的学习型 App。
一个共同趋势:先做本地完整闭环
这几个项目有个挺明显的共同点:没有一开始就奔着服务端、账号体系、云同步去做,而是先把一个手机 App 在本地应该具备的核心闭环做出来。
SwiftUI 负责界面表达,SwiftData 或本地数据库负责数据沉淀,系统框架负责手机端能力接入。这个路线挺适合个人项目:不需要先把架构铺太大,而是先验证一个想法能不能在日常使用里站住。
这种开发方式的好处是反馈周期短。一个想法能不能成立,不是先看服务端模型是否优雅,而是看打开 App 后能不能在十秒内完成一次记录、一次搜索、一次筛选、一次回顾。
Suipian:把“记录”做成信息流
Suipian 是这几个项目里功能面最完整的一个。它的定位是一款记录生活片段的 iOS 日记应用,技术栈是 SwiftUI + SwiftData,目标系统是 iOS 17+。
它不是传统意义上只有标题、正文、日期的日记本,而是把“碎片”当成核心数据单元:一条碎片可以带文字、图片、视频、音频、情绪、位置、标签、故事线归属、正在播放的音乐元数据,还可以设置私密和置顶。
这个设计让我感觉它更接近一个个人生活数据库,而不是一个单纯的 Markdown 日记。因为同一条记录可以从不同视角被重新召回:
- 从时间看,是今日入口、今日历史、随机回顾
- 从空间看,是位置地图和地点聚合
- 从叙事看,是故事线和时间轴
- 从统计看,是热力图、情绪趋势、标签分布
这个方向很有意思。它解决的不是“我能不能写一段文字”,而是“我之后能不能重新遇见这段生活”。所以 MapKit、WidgetKit、Core Spotlight、LocalAuthentication、UserNotifications 这些系统能力就不是装饰,而是把记录行为嵌入 iOS 日常使用方式里。
近期提交里多次出现工具栏、Tab 指标、碎片流筛选状态、故事线和媒体处理相关优化,也说明这个项目已经进入“不是把功能堆上去,而是把入口和浏览体验磨顺”的阶段。
Daywise:给消费补一个时间维度
Daywise 的目标更小,但概念很利落:记录每件物品的购入价格和使用时长,然后计算它每天实际花了多少钱。
它关心的不是“这件东西买的时候贵不贵”,而是“它在时间里摊薄之后值不值”。这个问题蛮适合做成手机 App,因为记录场景天然碎片化:买了东西就记一笔,使用一段时间后再看看日耗变化。
项目 README 里给出的核心公式很简单:
日耗 = 购入价格 / 服役天数
如果物品出售,还会扣除回收价,计算净损耗。围绕这个模型,App 做了物品管理、分类、自定义分类、服役中/已退役/已出售状态、搜索筛选、排序、统计看板和 CSV 导出。
它的工程结构也比较清晰:View + @Model + Service 的 MVVM-lite 风格,没有引入第三方依赖。对于这种个人效率工具来说,这个选择很稳,代码负担不会因为“想做得更像一个大项目”而膨胀。
从最近提交 Improve cost tracking and amount handling 看,这个项目的关键不在 UI 花活,而在金额处理、成本计算、状态切换这些基础逻辑。也就是说,它最需要打磨的地方是“算得对、分得清、导得出”,然后才是视觉和动效。
KotobaNyan:从词库工具长成学习系统
KotobaNyan 目前更像一个学习 App 的基础骨架。已经完成的部分包括数据库设计与初始化、词汇录入与展示、搜索、分类浏览、发音功能和基础 UI。
它后续路线比较明确:先补 N1/N2 词库,再做分组、学习进度、收藏标记、间隔重复、测验、听写,甚至计划接入 CoreML + Vision 做图像识别,把英文标签映射成日文释义。
这类 App 容易出现一个坑:词库、测验、复习、发音、图像识别,每个点都能继续扩展,最后变成一个永远做不完的学习平台。所以我觉得它下一阶段最适合先收缩成一个清晰闭环:
- 能按主题或 JLPT 级别浏览词汇
- 能收藏和标记掌握状态
- 能每天复习一小组
- 能通过发音和简单测验形成反馈
先把“记住一个词”这件事跑通,再考虑更复杂的图像识别和影视台词扩展,会更容易做出真正能长期使用的版本。
三个项目的差异
放在一起看,这三个 App 的差异其实挺清楚。
Suipian 是功能最厚的一个,重点在信息组织:同一批生活记录,要能通过时间、地点、故事线、标签、统计和系统搜索不断被重新访问。
Daywise 是模型最克制的一个,重点在计算:一个物品、一段时间、一个价格,最后落到一个“日耗”指标。只要这个指标足够清楚,App 就有存在价值。
KotobaNyan 是路线最开放的一个,重点在学习闭环:词库只是开始,真正决定它价值的是复习机制、学习进度和反馈方式。
它们刚好对应三种个人 App 的典型形态:
- 记录型:不断沉淀数据,价值来自长期回看
- 工具型:围绕一个公式或流程,价值来自快速决策
- 学习型:围绕重复训练,价值来自持续反馈
技术选择上的一些感受
这几个项目共同选择 iOS 17+,意味着可以比较自然地使用 SwiftData 和新一代 SwiftUI 写法。对个人项目来说,这有个好处:不用背太多历史包袱,能直接围绕当前系统能力设计。
但手机软件和桌面工具不太一样。桌面工具常常是“功能入口越全越好”,手机 App 则更看重主路径是否短。比如:
Suipian的关键不是支持多少媒体类型,而是记录入口是否足够快Daywise的关键不是统计图有多少,而是添加物品和查看日耗是否顺KotobaNyan的关键不是路线图多大,而是每天打开后能不能完成一轮学习
这也是近期 Suipian 多次打磨工具栏和 Tab 状态的原因:手机屏幕空间小,入口一乱,功能越多越像负担。
后续可以继续打磨的方向
如果继续往下做,我觉得可以分三条线推进。
Suipian 优先继续打磨信息回看体验。记录已经很丰富了,下一步最有价值的是让用户更容易“重新发现旧内容”:更好的搜索结果排序、更自然的故事线生成、更轻量的年度/月度回顾。
Daywise 优先保证金额和状态逻辑可靠。比如不同货币、退款、赠品、部分出售、折旧区间这些边界场景,一旦处理清楚,它就会从一个小工具变成真正可信的个人消费账本。
KotobaNyan 优先做最小学习闭环。别急着把所有想法都铺开,先让词库、掌握状态、每日复习、发音反馈形成一个可持续使用的节奏。
小结
这几个 iOS 项目看下来,最明显的变化是:开发重点从“把一个技术点跑通”,慢慢转向“让一个日常场景在手机上成立”。
Suipian 在处理生活记忆,Daywise 在处理消费判断,KotobaNyan 在处理学习反馈。它们都不一定需要庞大的后端,也不一定需要复杂的架构;更重要的是把一个小问题持续打磨到足够顺手。
个人项目最迷人的地方也在这里:不是一开始就做一个很大的东西,而是从一个自己真的会用的小入口开始,然后一点点长出形状。