Skip to content

paraccoli/flutter_finance_app

Repository files navigation

Money:G - 個人財務管理アプリ

Money:G Logo

Flutter Dart License: MIT Android iOS Version

あなたの財産、あなた以外誰にも渡すな。

「あなたの資産は、あなたが守る。外部送信ゼロ、完全オフライン家計簿。」

アプリ概要

Money:Gは完全ローカル保存、通信不要の家計簿です。 サイバー攻撃が日常化する今、"見知らぬ誰かのクラウド"に自分の資産を預けるな。
多少面倒でも、情報漏洩もデータ売買も一切許さない。
このアプリは、あなた自身の手で資産を守るための武器です!

Money:Gは、個人の財務管理を簡単かつ効率的に行うためのFlutterアプリです。支出・収入の記録から投資管理まで、包括的な資産管理機能を提供します。

プライバシー重視の特徴

  • 端末ローカルの暗号化DBで超厳重保護
  • インストール直後から完全オフライン、「不安な通信」は一切なし
  • CSV入出力あり、家計管理データは全て自分だけのもの
  • データを第三者へ"絶対"に渡したくない人向け

こんな方におすすめ

  • クラウド家計簿アプリに「怖さ」を感じている
  • 資産防衛/情報漏洩/プライバシー意識が高い
  • 面倒でも「資産=命=自分で守る」が信条の人
  • 家計・投資・収入管理を1つで完結させたい

💬 ダウンロードを迷っているあなたへ

家計簿は"売るためのデータ"をつくる場所じゃない。
守るための場所だ。この思想に共感する人は、ぜひMoney:Gを試してください。

全機能一覧

基本的な財務管理

  • 支出記録
    • カテゴリ別分類(食費、交通費、光熱費、家賃、娯楽、医療費、その他)
    • カスタムカテゴリ(v1.3.1新機能)- 独自のカテゴリ作成が可能
    • 金額、日付、メモの記録
    • クイック支出登録
  • 収入記録
    • カテゴリ別分類(給与、副業、投資、その他)
    • カスタムカテゴリ(v1.3.1新機能)- 独自のカテゴリ作成が可能
    • 金額、日付、メモの記録
    • クイック収入登録

カスタムカテゴリ機能(v1.3.1新機能)

  • 無制限のカテゴリ作成
    • 収入・支出それぞれで独自カテゴリを作成
    • 既存のプリセットカテゴリに加えて利用可能
  • 視覚的カスタマイズ
    • 20色のプリセットカラーから選択
    • カテゴリ別に整理されたアイコンライブラリ
    • リアルタイムプレビュー機能
  • カテゴリ管理
    • 設定からの簡単アクセス
    • 編集・削除機能
    • ドラッグ&ドロップによる並び替え
    • 重複防止機能

分析・レポート機能

  • 月次レポート
    • 支出内訳の棒グラフ表示(v1.2.2で円グラフから改善)
    • カテゴリ別支出ランキング
    • 月間収支サマリー
    • 自動的に最新データ月を選択表示
  • 資産分析
    • 収支トレンドの時系列グラフ
    • 貯蓄推移の可視化
    • 年間財務パフォーマンス分析

投資管理(NISA)

現在機能拡張のため開発途中です。

  • NISA投資記録
    • 銘柄別投資額管理
    • リアルタイム損益計算
    • 月次積立設定
  • 投資分析
    • ポートフォリオ分散度表示
    • 運用パフォーマンス分析
    • 将来予測シミュレーション

データ管理・検索

  • 高度な検索・フィルター
    • 期間指定検索
    • カテゴリ別フィルタリング
    • 金額範囲指定
  • CSV インポート/エクスポート(v1.2.2新機能)
    • CSV形式でのデータ入出力
    • 期間別・カテゴリ別エクスポート
    • 他アプリからのデータ移行対応
    • エラーハンドリングと検証機能
  • MoneyGレガシーCSVサポート(v1.3.2新機能)
    • MoneyG v1.2.2形式のCSVファイル完全サポート
    • 「支出のみ」「収入のみ」「全データ」の3形式対応
    • 自動フォーマット検出とカテゴリマッピング
    • 既存データとの重複チェック機能
  • スワイプアクション(v1.2.2新機能)
    • 収入・支出リストでのスワイプ編集
    • スワイプ削除(確認ダイアログ付き)
    • 直感的なデータ操作

バックアップ・復元

  • 完全バックアップ
    • 全データのJSON形式エクスポート
    • 自動タイムスタンプ付きファイル名
    • メタデータと統計情報を含む包括的バックアップ
  • 安全な復元
    • 複数段階確認による誤操作防止
    • バックアップファイル情報の詳細表示
    • 復元前のデータ完全性チェック

予算・目標管理

  • リアルタイム予算管理(v1.2.2で改善)
    • カテゴリ別月間予算設定
    • リアルタイム予算使用率の可視化
    • 即座に反映される予算超過アラート
    • 予算設定の即時更新・反映
  • 目標設定
    • 貯蓄目標の設定・追跡
    • 達成率の進捗表示

通知・リマインダー

  • スマート通知
    • 記録忘れ防止リマインダー
    • 予算超過アラート
    • 定期支出・収入の通知

カスタマイズ・設定

  • 外観設定
    • ダークモード切り替え
    • Material Designテーマ
    • スプラッシュスクリーン(v1.2.2新機能)
  • データ管理
    • 完全データ削除機能
    • CSV インポート/エクスポート機能
    • 統計情報の表示
  • アプリ情報
    • バージョン情報
    • 開発者リンク(GitHub/X)
    • ヘルプ・FAQ

収益化・プレミアム機能

  • 広告システム
    • アプリ起動時のインタースティシャル広告
    • 画面下部のバナー広告
    • 30分間隔の定期全画面広告
  • プレミアム版
    • 広告完全非表示
    • 月額200円のサブスクリプション
    • 設定画面からの簡単アップグレード

技術選定

フレームワーク・言語

  • Flutter 3.8.1+ - クロスプラットフォーム開発
  • Dart 3.8.1+ - アプリケーション言語

状態管理・アーキテクチャ

  • Provider - 状態管理
  • MVVM パターン - アーキテクチャ

データベース・ストレージ

  • SQLite (sqflite) - ローカルデータベース
  • sqflite_common_ffi - デスクトップ対応
  • SharedPreferences - 設定データ保存
  • カスタムカテゴリテーブル - v1.3.1で追加されたカスタムカテゴリ専用テーブル

UI・UX

  • Material Design 3 - デザインシステム
  • Google Fonts - タイポグラフィ
  • FL Chart - グラフ表示

機能拡張

  • flutter_local_notifications - ローカル通知(v1.2.2で改善)
  • url_launcher - 外部リンク起動
  • package_info_plus - アプリ情報取得
  • share_plus - ネイティブ共有機能(v1.2.2でiOS対応)
  • csv - CSVファイル生成・読み取り(v1.2.2で強化)
  • file_picker - CSVファイル選択(v1.2.2新機能)
  • intl - 国際化・日付フォーマット

収益化・広告

  • google_mobile_ads - AdMob広告システム
  • in_app_purchase - アプリ内課金・プレミアム版

ファイル構成

lib/
├── main.dart                    # アプリエントリーポイント
├── models/                      # データモデル
│   ├── expense.dart            # 支出データモデル
│   ├── income.dart             # 収入データモデル
│   ├── nisa_investment.dart    # NISA投資データモデル
│   └── custom_category.dart    # カスタムカテゴリデータモデル(v1.3.1新規)
├── services/                    # ビジネスロジック・サービス
│   ├── database_service.dart   # データベース操作
│   ├── notification_service.dart # 通知サービス(v1.2.2改善)
│   ├── export_service.dart     # CSV エクスポート/インポート(v1.2.2強化)
│   ├── budget_service.dart     # 予算管理(v1.2.2新規)
│   ├── category_service.dart   # カテゴリ管理サービス(v1.3.1新規)
│   ├── admob_service.dart      # AdMob広告管理サービス(v1.4.0新規)
│   ├── purchase_service.dart   # アプリ内課金サービス(v1.4.0新規)
│   └── alert_settings_service.dart # アラート設定(v1.2.2新規)
├── viewmodels/                  # MVVM ViewModel
│   └── theme_viewmodel.dart    # テーマ状態管理
├── views/                       # 画面・UI
│   ├── home_screen.dart        # ホーム画面
│   ├── expense_screen.dart     # 支出記録画面
│   ├── income_screen.dart      # 収入記録画面
│   ├── monthly_report_screen.dart # 月次レポート
│   ├── asset_analysis_screen.dart # 資産分析
│   ├── nisa_screen.dart        # NISA管理画面
│   ├── setting_screen.dart     # 設定画面
│   ├── help_screen.dart        # ヘルプ画面
│   ├── budget_setting_screen.dart # 予算設定(v1.2.2改善)
│   ├── budget_usage_screen.dart   # 予算使用状況(v1.2.2新規)
│   ├── csv_import_screen.dart     # CSV インポート(v1.2.2新機能)
│   ├── csv_export_screen.dart     # CSV エクスポート(v1.2.2新機能)
│   ├── expense_search_screen.dart # 検索画面
│   ├── custom_category_manager_screen.dart # カスタムカテゴリ管理(v1.3.1新規)
│   ├── custom_category_editor_screen.dart # カスタムカテゴリ編集(v1.3.1新機能)
│   └── splash_screen.dart      # スプラッシュ画面(v1.2.2新機能)
├── widgets/                     # 再利用可能なウィジェット
│   ├── expense_form.dart       # 支出入力フォーム
│   ├── income_form.dart        # 収入入力フォーム
│   ├── expense_pie_chart.dart  # 支出円グラフ
│   ├── expense_bar_chart.dart  # 支出棒グラフ
│   ├── quick_expense_widget.dart # クイック支出
│   ├── quick_income_widget.dart  # クイック収入
│   ├── nisa_investment_form.dart # NISA投資フォーム
│   ├── nisa_performance_chart.dart # NISA運用グラフ
│   ├── nisa_forecast_chart.dart   # NISA予測グラフ
│   ├── nisa_asset_allocation_chart.dart # 資産配分
│   ├── nisa_performance_analysis.dart # 運用分析
│   ├── ad_banner_widget.dart   # バナー広告ウィジェット(v1.4.0新規)
│   └── background_widget.dart  # 背景ウィジェット
└── utils/                       # ユーティリティ
    └── (共通機能・ヘルパー関数)

アプリのダウンロード・インストール

一般ユーザー向け

新規インストールの場合

  1. リリースページから最新版APKをダウンロード
  2. Android端末でAPKファイルをタップしてインストール
  3. 初回セットアップを完了してご利用開始

既存バージョンからのアップデートの場合

通常のアップデート手順:

  1. 既存アプリの上に最新版APKをインストール
  2. データは自動的に引き継がれます

アップデートでエラーが発生する場合:

  1. 事前準備(重要)
    • アプリ内:設定 → データ管理 → 完全バックアップを実行
    • または:設定 → データ管理 → データエクスポートで全データをCSV出力
  2. アプリの再インストール
    • 既存のMoney:Gアプリをアンインストール
    • 最新版APKをインストール
  3. データ復元
    • 設定 → データ管理 → バックアップ復元でJSONファイルを復元
    • または:設定 → データ管理 → MoneyGデータインポートでCSVファイルを復元

⚠️ 重要: アンインストール前に必ずデータのバックアップまたはエクスポートを実行してください。

動作環境

  • Android: API Level 21 (Android 5.0) 以上
  • iOS: iOS 13.0 以上(今後リリース予定)

開発者向け

前提環境

  • Flutter SDK 3.8.1以上
  • Dart SDK 3.8.1以上
  • Android Studio または VS Code(推奨)
  • Android SDK (Android開発の場合)
  • Xcode (iOS開発の場合)

インストール手順

  1. リポジトリのクローン

    git clone https://github.com/paraccoli/flutter_finance_app.git
    cd flutter_finance_app
  2. 依存関係のインストール

    flutter pub get
  3. アプリアイコンの生成

    flutter pub run flutter_launcher_icons:main
  4. アプリの実行

    # デバッグモード
    flutter run
    
    # リリースビルド (Android)
    flutter build apk --release
    
    # リリースビルド (iOS)
    flutter build ios --release

設定方法

Android設定

android/app/build.gradleで最小SDKを確認:

minSdkVersion 21
targetSdkVersion 34

iOS設定(v1.2.2対応済み)

詳細なiOS設定については iOS版インストールガイド をご確認ください。 ios/Runner/Info.plistに必要な権限設定が含まれています:

  • ファイルアクセス権限(CSV機能用)
  • 通知権限
  • ユーザーインターフェース設定

通知設定

アプリ初回起動時に通知権限の許可が求められます。 設定画面から通知のON/OFFと時刻を変更できます。

開発・ビルド

開発環境での実行

# ホットリロード付きで実行
flutter run

# 特定のデバイスで実行
flutter run -d <device_id>

# デバイス一覧確認
flutter devices

コード解析・テスト

# コード解析
flutter analyze

# テスト実行
flutter test

# テストカバレッジ
flutter test --coverage

ビルド

# Android APK
flutter build apk --release

# Android App Bundle
flutter build appbundle --release

# iOS (macOS必須)
flutter build ios --release

# Windows
flutter build windows --release

# macOS
flutter build macos --release

# Linux
flutter build linux --release

貢献方法

  1. このリポジトリをフォーク
  2. フィーチャーブランチを作成 (git checkout -b feature/AmazingFeature)
  3. 変更をコミット (git commit -m 'Add some AmazingFeature')
  4. ブランチにプッシュ (git push origin feature/AmazingFeature)
  5. プルリクエストを開く

開発ガイドライン

  • コードスタイル: flutter_lintsに準拠
  • コミットメッセージ: わかりやすい日本語で記述
  • テスト: 新機能には適切なテストを追加
  • ドキュメント: 重要な変更はREADMEも更新

スクリーンショット・デモ

ホーム画面


サポート・お問い合わせ

変更履歴

バージョン 1.3.4 (2025-11-10) - Latest

報酬広告とプレミアム機能の改善

主な修正

  • 報酬広告の不具合修正: 動画広告を最後まで視聴してもプレミアム体験が有効化されないことがある問題を修正
  • 24時間一時プレミアムの正常化: 広告視聴後に24時間の一時プレミアムが正しく付与されるように改善

新機能・改善

  • プレミアム機能の整理: 「広告非表示」「カスタムテーマ作成」「データバックアップ」をプレミアム限定機能に統一
  • 統一された誘導フロー: 無料ユーザー向けに「広告視聴で体験」または「プレミアム購入」への案内を統一
  • 月次画面の改善: 初期表示期間を『今月(1日 00:00 〜 月末 23:59)』に変更
  • 安定性向上: 日付選択周りの不具合修正(未来日が初期値になる問題など)

技術的改善

  • バージョン: 1.3.4+1
  • 報酬広告のライフサイクル処理を改善
  • UI の一貫性向上

バージョン 1.3.3 (2025-11-09)

プレミアム機能のUX強化と報酬型広告の信頼性向上

新機能・仕様変更

  • プレミアム制御の導入: カスタムテーマ作成を含む一部機能をプレミアム限定化
  • 統一誘導ダイアログ: 非プレミアムユーザー向けに「広告視聴で24時間体験」または「プレミアム購入」を選択可能
  • 設定画面の視認性向上: プレミアム機能に小さなプレミアムバッジを追加
  • 防御的チェック: CustomThemeCreatorScreen保存前のプレミアム判定を追加

対象プレミアム機能

  • カスタムテーマ作成(CustomThemeCreatorScreen)
  • カスタムテーマ管理(CustomThemeManagerScreen)
  • データのバックアップ / データの復元(設定画面のデータ管理セクション)
  • 広告非表示(既存のプレミアム購入フロー)

重要なバグ修正

  • 報酬型広告のレース条件修正: AdService.showRewardedAd()の内部処理を見直し、Completerを使って広告の報酬受領と全画面コンテンツ閉鎖のライフサイクルが完了してから結果を返すように改善
  • 一時プレミアム付与の信頼性向上: 広告視聴後に一時プレミアムが付与されないケースを解消

技術的改善

  • pubspec.yaml を 1.3.3+3 に更新
  • UI の一貫性向上(プレミアム誘導ダイアログを統一)
  • Android AAB をローカルでビルド済み

バージョン 1.3.2 (2025-07-11)

MoneyGレガシーCSVサポート強化

新機能

  • MoneyG v1.2.2 CSVサポート: 旧バージョンのCSVファイル完全対応
  • 3形式対応: 「支出のみ」「収入のみ」「全データ」すべてのCSV形式をサポート
  • 自動フォーマット検出: ヘッダーとファイル名による自動形式判定
  • 正確なカテゴリマッピング: レガシー形式のカテゴリを正しくマッピング

修正・改善

  • 全データ形式のバグ修正: 支出データ(負の値)が正しくインポートされない問題を解決
  • CSVインポート精度向上: データ型判定とエラーハンドリングの改善
  • デバッグ出力強化: インポート処理の詳細な追跡とトラブルシューティング対応

バージョン 1.3.1 (2025-07-03)

カスタムカテゴリ機能追加

新機能

  • カスタムカテゴリシステム: 収入・支出で独自のカテゴリ作成が可能
  • 視覚的カスタマイズ: 20色のプリセットカラーとアイコン選択
  • カテゴリ管理: 設定からの簡単管理、並び替え機能
  • データベース拡張: custom_categoriesテーブル追加、自動マイグレーション

修正・改善

  • Flutter API更新: 非推奨APIの修正(Color.value → Color.toARGB32())
  • データ整合性: 重複防止制約、トランザクション管理強化
  • 静的解析クリーン: 全ての警告・エラーを解消

バージョン 1.2.2 (2025-06-12)

新機能

  • CSV インポート/エクスポート: 他アプリからのデータ移行対応
  • スプラッシュスクリーン: アプリ起動体験の向上
  • スワイプアクション: 収入・支出リストでのスワイプ編集・削除
  • 月次レポート改善: 円グラフから棒グラフに変更、自動月選択

改善・修正

  • 予算設定リアルタイム反映: 設定変更が即座に反映されるよう修正
  • 通知API更新: 非推奨API使用の警告を解決
  • fl_chart 1.0.0: 最新チャートライブラリに更新
  • セキュリティ強化: ローカル保存のセキュリティ向上

ドキュメント

  • 包括的ドキュメント: README、CONTRIBUTING、SECURITY
  • iOS専用ガイド: インストール・機能・リリースノート
  • GitHub Projects: プロジェクト管理体系の構築

バージョン 1.1.0 (2025-06-08)

  • 検索・フィルター機能の追加
  • バックアップ・復元機能の実装
  • 予算管理機能の追加
  • クイック収入・支出機能の追加
  • データ完全削除機能の追加
  • 各種設定機能の拡充

バージョン 1.0.0 (初回リリース)

  • 基本的な支出・収入記録機能
  • NISA投資管理機能
  • 月次レポート・資産分析
  • 通知機能
  • 基本設定機能

ライセンス

このプロジェクトは MIT License の下で配布されています。

詳細については LICENSE ファイルをご覧ください。


Made with Flutter by Paraccoli

このプロジェクトが役に立ったら、ぜひスターをお願いします!

About

家計簿アプリです

Topics

Resources

License

Contributing

Security policy

Stars

7 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors