「感謝日記アプリ」システム設計
毎日の「感謝したこと」を記録し、その日の気分を絵文字で表現する感謝日記 アプリを作成しました。
Jetpack Compose と Room Database を活用し、モダンな Android 開発手法を意識して実装しています。
プロジェクト概要
- 感謝したことを毎日記録できる日記アプリ
- その日の気分を 絵文字(🥰 🥳 😆 🤯 🫨) で表現
- シンプルな CRUD 機能を、拡張しやすい構成で設計
システムアーキテクチャ
MVVM パターン + Repository 構成
UI(Jetpack Compose)
↓
ViewModel(状態管理)
↓
Repository(データ仲介)
↓
Room Database(ローカル保存)
使用技術スタック
- UI: Jetpack Compose + Material Design 3
- 状態管理: StateFlow + Coroutines
- データベース: Room Database
- ナビゲーション: Navigation Compose
💾 データベース設計
@Entity(tableName = "diary")
data class DiaryEntity(
@PrimaryKey(autoGenerate = true)
val id: Long = 0,
val date: String, // 日付(YYYY-MM-DD)
val mood: String, // 気分の絵文字(🥰 🥳 😆 🤯 🫨)
val content: String // 日記内容
)
📊 パッケージ構成
io.github.lenayoo.veryberrykanshadays/
├── data/
│ ├── DiaryEntity
│ ├── DiaryDao
│ ├── DiaryDatabase
│ └── DiaryRepository
└── ui/
| ├── screens/
| ├── viewmodel/
| └── navigation/
└─ MainActivity.kt
ロゴや画面デザイン 🌈 ☁️
シンプルなアプリなので、デザインもなるべくシンプルにしています。
また、先日Apple Storeでリリースしたアプリとブランディングを揃え、同じ世界観になるようロゴを作成しています。

リリーズの話、その後
今年、iOSアプリをApple Storeでリリースした際は、想像していたよりも手続きが簡単で、アップロード後およそ2週間ほどで無事に公開され、ダウンロードできる状態になりました。
その経験から、今回のAndroidアプリのリリースも比較的スムーズに進むだろうと考え、12月に入ってから少し急ぎ足で準備を始めました。
iOSの場合は審査が比較的自動化されており、特別な対応をすることなく公開まで進みましたが、Androidでは「12人以上のテスターによるテスト」が必須となっており、この点が想像以上にハードルの高い部分でした。
まずはAndroid端末を持っている家族や友人に協力してもらい、15人ほど集めることができたのですが、同一端末で複数アカウントを使ってインストールした場合はテスターとしてカウントされないことが分かり、少し苦戦しています。
それでも、年初には想像もしていなかった「自分が開発したAndroidアプリを実機で触ってもらう」という体験は、テスター段階であってもとても嬉しかったです。
アプリ開発には思った以上に細かい制約や手続きがあり、難しさを感じる場面も多いですが、それ以上に「ものづくりの楽しさ」を実感できるプロセスだと感じています。

当初は、この記事の最終目標としてダウンロード用のQRコードを掲載する予定でしたが、まずはテスター集めをしっかり進め、2026年には新しいアプリを正式に公開できるよう、引き続き取り組んでいきたいと思います。
※ もしAndroidユーザーで、テスターとして参加してもいいかも…と思ってくださった方がいらっしゃいましたら、ぜひコメントをいただけると助かります🥺
