Open2

短歌&俳句管理ツール TSUKI NO OKA 開発ログ

TASUKUTASUKU

Tech Stack

📦 Architecture

  • MVVM (Model-View-ViewModel)
  • Repository Pattern

🎨 UI Framework & Design

  • Jetpack Compose
  • Material Design 3

🗂 Data Persistence

  • Room (with Type Converters)
  • Full-text Search Queries for Tag Filtering

🌀 State Management

  • ViewModel
  • StateFlow

🛠 Other Technologies

  • Kotlin
  • Coroutines

💾 Optional

  • SharedPreferences (or DataStore)
  • JSON Export/Import (for data migration or backup)

ユーザー視点の機能

  • 俳句/短歌 を選択した上で投稿
  • メモ機能
  • 任意のタグ作成&付与、タグによる検索・絞り込み機能
  • ステータス表示機能(アイデアメモ、推敲前、推敲済、発表済)
  • データ引き継ぎ機能(エクスポート/インポート)
TASUKUTASUKU

🛠 TSUKI NO OKA 開発ステップ一覧

🧭 Step 1: 企画と設計

[x] アプリの目的を明確にする

[x] ユーザー視点の機能を洗い出す

[x] 技術選定とアーキテクチャ決定

[x] 技術スタックのドキュメント化

📁 Step 2: プロジェクトの初期構成

[x] Android Studio プロジェクトの新規作成

[x] 必要なディレクトリ・パッケージ構成の作成

[x] Git/GitHub連携とブランチ作成

[x] 空のファイルを作成

🧩 Step 3: データ層の実装

[ ] Poem.kt(エンティティ)

[ ] PoemDao.kt(DAOインターフェース)

[ ] PoemDatabase.kt(Roomデータベース)

[ ] Converters.kt

🔄 Step 4: リポジトリ・ドメイン層の実装

[ ] PoemRepository.kt(データの橋渡し)

📊 Step 5: ViewModelと状態管理

[ ] PoemViewModel.kt(UIの状態管理)

[ ] StateFlowによるリアクティブな状態反映

🎨 Step 6: UI画面の構築

[ ] HomeScreen.kt(一覧・検索・ソート)

[ ] AddEditScreen.kt(投稿・編集)

[ ] DetailScreen.kt(詳細閲覧)

[ ] FilterDialog.kt(タグ・ステータス絞り込み)

💾 Step 7: データ永続化と引き継ぎ

[ ] JSONエクスポート/インポート機能

[ ] SharedPreferences or DataStore による設定保存

🌌 Step 8: UI/UXのブラッシュアップ

[ ] ダークテーマとTASUKUカラー対応

[ ] アニメーションや装飾の追加(Material Design 3準拠)

[ ] ボタンやフォームのスタイル統一

🧪 Step 9: テストとデバッグ

[ ] 各層の単体テスト

[ ] UIテスト(Compose Testing)

[ ] 手動テストによる確認