この記事は広告を含みます
はじめに
こんにちは、エンジニアくんです。
今回は、自作の家計管理ツール 「money-flow」 を紹介します。
普段の家計管理では、クレジットカードの利用明細や銀行口座の履歴を確認する機会が多いですが、
- 毎月CSVを整理するのが面倒
- 支出の傾向が分かりにくい
- 家計簿を長続きさせるのが難しい
と感じることがありました。
そこで、「もっとシンプルに家計を見える化したい」という思いから、Pythonでデスクトップアプリを開発しました。
この記事では、
- 開発した理由
- 主な機能
- 使用技術
- 工夫したポイント
- 今後追加したい機能
について紹介します。

money-flowとは?
money-flowは、家計管理を少しでも楽にするために開発したPython製のデスクトップアプリです。
CSVファイルを読み込み、支出を整理・分析し、家計の状況を分かりやすく確認できます。
「毎月の面倒な集計作業をできるだけ自動化すること」をコンセプトに開発しました。
このプロジェクトはGitHubで公開しています。
開発した理由
家計簿アプリは数多くありますが、
- 自分が欲しい機能だけをシンプルに使いたい
- データを自分で管理したい
- Pythonで実用的なアプリケーションを開発してみたい
という思いがありました。
実際に毎月の支出を整理していると、
「同じような作業を何度も繰り返している」
ことに気付きました。
プログラムで自動化できる部分は自動化し、人が考える時間を減らすことを目標にしています。
主な機能
現在搭載している主な機能は次のとおりです。
- CSVファイルの読み込み
- 支出データの一覧表示
- カテゴリ分類
- 月別集計
- データの保存
- Excel形式での出力
- シンプルで使いやすいGUI



画面はできるだけ操作に迷わないよう、必要な機能だけを配置しています。
使用技術
今回の開発では、以下の技術を使用しています。
- Python
- Tkinter
- pandas
- SQLite
- openpyxl
Pythonはデータ処理との相性が良く、GUIアプリケーションも比較的短期間で開発できます。
SQLiteを採用したことで、設定やデータの保存もしやすくなりました。
工夫したポイント
シンプルな操作性
「説明書を読まなくても使える」ことを意識して画面を設計しました。
ボタンの数を必要最小限にし、よく使う操作へすぐアクセスできるようにしています。
拡張しやすい設計
今後の機能追加を考え、処理をできるだけ分割して実装しました。
将来的には新しい分析機能や対応カードを追加しやすい構成になっています。
データをローカルで管理
データは基本的にローカル環境で扱うため、自分のPC上で完結できます。
クラウドサービスへアップロードする必要がなく、安心して利用できます。
開発で苦労したこと
一番苦労したのは、アプリ全体の設計です。
機能を増やすことは比較的簡単ですが、あとから保守しやすい構成を考えることには時間をかけました。
また、
- CSVデータの扱い
- 日付処理
- データベース設計
- GUIのレイアウト調整
なども試行錯誤を繰り返しながら改善しています。
今後追加したい機能
まだ開発途中ですが、今後は次のような機能も追加したいと考えています。
- 複数カードへの対応
- より細かなカテゴリ分析
- グラフ表示の強化
- 年間レポート
- 予算管理
- AIによる支出分析
継続的に改善しながら、より使いやすいツールを目指していきます。
この開発で得られたこと
今回の開発では、Pythonの文法だけでなく、
- GUIアプリケーション開発
- データベース設計
- データ処理
- 保守性を意識した設計
など、多くのことを学ぶことができました。
実際に「使うためのソフトウェア」を作ることで、実務にも通じる経験になったと感じています。
今回の開発では、機能を作るだけでなく「あとから読みやすいコード」を意識して実装しました。
その考え方を学ぶうえで、とても参考になったのが『リーダブルコード』です。
クラス設計や関数分割、命名など、実際の開発でも役立つ内容が数多く紹介されています。

購入はこちらから
まとめ
今回は、自作家計管理ツール money-flow を紹介しました。
今後も機能追加や改善を続けながら、より便利なツールに育てていきたいと思っています。
このブログでは、PythonやC/C++、ソフトウェア開発についても発信していますので、興味のある方はぜひ他の記事もご覧ください。


また、Pythonによる業務効率化ツールやデスクトップアプリの開発についても対応可能です。
「こんなツールが作れないか相談したい」という方は、お気軽にお問い合わせください。
技術に関するご相談・開発・自動化ツール作成・記事執筆などのご依頼も承っています。
小さなご相談からでもお気軽にご連絡ください。

コメント