こう 聞かれます
- 「プッシュ通知の
仕組みと、 作る ときに 気を つける ことを 説明できますか」 - 「サーバーから
利用者の スマホに、 どうやって 通知が 届くのですか」 - 「通知を
オフに されないために、 何を しますか」
面接官が 見ている点
- サーバーが
端末に 直接送るのではなく、 OS の 配達の 窓口を 通す、 と分かっているか - 宛先が
変わる、 消える、を 前提に 管理しているか - 送る
側の 都合だけでなく、 受け取る 人の 気持ちまで 考えているか
短い答え
- アプリが OS の
配達の 窓口 (Android なら FCM、 iPhone なら APNs) から 端末の 宛先 (デバイストークン) を もらって サーバーに 登録し、 サーバーは その宛先を 付けて 窓口に 送ります。 - 宛先は
アプリの 入れ直しなどで 変わるので、 新しい 宛先で 上書きし、 窓口から 「もう届かない」と 返った 宛先は 消します。 - 送りすぎると
通知ごと 切られるので、 利用者が 種類ごとに 選べるようにし、 送る 時間や 回数も 絞ります。
少し 詳しい答え
届くまでの流れ
- アプリが
起動した とき、 OS に 通知の 許可を 求め、 許されたら OS の 配達の 窓口から 宛先 (デバイストークン) を もらいます - アプリは
その宛先を、 ログインしている 利用者と 結び 付けて サーバーに 送り、 サーバーは DB に 保存します - 通知を
出したい とき、 サーバーは 宛先と 本文を 付けて 窓口に送ります - 窓口が
端末に 届けます。 端末の 電源が 切れていれば、 窓口が 預かってあとで 届ける こともあります
サーバーが
宛先の管理
宛先は、
窓口に
送りすぎと 送り損ね (トレードオフ)
通知は、
送り損ねにも
話すときは、
よく ある間違い
- 宛先を
一度 登録したら 変わらないと思う 入れ直しや 端末の 買い 替えで 変わります。 起動の たびに 確かめて 上書きします - 無効に
なった 宛先を消さない 届かない 宛先への 送信が 積み 上がり、 どれが 届いているのか分から なくなります - 全部の
通知を 1 つの スイッチにまとめる 要らない 種類を 止めたいだけの 人が、 全部を 切ります。 種類ごとに 選べるようにします
深掘りの問い
- 「通知の
本文に、 何を 入れてはいけませんか」 ロック 画面に 出るので、 暗証の 番号や 個人の 詳しい 情報は 入れず、 アプリを 開いてから 見せる、と答えます - 「何十万人に
一斉に 送る とき、 何に 気を つけますか」 キューで 分けて 送る、 窓口の 回数の 制限を 守る、 通知から 開いた 人が 一度に サーバーに 来ても 耐えられるように する、と答えます - 「Web の
ブラウザにも 通知を 送れますか」 Web Push という 仕組みが あり、 ブラウザごとの 許可と 宛先の 管理は 同じように 要る、と答えます