Open2
短歌&俳句管理ツール TSUKI NO OKA 開発ログ
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)
ユーザー視点の機能
- 俳句/短歌 を選択した上で投稿
- メモ機能
- 任意のタグ作成&付与、タグによる検索・絞り込み機能
- ステータス表示機能(アイデアメモ、推敲前、推敲済、発表済)
- データ引き継ぎ機能(エクスポート/インポート)
🛠 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)
[ ] 手動テストによる確認