目的・役割
ユーザー宛のシステム通知(フォロー通知、ランキング終了通知、選択肢申請通知 等)を時系列で表示。
UI 構成
| 要素 | 種類 | 説明 |
| NavigationBar | 固定 | タイトル「通知」 |
| 通知リスト | List | 未読は背景色強調、既読は通常表示 |
| 「すべて既読」ボタン | Toolbar | 右上、全件 markAllAsRead |
| 空状態 | EmptyView | 「通知はまだありません」 |
状態
| 状態 | 表示内容 |
| 初期表示 | ProgressView |
| 通知あり | リスト表示(最大50件) |
| 通知なし | 空状態メッセージ |
遷移
| 操作 | 遷移先 |
| 通知セルタップ | 関連ランキング詳細 / プロフィール(type依存) |
| 「すべて既読」 | 同画面(リスト更新) |
使用するデータモデル
AppNotification {
let id: UUID
let userId: UUID
let type: String // follow, ranking_ended, choice_request 等
let rankingId: UUID?
let message: String
var isRead: Bool
let createdAt: Date
}
実装メモ
- NotificationService.fetchNotifications() で取得(limit: 50)
- セルタップ時に NotificationService.markAsRead() を実行
- 未読数は HomeView のベルアイコンに反映
関連
変更履歴
| バージョン | 日付 | 変更内容 |
| 1.0 | 2026-05-09 | 初版作成 |