时间飞逝,上一次写《个人开源计划》还是上次(不是),这期间也发生了不少事情,趁着年底把这小半年的事情来回顾记录一下。

🧑🏻‍💻 工作

  • BeanLedger App
    • 从今年夏天发布以来,一共发布了 24 个版本,基本实现了当初做这个 App 的功能设计目标
    • 唯一一个想做但还未实现的大功能是对不同大类/小类投资品种的比例的呈现,但这个功能如果不能自动更新资产数据,会大大加重用户的数据维护负担,目前看比较难跟现有功能整合得比较好。准备明年做一个新的 App 来满足我自己这方面的需求。
    • 现在总结下来,使用 SwiftData 作为本地数据框架是做这个 App 最大的选型失败,极大地阻碍了需要改动数据模型的新功能的实现。粗略估计,我开发过程中遇到的 80% 以上的问题(甚至是上线后的崩溃)都是这个官方框架带来的。SwiftData 在发布时其实有不错的顶层设计和概念,如果只是粗浅的使用也不大会感受到问题。但一旦数据模型变得复杂,并且需要开启 iCloud 数据自动同步功能后,所有的潜在问题都冒出来了,这对于功能都在本地运行的 App 几乎是处处踩坑。我不想过多地揣测我不知道的事情,但从 SwiftData 在不同版本之间不稳定的表现和很多明显缺失的基础功能来看,我只能理解为具体实现这个框架的团队技术能力有限,根本没有用心,大概率也是苹果内部团队在屎山代码上雕花的产出。明年会认真看看是不是能迁移到几个月前 Point-Free 团队刚发布的 SQLiteData 框架上,但已经上线的产品的数据迁移也不是一件轻松的事情,一不小心就可能会造成用户数据丢失,需要加倍谨慎。所以在迁移之前,会先实现数据导出/备份的功能。
      阅读全文 »

为什么要记账?

记账是投资入门的首要前提,如果不能在投资过程中随时了解自己的资金情况和分配于各个投资策略之间的仓位比例,那么你就像一个在战场上高度近视还丢了眼镜的战士,所有行为和操作基本都是睁眼瞎。

记账是一个人开始认真对待自己资产的开始。

所以,记账的目的是什么?是为了在搞明白自己的收入、支出、负债、现金流等财务数据之后,来更好地指导我们的投资行为。因为你真实的记账数据能反映你真实的财务状况,那从这些数据中产生的丰富洞察和分析,可以指导我们进行正确的资产配置和财务管理。我们记账系统的所有设计都应该围绕这个目的而展开。

阅读全文 »

又是月末,照例进行更新和复盘。

🧑🏻‍💻 工作

  • 财务类 App BeanLedger 发布 2.0,使用全新 UI 风格!
    • 上一篇《开源计划》已经提到刚在大陆地区上架时在小红书随手发了一篇帖子,吸引了不少关注,同时也收到了很多愿意尝试的用户的反馈,虽然也有少数用户很喜欢第一版的 UI,但大多数用户吐槽最多还是第一版的 UI 风格过于硬核,正好我也打算适配 iOS 26 的新的 UI 风格,于是干脆重新写了新的 UI 风格并更新了 2.0 新版。虽然也没有经过专业的设计,但是有了第一版的经验,并从诸多真实的用户交互的反馈中学习,我自认为新版的 UI/UX 还是改进了很多的。
    • 2.0 之后会着重在新功能的实现和代码、性能的改进,已经实现了部分了。
    • 功能和界面都比较稳定之后会开始补充设计思路和使用说明的文档。
    • 整个这个月都做了很多改进和修复,代码变动还挺频繁的,大陆地区上线第一周甚至发了 5 个新版本。目前依然有不少值得关注的问题,尤其是跟 SwiftData 相关的,这几乎是造成目前代码中绝大部分问题的源泉,需要找个时间彻底把跟数据交互的代码重构一遍。
      阅读全文 »

六月的最后一天,也是 2025 年上半年的结束,正好又赶上我的新财务类工具 App —— BeanLedger —— 在大陆地区 App Store 上架第一周,是很适合写一篇新的《开源计划》做一些回顾和总结的。

🧑🏻‍💻 工作

  • 财务类 App BeanLedger 终于上架了!🎉
    • 其实在其他地区 App Store 已经上架两周了,上架的第一周甚至连发了 5 个新版本解决一些明显的问题和设计错误(不得不再次吐槽,我 debug 的 80%+ 的事件几乎都是在跟 SwiftData 和 iCloud 的数据同步作斗争,虽然已经看过很多文档和教程,但我觉得新手依然还是会该踩的坑全部踩一遍,因为这个框架本身就还远未成熟,有不少明显的缺陷和问题)。在无 ICP 备案的情况下,本来以为审核通过就能全球一起上架,后来发现大陆地区 App Store 无通知直接屏蔽分发了。提起申诉额外花了一些时间,终于在两周后也在大陆地区上架了。
    • 大陆上架后随手在小红书发了一篇帖子,没想到还吸引了挺多的关注,一整个大 overwhelming。我深知第一版还挺简陋,很多预想的功能还没有实现,UI/UX 也是我完全基于功能性出发直接用 SwiftUI 框架码出来的,并未经过专业的设计和审视,显得非常原始硬核、配色比较杂乱,所以也收到了许多各式各样的争议和反馈,好的坏的都有。根据反馈,有些比较紧急的问题也修复并发布了新版本,也把许多不错的建议和反馈融入了更长期的迭代优化的计划中去。
    • 不少陌生网友仅根据我随手发的一篇帖子就去试用并且给出很长篇的使用体验反馈,蛮让我感动的!也增强了我要不断把它做好的决心。
    • 截止我写这一篇博客的时候,已经有接近 9000 个用户下载了我的 App,其中有 4000 多个成为了会员(虽然很多网友是因为上架首周「终身会员」限免的活动才来的,但我依然非常感谢)。我觉得对于一个刚上架一周的 App 来说,已经是让我受宠若惊了。
      阅读全文 »

一个多月没有更新了,这期间主要精力都在备婚并且在老家办了婚礼,也是完结了一件大事,现在终于有时间来更新一篇《开源计划》。

🧑🏻‍💻 工作

  • 财务类 App 最新的进展如下:
    • 对统计图表页的所有图表和列表进行了全面的重构,让它们更美观和实用
    • 增加了对「交易事件」的统计页面
    • 增加「一键结汇」功能,允许用户用基准货币对历史财务数据进行结汇
    • 增加「数据归集」功能,允许用户将历史数据进行汇总
    • 增加对交易列表过滤「大额交易」的功能
    • 增加了更多搜索功能的可用过滤条件,在其他列表页也相应增加了更多过滤条件
    • 允许用户自定义打开 App 的首页,但同时也支持在不同情况下依然遵循 App 打开时的自然逻辑
    • 实现了 Pro 功能仅对付费会员用户开放的限制逻辑,对会员功能添加了 Pro 标记
    • 修改了使用 iCloud sync data 的逻辑 —— iOS 本身对使用 iCloud 进行数据同步的限制很多且非常不灵活,所以为了 App 的稳定性暂时放弃了一些自定义数据同步逻辑的想法
    • 多项 UI 优化和 bug 修复
    • 使用 LazyView 优化启动 App 时的性能

我预想的第一个版本的功能都已经实现了,接下来会专注于 App 备案(难绷 >_<)、注册软件著作权和商标,实现一些平台合规的要求,预计下一次更新《开源计划》之前就会正式发布上架第一个版本!🎉

阅读全文 »
0%