通知

通知

執筆済 ソフトウェア開発iOS

2 種類#

種類 発信元 用途
ローカル通知 端末内 リマインダー、タイマー
リモート通知(プッシュ) サーバ → APNs → 端末 新着メッセージなど

APNs の流れ#

アプリ起動 → APNs にデバイストークンを要求
          → 自分のサーバにトークンを送る
                    ↓
自分のサーバ → APNs → 端末 → アプリ

サーバが端末に直接送るのではない。 必ず APNs を経由する。 これにより、常時接続を OS が 1 本にまとめられ、電池を節約できる。

デバイストークンは変わりうる(再インストール、復元)。 起動のたびにサーバへ送り直す設計が要る。

許可#

swift
try await UNUserNotificationCenter.current()
    .requestAuthorization(options: [.alert, .sound, .badge])

権限と同じく、 文脈の中で要求する。 起動直後に出すと拒否率が高い。

通知の種類#

種類 挙動
通常 表示される
サイレント (content-available) 表示せずアプリを起こす
重要な通知 おやすみモードを貫通。特別な承認が要る
タイムセンシティブ 集中モードを貫通

サイレント通知は配信が保証されない。 OS が電池や利用パターンに応じて抑制する。 データ同期の唯一の手段にしてはいけない。

設計上の注意#

  • 通知は割り込みなので、価値のあるものだけ送る
  • 過剰な通知は無効化・アンインストールにつながる
  • 内容に個人情報を含めない(ロック画面に出る)
  • 通知の設定を利用者が細かく選べるようにする

参考文献#

ノート一覧を閉じる