ninjinkun's diary

ninjinkunの日記

未読数バッジの実装

f:id:ninjinkun:20140415083517p:plain

アプリの未読数バッジを実装していてこんがらかってきたので、自分の方針をメモしておきます。バッジを消してるつもりなのに消えないとか、また復活していたりするとイライラしますよね。

いつ消すか

  • 通知欄を見た瞬間に消える
    • タイムラインの投稿、自分へのいいね等
    • 大抵のものはこちらでOK
  • 未読の部分まで読んだら消える
    • チャット等のメッセージ
    • 重要なお知らせ
  • アイコンのバッジは種類に関わらず起動時には消す
    • その後新しい通知が来るまで復活しないように
    • Pushのみで数字を更新する場合は起動時に0にするだけ
    • Push以外でアイコンバッジを更新することがあれば、最後にバッジを消した際の通知オブジェクトIDもしくは未読数を記録するという面倒な方法で実現する
    • 複数クライアントがある場合は他のクライアントにもPushを送って0クリアしてあげると良さそう。あまりやってるのは見ないけど

どこまで読んだかを記憶する

最後に見た最新の通知オブジェクトのIDを記録します。お知らせの欄が複数ある場合はそれぞれ記録が必要です。

  1. POSTしてサーバーで記録する
    • 複数端末での使用を想定
    • 1クライアント想定でも再インストールなどが考えられるので、こちらの方が何かと便利
  2. クライアントで記録する
    • 既読通知のIDをPOSTすると未読数が返ってくるようなAPIが必要

空気を読んだバッジの実装は大変です。もっと簡単にできそうだったら教えてください。