定義
アプリを開いていなくても、新しいお知らせが画面に表示される機能です。アプリごとにインターネットをチェックする代わりに、スマートフォンが通知サーバーとの通り道を1本つないでおき、お知らせをまとめて受け取ります。お知らせが届くとOSが画面に表示し、必要なときだけアプリが一瞬目を覚まして中身を整えます。
ポストまで何度も見に行かなくていい
宅配便がいつ届くかわからなくて、10分おきにポストまで下りて確認するとしましょう。足も疲れるし、時間もかかります。しかも10回のうち9回は無駄足です。
アプリが新しいお知らせを確認する方法も、もともとはこれに似ていました。アプリが決まった時間ごとにサーバーへ「新着メッセージはありますか?」と尋ねる方式を、ポーリングといいます。アプリが増えるほど無駄足が増え、バッテリーも早く減ってしまいます。
プッシュ通知は向きが逆です。お知らせが生まれた側から先に知らせてくれるので、こちらが確認しに行く必要はありません。管理人さんが宅配便を預かっておいて、インターホンで先に呼んでくれるのと同じ形です。
おかげでアプリは普段、何もせずに休んでいられます。お知らせが届いたときも、必要なときだけ一瞬目を覚ませば済むからです。
管理人さんに部屋番号を登録しておくように
管理人さんがあなたを呼ぶには、あなたが何号室に住んでいるかを知っている必要があります。アプリを初めて起動すると、スマートフォンは通知サーバーからそのアプリ専用の宛先を1つ受け取ります。その宛先をアプリ会社のサーバーに登録しておくのです。通知を許可すると、この宛先に届いたお知らせが画面に表示できるようになります。
新しいメッセージが生まれても、アプリ会社のサーバーは私たちのスマホに直接連絡しません。代わりに通知サーバーへ「この宛先にこの内容を届けてください」とお願いします。宅配便を管理人室に預けるのと同じです。
スマホは電源が入っている間、通知サーバーとの間に細い通り道を1本ずっと開けています。お知らせが来るとこの通り道をまっすぐ下りてきて、OSが画面に表示してくれます。必要に応じて、アプリがそのとき一瞬目を覚まして中身を整えることもあります。
アプリごとに別々の通り道を開けず、1本をみんなで共有しているので、バッテリーも通信量もぐっと少なくて済みます。
もう少し正確にいうと
管理人さんのたとえは、通知が遅れる理由も説明してくれます。スマホが省電力モードで深く眠ると、通り道が一時的に閉じます。その間に届いた通知は、再接続したときにまとめて届くこともありますが、一部が抜け落ちたり、最新の通知だけが届いたりすることもあります。ネットが切れているときも同じです。
通知に載って届く内容はとても短いものです。写真や会話の全部ではなく、「新着メッセージがあります」という短いメモに近いものです。そのため、通知をタップしてアプリを開くと、そこで初めて残りをサーバーから受け取ります。通知はお知らせの要約なのです。
通知をオフにしても、メッセージが消えるわけではありません。管理人さんが呼ばなかっただけで、宅配便はそのまま置いてあります。あとでアプリを開けば、その間に届いたお知らせがそのまま見られます。
ウェブサイトからの通知も、通り道を借りて使う仕組みは同じです。ただしこの通り道はお知らせを運ぶだけなので、何を表示するかはアプリやユーザーの設定が決めます。
よくある誤解
プッシュ通知を受け取るには、アプリがバックグラウンドで常に起動していなければならない。
アプリが閉じていても、OSが代わりにお知らせを受け取って表示します。必要なときだけ、通知が届いたあとにアプリが一瞬目を覚まして中身を整えます。
通知をオフにすると、相手が送ったメッセージも届かなくなる。
メッセージはサーバーにそのまま届いています。画面に表示する動作をしないだけです。
日常で出会う場面
フードデリバリーアプリを閉じていても、「調理を開始しました」といったお知らせが画面に表示されます。
メッセンジャーを開かなくても、ロック画面に新しい会話の1行目がプレビューで表示されます。
つまり ひとことで
アプリがサーバーを何度も確認する代わりに、常につないだ通り道からお知らせが先に届き、画面に表示される機能です。