Skip to content

(NoteEditorロジックの肥大化解消とプロジェクト構造の整理)#42

Merged
gadgeski merged 6 commits intomainfrom
feature/backup-2025-1229-stable
Dec 29, 2025
Merged

(NoteEditorロジックの肥大化解消とプロジェクト構造の整理)#42
gadgeski merged 6 commits intomainfrom
feature/backup-2025-1229-stable

Conversation

@gadgeski
Copy link
Owner

概要 (Overview)

NoteEditorScreen の肥大化(Fat UI)を解消するため、UI描画・ロジック・装飾処理の責務を分離(Separation of Concerns)しました。
あわせて、テスト用リソースの配置場所を適切なディレクトリへ移動し、プロジェクト構成を最適化しています。

変更内容 (Changes)

🛠 Editor Refactoring

  • ロジックの委譲: NoteEditorScreen 内にあったマークダウン記法挿入ロジック(太字、リスト等)を MarkdownTextHelper に委譲し、完全に分離。
  • UIのコンポーネント化: ツールバーの構築処理を MarkdownToolbar に集約。NoteEditorScreen から不要な UI import(Icons, DropdownMenu等)を削除。
  • 装飾処理の統合: 機能が分散していた MarkdownBoldVisualTransformation のロジック(下線、色変更)を IcebergEditorVisualTransformation に移植・統合し、重複していた古いクラスファイルを削除。

🏗 Infrastructure & Tests

  • テストダブルの整理: InMemoryNotesRepositoryFakeNotesRepository にリネームし、src/main から src/test へ移動。本番コードとテスト用資産を明確に分離。
  • ドキュメント更新: STRUCTURE.md に現在のアーキテクチャ設計と役割分担を追記。

技術的な決定事項 (Technical Decisions)

保守性と可読性を高めるため、以下の役割分担(Single Responsibility)を適用しました。

  • NoteEditorScreen.kt: 画面全体のレイアウト構成とデータフローの管理(Orchestrator)
  • MarkdownToolbar.kt: ツールバーのボタン配置と見た目の定義(Pure UI)
  • MarkdownTextHelper.kt: 文字列操作・マークダウン記号挿入のロジック(Domain Logic / Testable)
  • IcebergEditorVisualTransformation.kt: エディタ上のシンタックスハイライト描画(Visual Decorator)

検証 (Verification)

  • ビルドが正常に通ることを確認
  • エディタ画面で各ボタン(太字、H2、リスト等)が正常に動作することを確認
  • プレビューおよびエディタ上で、下線・文字色が正しく描画されることを確認

@gadgeski gadgeski merged commit 1298b2b into main Dec 29, 2025
1 check passed
@gadgeski gadgeski deleted the feature/backup-2025-1229-stable branch December 29, 2025 13:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant