近期几个 iOS App 的开发小结

Publish by2026-07-02

Updated by2026-07-02

Read in~8 min

联网翻了下自己 GitHub 上近期几个 Apple 手机软件项目,做一次阶段性记录:从生活碎片、物品日耗到日语词汇学习。

Written by - kok-s0s

iOS App development desk

iOS

SwiftUI

SwiftData

这次不是单独复盘某一个功能,而是把 GitHub 上近期几个 Apple 手机软件项目放在一起看:它们都不算“大工程”,但刚好能看出自己从桌面端、工具链、C++/Qt 那套经验,开始往 iOS 本地应用开发迁移时的一些取舍。

这次主要看了三个仓库:

从近期提交看,SuipianDaywise 是最活跃的两个: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 日记。因为同一条记录可以从不同视角被重新召回:

这个方向很有意思。它解决的不是“我能不能写一段文字”,而是“我之后能不能重新遇见这段生活”。所以 MapKitWidgetKitCore SpotlightLocalAuthenticationUserNotifications 这些系统能力就不是装饰,而是把记录行为嵌入 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 容易出现一个坑:词库、测验、复习、发音、图像识别,每个点都能继续扩展,最后变成一个永远做不完的学习平台。所以我觉得它下一阶段最适合先收缩成一个清晰闭环:

  1. 能按主题或 JLPT 级别浏览词汇
  2. 能收藏和标记掌握状态
  3. 能每天复习一小组
  4. 能通过发音和简单测验形成反馈

先把“记住一个词”这件事跑通,再考虑更复杂的图像识别和影视台词扩展,会更容易做出真正能长期使用的版本。

三个项目的差异

放在一起看,这三个 App 的差异其实挺清楚。

Suipian 是功能最厚的一个,重点在信息组织:同一批生活记录,要能通过时间、地点、故事线、标签、统计和系统搜索不断被重新访问。

Daywise 是模型最克制的一个,重点在计算:一个物品、一段时间、一个价格,最后落到一个“日耗”指标。只要这个指标足够清楚,App 就有存在价值。

KotobaNyan 是路线最开放的一个,重点在学习闭环:词库只是开始,真正决定它价值的是复习机制、学习进度和反馈方式。

它们刚好对应三种个人 App 的典型形态:

技术选择上的一些感受

这几个项目共同选择 iOS 17+,意味着可以比较自然地使用 SwiftData 和新一代 SwiftUI 写法。对个人项目来说,这有个好处:不用背太多历史包袱,能直接围绕当前系统能力设计。

但手机软件和桌面工具不太一样。桌面工具常常是“功能入口越全越好”,手机 App 则更看重主路径是否短。比如:

这也是近期 Suipian 多次打磨工具栏和 Tab 状态的原因:手机屏幕空间小,入口一乱,功能越多越像负担。

后续可以继续打磨的方向

如果继续往下做,我觉得可以分三条线推进。

Suipian 优先继续打磨信息回看体验。记录已经很丰富了,下一步最有价值的是让用户更容易“重新发现旧内容”:更好的搜索结果排序、更自然的故事线生成、更轻量的年度/月度回顾。

Daywise 优先保证金额和状态逻辑可靠。比如不同货币、退款、赠品、部分出售、折旧区间这些边界场景,一旦处理清楚,它就会从一个小工具变成真正可信的个人消费账本。

KotobaNyan 优先做最小学习闭环。别急着把所有想法都铺开,先让词库、掌握状态、每日复习、发音反馈形成一个可持续使用的节奏。

小结

这几个 iOS 项目看下来,最明显的变化是:开发重点从“把一个技术点跑通”,慢慢转向“让一个日常场景在手机上成立”。

Suipian 在处理生活记忆,Daywise 在处理消费判断,KotobaNyan 在处理学习反馈。它们都不一定需要庞大的后端,也不一定需要复杂的架构;更重要的是把一个小问题持续打磨到足够顺手。

个人项目最迷人的地方也在这里:不是一开始就做一个很大的东西,而是从一个自己真的会用的小入口开始,然后一点点长出形状。