このサイトは小柳耕平が開発したソフトウェアで自動翻訳されています。正確な内容は元の 英語版 をご確認ください。

Splync v1.9で各費用の分担比率をカスタマイズ可能に

Splyncへのユーザーの声

Splync v1.5のリリースから約1か月半が経過し、プロジェクトやカテゴリーごとのカスタム分担比率を可能にした更新版に対して、新たなフィードバックが寄せられました。v1.5のアップデートではサーバー側の大幅な変更が必要でしたが、その時点ではほとんどの用途に「十分」だと考えていました。しかし、数人の新しいユーザーから「個々の費用ごとにカスタム分担比率を設定できますか?」という合理的な質問がありました。彼らの旅行プロジェクトでは、特定の費用を2人だけで分担する時もあれば、3人全員で分担したい時もありました。Splync v1.8では、残念ながらそれはできませんでした。そのため、特定のケースに合わせたカスタム比率を持つ追加のカテゴリーを作成する方法を説明しましたが、これは回避策であって、真の解決策ではありませんでした。

圧倒されるフラクタルフォレスト

v1.5にどれだけの作業が必要だったかを思い出すと、少し圧倒される感じがしました。まずプロジェクトごとに分担比率を持たせることから始まり、次にカテゴリーごとのカスタム比率が必要になりました。その時点で、すべての枝から果実を集めて全体を網羅したと思っていました。しかし、費用ごとの比率に取り組むのは違いました。果実を摘むたびに新しい木がその場から芽生えるような気がしました。無限のフラクタルフォレストではなく、次の層を生み出す明確な二階層構造です。v1.5のロジックでは、費用は最初にプロジェクトの比率を継承し、カテゴリーにカスタム比率がある場合はそれがプロジェクトの値を上書きしました。費用ごとの比率を追加する際、さらにその上にもう一つの上書きを追加しようとしている自分に気付きました。この構造は上書きの階段のようになり、技術的には正しいのですが、頭の中が混乱しました。

Splync v1.9におけるパラダイムの変化

最終的に突破口は、構造を逆転させることから生まれました。「プロジェクト→カテゴリー→費用」と各層を次に上書きするのではなく、逆の方向に考えてみてはどうでしょうか?費用ごとのシェア→カテゴリーごとのシェア→プロジェクトごとのシェア。この順序は、実際の人々が考える方法に反映されています。特定の費用に独自のルールがある場合は、それに従えば良いのです。それがない場合、カテゴリーのパターンが理にかなっています。それでもうまくいかない場合は、プロジェクトのデフォルトに戻ります。上書きの階段はもうありません。優先順位の明確な階層があるだけです。このように構造を見た時、疑似フラクタルフォレストの霧が一瞬で晴れました。実装の道筋は明らかになりました。「各費用は、費用ごとのカスタムシェアがあるかどうかを確認されます。あればそれを使用し、なければカテゴリーごとのシェアを確認し、それでもなければプロジェクトのデフォルトを使用します。」

空の下を歩く

新しいロジックはシンプルで予測可能で数学的にも正確に感じました。この優先順位システムをサポートするために、費用ごとの分割に専用のMariaDBテーブルを追加しました。これはカテゴリーごとの分割テーブルを反映するようなものです。費用詳細テーブルも、以前のv1.5でカテゴリー詳細テーブルを拡張したのと同様に拡張が必要でした。この基盤となる「二階層」設計が明確になったら、残りはアプリとサーバーの両方で慎重なコーディングだけでした。それでも、地図のない暗い森を歩いているような危険を感じる場所もありました。頭をクリアにしたくて外に出たところ、空気は鋭く清らかでした。近所を歩くうちに、遠くにそびえる富士山を見ました。およそ100km先にあるにもかかわらず、まるで手が届くほど近くに見えました。その瞬間は思い出させてくれました。自分が森の中を歩いていると思っても、実際には広い空の下を歩いているのだと。

Splync v1.9でできること — 各費用のカスタム分割

Splync v1.9は、まさにそのクリアな瞬間から生まれました。家に戻り、新しいエンドポイントの配線を終え、新しいサーバーロジックを準備し、関連するインターフェイスを整理し、Appleにv1.9を提出して、ついに眠りにつきました。レビューはいつもより早く終わりました。目が覚めると、Splync v1.9はすでに承認され、App Storeで自動的にリリースされていました。このバージョンから、分割がはるかに柔軟になります。JohnとKateと旅行している場合、基本的な費用を3人で均等に分けることができます。しかし、食事の場合、Johnが通常2倍食べるので、「25% : 50% : 25%」の分割に切り替えることができます。そして、Johnがある夕食をスキップする場合、例えばオイスターレストランでの食事、特定の食事を「50% : 0% : 50%」に設定し、彼が食べなかったものに対して支払わないようにできます。v1.9では、Splyncはプロジェクトごと、カテゴリーごと、費用ごとの比率を統一されたロジックでサポートするようになりました。基盤は安定しており、数学的にもしっかりしています。次の課題はインターフェイスです。他の分割アプリは、これらの比率を調整するためのよりスムーズでスタイリッシュな方法を提供しています。Splyncは今、そうした改善を支えるバックエンドの強さを持っています。一つずつ取り組んでいきます。