END機能の概要

概要

END機能は、アプリケーションの終了処理を担当する機能群です。 安全なリソース解放とデータの整合性を保ちながら、アプリケーションを終了します。

主要機能

終了処理

処理

機能

リソース解放

メモリ・ファイルハンドル・音声チャンネルの解放

設定保存

現在の設定を次回起動用に保存

一時ファイル削除

キャッシュ・ログファイルのクリーンアップ

確認処理

  • 終了確認: ユーザーが意図した終了かの確認

  • 保存確認: 未保存データがある場合の保存促進

  • 強制終了対応: 異常終了時のデータ保護

画面構成

  • 終了確認ダイアログ: 「本当に終了しますか?」

  • HOME戻りボタン: メインメニューへの復帰オプション

  • 背景: シンプルで分かりやすいデザイン

技術仕様

アーキテクチャ

END機能はシンプルな構造で実装されています:

  1. Controller層 (common/end/*.py)

  2. Service層 (common/end/service/*.py)

終了シーケンス

1. 終了要求受信
2. 現在の状態確認
3. 未保存データチェック
4. ユーザー確認取得
5. リソース解放実行
6. 設定データ保存
7. アプリケーション終了

リソース管理

解放対象リソース

  • 音声リソース: pygame.mixer の全チャンネル停止

  • 画像リソース: Surface オブジェクトの解放

  • ファイルハンドル: 開いているファイルの適切なクローズ

  • ネットワーク: 通信接続の切断(将来実装)

解放順序

  1. ユーザーインターフェース: 画面更新の停止

  2. 音声システム: 全音声の停止・チャンネル解放

  3. ファイルシステム: 開いているファイルのクローズ

  4. メモリ: 大容量オブジェクトの明示的削除

  5. システム: pygameの終了処理

データフロー

正常終了

終了要求
     ↓
END Controller(終了確認)
     ↓
END Service(リソースチェック)
     ↓
リソース解放処理
     ↓
設定保存処理
     ↓
システム終了

異常終了対応

異常検知
     ↓
緊急リソース解放
     ↓
エラーログ出力
     ↓
復旧用データ保存
     ↓
強制終了

関連ファイル

Controller層

  • common/end/action.py - 終了操作処理

  • common/end/display.py - 終了画面描画

  • common/end/sound.py - 終了音再生

  • common/end/status.py - 終了状態管理

Service層

  • common/end/service/status.py - 終了判定ロジック

リクエスト・レスポンス

  • common/layer/request/end/*.py - END機能のリクエストオブジェクト

エラーハンドリング

想定ケース

状況

対応

正常終了

標準的な終了シーケンス実行

強制終了

最低限のリソース解放のみ実行

リソース解放失敗

エラーログ出力・次回起動時に警告表示

設定保存失敗

デフォルト設定での次回起動

ログ出力

終了処理の各段階でログを出力:

LOG("終了処理開始")
LOG("リソース解放完了")
LOG("設定保存完了")
LOG("アプリケーション終了")

今後の拡張予定

  • 使用統計送信: 匿名使用データの収集・送信

  • 自動バックアップ: 終了時の自動データバックアップ

  • クラッシュレポート: 異常終了時の詳細レポート生成

  • 復旧機能: 次回起動時の自動復旧処理強化

  • カスタマイズ: ユーザーによる終了処理のカスタマイズ