本网站使用 Kohei Koyanagi 开发的软件自动翻译为多种语言。为确保准确,请参考原始 英文 版本。

Splync v1.5 — 项目和类别的自定义分摊比例

Splync v1.5 可以为项目和类别自定义分摊比例

2025年9月16日,Splync v1.5 发布——就在我们的国际婚姻被城市接受的四天后。在此更新之前,Splync 无法自定义分摊比例;每项费用默认均分。有了 v1.5,用户现在可以为每个项目和类别设置自定义比例。这一变化使得情侣和朋友可以更真实地反映他们的生活,而不是简单的 50:50。你可以从十月开始一个新的财务项目,为日常开销设定 60:40 的分摊比例,同时,如果你们都觉得公平,可以将公寓租金保持在 50:50。如果觉得杂货更适合 70:30,而水电费更适合 62:38,你现在可以在同一项目中分别为每个类别分配这些比例。

如何设置自定义比例

v1.5 中最明显的变化是新增的“成员与默认分摊”部分,你可以在这里添加项目成员并为每个人分配默认份额。如果一个项目有两个成员,比例可以是 50:50、40:60,或任何你觉得合适的组合。对于三个成员,可以是 33.33:33.33:33.34、50:25:25,或任何你喜欢的组合。这成为项目的默认分摊。下面,你可以滚动调整每个类别的份额,如果你希望它与项目的默认设置有所不同。当你为一个类别分配自定义比例时,它的蓝色比例标记会变成橙色——一个小小的视觉提示,表明这个类别使用的是自己的规则,而不是项目的通用规则。虽然这项变化为项目设置增加了更多灵活性,但也使创建/编辑项目视图更加复杂。为此,我在每个部分添加了信息按钮,你可以点击查看小型问答助手。

Splync 如何实施自定义比例

实施这一变化比我预想的复杂。Splync 一直假设一个干净的 50:50 世界——一个数字,应用于所有地方,数学计算完成。一旦我决定支持自定义比例,整个内部结构就必须重新思考。一个项目不能再依赖单一的共享百分比。每个类别需要自己的比例,每个费用必须参考项目级默认和类别级重写。为了实现这一点,我从基础重新编写了计算逻辑。每个费用现在都有一个小决策树:“这个类别有自己的比例吗?如果有,用它。如果没有,退回到项目比例。”当你解释时听起来很简单,但保持数据模型在应用中一致——iOS 视图、FastAPI 后端和 MariaDB 模式——需要比我预期更多的细致调整。

服务器上的更改

任何涉及服务器端的更新都必须非常谨慎地处理。如果你不小心修改了现有的服务器代码,仍在使用 v1.4 的用户将立即遇到错误或系统故障。例如,v1.5 的服务器程序期望项目设置包括比例数据,但 v1.4 应用发送的项目设置根本没有任何比例。当这两个版本试图通信时,请求失败——仅仅因为它们说“语言”略有不同。开发人员当然可以在测试环境中安全更改。在提交新版本供 Apple 审核,而现有用户仍在使用 v1.4 后,棘手的部分开始了。在从提交到发布的整个期间,服务器必须同时支持两个版本,以便 Apple 审核人员可以测试 v1.5,现有用户可以继续使用 v1.4,毫不间断。

版本更新期间的端点管理

在应用开发中,“端点”只是应用在服务器上发送请求的地方——有点像市政厅的特定窗口。一个窗口处理婚姻登记,另一个处理居民记录,另一个处理护照。应用的工作方式相同:每个端点都是一个专用窗口,服务器接受特定类型的请求,如登录、项目创建、费用编辑、好友请求等。当 Splync v1.4 发送请求时,它会到“旧”窗口,理解旧格式。Splync v1.5 发送的请求到“新”窗口,理解比例数据。如果服务器过早关闭旧窗口,v1.4 用户将无处“提交”他们的数据。这就是为什么在更新期间,服务器需要保持两个窗口开放——两个端点——直到每个用户都安全地迁移到新版本。说实话,同时管理这两个窗口感觉就像在另一个维度思考。

单项费用分摊怎么办

Splync v1.5 可以为项目和类别自定义分摊,但尚未支持单项费用的分摊。要支持单项费用比例,我们需要另一个结构层——基本上是对每项费用如何存储和计算其份额的更深入重写。我们还必须小心,不要仅仅为了增加功能而使应用界面突然复杂化。这比听起来要大的升级。请再给我们一些时间。这在我们的计划中——我们会实现的。在此之前,让我们探索新的每项目和每类别比例如何已经使共享费用更加灵活。