家計簿アプリの作り方:カテゴリー、取引、インポート、レポート
家計簿アプリは、各カテゴリーで計画した支出額、実際に使った額、そして残りの金額を教えてくれます。作るには、口座、カテゴリー、カテゴリーごとの月次予算、取引、そしていくつかの分かりやすいレポートが必要です。全体を左右する2つの判断は、予算管理の方法と、取引をアプリにどう取り込むかです。取引は手入力するか、銀行のCSVファイルからインポートするか、銀行連携で取得するかのいずれかです。最初はCSVインポートから始めましょう。少ない手間とリスクで、ほとんどの価値を得られます。
このガイドはソフトウェアの作り方についてのものです。金融アドバイスではありません。
最初に予算管理の方法を選ぶ
どの方法を使うかで画面と計算が決まるので、プロンプトを書く前に選んでおきましょう。
| 方法 | 仕組み | アプリに表示されるもの |
|---|---|---|
| カテゴリーごとの上限 | カテゴリーごとに月の上限を設定する | カテゴリーごとの支出と上限の比較、進捗バー |
| ゼロベース | 収入のすべてに用途を割り当て、割り当てのない金額がゼロになるまで続ける | 「未割り当て」残高。カテゴリー間で金額を移動する |
| 50/30/20型の配分 | 収入を必需品、欲しいもの、貯蓄の割合に分ける | 3つの区分と、それぞれの進み具合 |
| 封筒方式 | カテゴリーごとに固定額を決め、余った金額は翌月に繰り越す | 月をまたいで繰り越される封筒ごとの残高 |
カテゴリーごとの上限は、最も作りやすく理解もしやすい方式です。ゼロベースや封筒方式には繰り越しのロジックが必要で、月末にカテゴリーに残った金額をどう扱うか、カテゴリーが予算を超えたときにどうするかを決める必要があります。
家計簿アプリに必要なもの
ページ
- 今月 — カテゴリーごとの予算額、支出額、残額。合計の収入と合計の支出。
- 取引 — 日付、支払先、金額、カテゴリー、口座を並べた一覧。フィルターと検索、そしてすばやいカテゴリーの変更。
- インポート — CSVをアップロードし、列を対応づけ、プレビューして、確定する。
- 予算の設定 — カテゴリー、グループ(住居、食費、交通費など)、月ごとの金額。
- 口座 — 普通預金、貯蓄、クレジットカード、現金。残高付き。
- レポート — 時間経過によるカテゴリー別の支出、収入と支出の比較、月ごとの比較。グラフの選び方はダッシュボードの作り方をご覧ください。
データ
- 口座 — 名前、種類、通貨、開始時の残高。
- カテゴリー — 名前、グループ、並び順、アーカイブ済みかどうか。
- 予算 — カテゴリー、月、金額。
- 取引 — 口座、日付、支払先、金額、カテゴリー、メモ、インポートID、消込み済みかどうか。
- ルール — 「支払先に TESCO を含む → 食料品」のように、インポート時に適用される条件。
- 振替 — 自分の2つの口座間を結ぶ、対になった取引。貯蓄への移動が支出として数えられないようにします。
権限
個人の予算には所有者が1人います。世帯の予算には、データを所有する世帯を共有し、それぞれのパートナーが別々にログインする形が必要です。どちらの場合も、その世帯の外の人が1行でも見られてはいけません。全く関係のない2人目のユーザーとしてサインインして確認してください。
お金を正しく扱う
金融系のアプリは、小さく、そして恥ずかしいミスで壊れることがよくあります。次のルールをプロンプトに入れてください。
- 金額は最小単位(セント、ペンス)の整数で保存し、通貨コードを付ける。浮動小数点数では0.30000000000000004のような合計になってしまいます。
- 符号を統一する。 支出はマイナス、収入はプラスにするか、別の方向のフィールドを使う。ただし両方を混在させてはいけません。
- 振替は支出ではない。 振替の両側をリンクし、カテゴリーの合計から除外する。
- 返金は元のカテゴリーの支出を減らす。 収入として数えてはいけません。
- 月の区切りは利用者のタイムゾーンに従う。 31日の午後11時の取引が翌月に入ってしまわないようにする。
- 最初のバージョンでは予算ごとに通貨は1つ。 複数通貨には為替レートと、どのレートを使うかの決定が必要です。
取引を取り込む
| 方法 | 作る手間 | 補足 |
|---|---|---|
| 手入力 | 少ない | 現金の記録には十分だが、ほかはとても手間がかかる |
| CSVインポート | 少ない〜中程度 | 多くの銀行は取引をダウンロードできる。ただし列の形式は銀行ごとに異なるため、利用者が列を対応づけて、その対応を保存できるようにする |
| 銀行連携 | 多い | Plaidやオープンバンキングのアグリゲーターを使う。開発者アカウント、承認、継続的な費用、そして高度なセキュリティ対応が必要 |
CSVインポートでは重複を防いでください。日付・金額・説明の指紋またはインポートIDを保存し、すでに見た行はスキップします。インポート時にカテゴリーのルールを適用すれば、大部分の行は分類済みの状態で入ってきます。
あとから銀行連携を追加する場合は、プロバイダーのAPIキーをサーバー側に置き続け、利用者に銀行のパスワードを決して尋ねないでください。APIキーを安全に管理する方法をご覧ください。
最初に効くプロンプトの例
2人で使う世帯向けの家計簿Webアプリを作ってください。私たちはカテゴリーごとの上限方式を使います。カテゴリーはグループ分けされ(住居、食費、交通費、娯楽、貯蓄)、それぞれに月の予算額があります。ホーム画面には今月の情報を表示します。カテゴリーごとの予算、支出、残額を進捗バーで示し、合計の収入と合計の支出も表示してください。口座は複数あります(普通預金、貯蓄、クレジットカード)。取引には日付、支払先、金額、口座、カテゴリー、メモがあります。金額は通貨コード付きの整数(セント単位)で保存してください。自分たちの口座間の振替は対になった取引としてリンクし、支出には数えないでください。返金はそのカテゴリーの支出を減らします。CSVインポートを追加してください。アップロード、銀行ごとに一度だけ列の対応づけを行い、その対応を記憶する、プレビュー、重複のスキップ、「TESCOを含む → 食料品」のような支払先ルールの適用を行います。レポートとして、カテゴリー別の月ごとの支出と、過去12か月の収入と支出の比較を表示してください。私たちはそれぞれメールアドレスとパスワードでログインし、1つの世帯を共有します。ほかの誰もデータを見られないようにしてください。データベースに保存するアプリで、スマートフォンでも見やすくしてください。
構築の手順
- サンプルデータを使ってカテゴリーと今月のビューを作る。 小さなデータセットで計算を手で確かめます。
- 取引の一覧とすばやいカテゴリー変更。 カテゴリーの変更が1回のタップでできるようにします。
- CSVインポート。 自分の銀行の実際のエクスポートを試してください。同じファイルを2回インポートして、何も重複しないことを確認します。
- ルール。 支出の大部分をカバーする10の支払先を登録します。
- 振替と返金。 両方をテストし、カテゴリーの合計を確認します。
- ログインと世帯。 アプリにログインを追加する方法をご覧ください。
- レポート。 数か月分のデータが溜まったら作ります。
- セキュリティレビュー。 実際のデータを預ける前に、AIで作ったアプリのセキュリティチェックリストを一通り確認してください。
よくある間違い
- 浮動小数点数でお金を扱う。 整数のセント単位を使ってください。
- 振替を支出として数える。 貯蓄への積み立てが使いすぎに見えてしまいます。
- インポートの重複。 重複チェックがなければ、再インポートのたびに支出が2倍になります。
- 銀行連携から始める。 アプリが役に立つかどうかが分かる前に、多くの作業とリスクを負うことになります。
- 銀行のパスワードやカード番号を保存する。 絶対にやめてください。
- エクスポートがない。 人々はデータを表計算ソフトで扱いたがるので、CSVエクスポートを追加しましょう。
- カテゴリーが多すぎる。 20もあれば十分です。300もあれば、それはもう表計算ソフトです。
既製の家計簿アプリのほうが適している場合
既存の家計簿アプリは、多くの金融機関に対応した安全な銀行連携、モバイルアプリ、そして長年積み重ねられた例外処理を提供しています。自動の銀行同期が最も重要であれば、そうしたアプリの1つを使うのが現実的な選択です。
自作が向いているのは、既存アプリのモデルに自分の方法が合わない場合、自分の金融データを別の会社に預けたくない場合、月に数回のCSVインポートで十分な場合、あるいはクラブの会計係、小さな慈善団体、コーチングのプログラムといった特定の集まりのための家計簿ツールを作る場合です。予算がいまスプレッドシートにあるなら、スプレッドシートをアプリに変える方法が移行の参考になります。事業やチームの支出を記録したい場合(家計ではなく)は、経費トラッカーの作り方をご覧ください。
Mythexでの構築
Mythexでは、上のプロンプトからこの家計簿アプリを作れます。チャットで説明し、ライブプレビューで確認して、公開します。必要になった時点で専用のPostgresデータベースが追加されます。ログインは持ち込み型で、銀行データのプロバイダーも同様です。そのAPIキーはプロジェクトのシークレットとして保存し、エージェントがサーバー側で組み込みます。Mythexには銀行連携の機能は組み込まれていません。出発点としては、家計簿ダッシュボードのテンプレートが役立ちます。このテンプレートは、CSVインポートと予算差異のレポートを中心に作られています。
よくある質問
自分で家計簿アプリを作れますか?
はい、作れます。家計簿アプリの中心は、カテゴリー、月ごとの予算額、取引であり、その上にレポートを載せるだけです。AIアプリビルダーは説明から作れます。主な判断は、どの予算管理方法を使うか、そして取引をアプリにどう取り込むかです。
家計簿アプリはどうやって銀行口座に接続しているのですか?
通常は、Plaidのような銀行データのアグリゲーターを経由するか、利用可能な場合はオープンバンキングAPIを通じて接続しています。これには開発者アカウント、場合によっては承認、そして慎重なセキュリティ対策が必要です。銀行からダウンロードしたCSVファイルをインポートする方式のほうがずっと簡単で、最初のバージョンとして適しています。
家計簿アプリは金額をどのように保存すべきですか?
金額は、通貨コードと一緒に、最小単位(セントなど)の整数として保存してください。浮動小数点数で保存すると、多くの取引を合計したときに丸め誤差が生じるのを防げます。
自作のアプリに金融データを入れても安全ですか?
次の条件を満たせば安全に使えます。ログインを必須にし、利用者ごとのデータを分離し、シークレットはサーバー側に保存し、HTTPSで通信することです。銀行のパスワードやカード番号の全桁を保存するのは避けてください。他の人のデータを入れる前に、セキュリティチェックリストでアプリを確認しましょう。