Pythonで家計管理ツール「money-flow」を開発しました|機能・開発背景を紹介

目次

はじめに

こんにちは、エンジニアくんです。

今回は、自作の家計管理ツール 「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アプリケーション開発
  • データベース設計
  • データ処理
  • 保守性を意識した設計

など、多くのことを学ぶことができました。

実際に「使うためのソフトウェア」を作ることで、実務にも通じる経験になったと感じています。


今回の開発では、機能を作るだけでなく「あとから読みやすいコード」を意識して実装しました。

その考え方を学ぶうえで、とても参考になったのが『リーダブルコード』です。

クラス設計や関数分割、命名など、実際の開発でも役立つ内容が数多く紹介されています。

購入はこちらから

\楽天ポイント4倍セール!/
楽天市場
\商品券4%還元!/
Yahooショッピング

まとめ

今回は、自作家計管理ツール money-flow を紹介しました。

今後も機能追加や改善を続けながら、より便利なツールに育てていきたいと思っています。

このブログでは、PythonやC/C++、ソフトウェア開発についても発信していますので、興味のある方はぜひ他の記事もご覧ください。

また、Pythonによる業務効率化ツールやデスクトップアプリの開発についても対応可能です。

「こんなツールが作れないか相談したい」という方は、お気軽にお問い合わせください。

技術に関するご相談・開発・自動化ツール作成・記事執筆などのご依頼も承っています。

小さなご相談からでもお気軽にご連絡ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする


目次