Skip to content

3.通知

takafumi nanao edited this page Jan 29, 2018 · 1 revision

昨年末に android developer blogで公開された新しいルール

https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html

Google play storeでは今年の8月からtargetSdkVersionが26以上でないと、アプリをリリースできなくなりました。

既存アプリのアップデートの場合は11月の猶予があるとはいえ、targetSdkVersionを26にしなければ、アプリのアップデートが出来なくなります。

その際最も実装に影響するものが通知です。

通知とは

よくある勘違いですが、プッシュ通知だけが通知だけではありません。ユーザーが目にするプッシュ通知は、実際にはプッシュ通知を受けた際にユーザーに知らせるためにプログラム上でOSが用意している通知のためのUIを利用して表示されたものです。

サーバからのイベントを受信して、通知を表示する事をプッシュ通知と呼びますが、通知の種類には他にもアラームや監視の仕組みをトリガーにして表示されるものもあります。ユーザーがボタンを押したら通知を表示する、という事も出来ます。

このセッションではプッシュ通知ではなく、通知を表示するための基礎的な実装を紹介します。

Android 7.1 (API level 25) までの通知

長い歴史の中で多くの仕様変更がありました。安全に通知を利用するためにはNotificationCompatというクラスを利用します。

このクラスを利用することで、OSのバージョンごとの差異が吸収され、新しいOSでしか利用できない機能については無視してくれるようになっているので、安全に通知を表示することができます。

Android 8.0 (API level 26) からの通知〜通知チャンネル

NotificationChannel, NotificationChannelGroupの登録が必須になりました。

アプリ起動時などに予め、通知チャンネルや必要であれば通知チャンネルグループ(任意)の登録をする必要があります。

その後の通知の表示方法はこれまでとほんと同じですが、通知を表示するためには、事前に作成した通知チャンネルのidを指定する必要があります。

Next Step

API Guide https://developer.android.com/guide/topics/ui/notifiers/notifications.html?#ManageChannels

Design Guideline https://material.io/guidelines/patterns/notifications.html

参考になりそうなセッション