zooo-log

読んだものとか、学んだこととか

アプリの通知機能について

アプリの通知機能は、モバイルアプリやWebサービス作っていると、必ずと行っていいほど使いたいと要件が上がってくるものの一つだと思っています。
今日はアプリのグランドデザインをしているときに、通知機能ってそういえばどういう形式だったら実現できたかな?と頭をよぎったので、備忘のために整理してみました。

アプリ形式 OS/ブラウザ 実装可否 実装方法 備考
ネイティブアプリ iOS APNs  
  Android FCM  
Webアプリ Safari X - Safariは未対応
  Chrome FCM/Webpush  
PWA* iOS X - iOSのServiceWorkerは未対応
  Android FCM  

*PWA(Progressive Web Apps):簡単に言うとウェブアプリをネイティブっぽく動かせるようにしたアプリケーションのこと

AWSを使ってネイティブPushを行うときはSNS+APNs/FCM(iOS/Android)という構成になるし、GCPだと(Android)FCM only もしくは(iOS)FCM+APNs。Azureは使ったことがないから調べてないです。
基本的にネイティブPush使うなら、FCMかAPNsを介す必要があるとおぼえておけば良さそう。
同時に、iOS比率が異様に高い日本では、なかなか実装はめんどくさそうだということがわかった。。PoCの開発をすると、気軽に通知試したいって話が出てくるが、APNsは証明書の発行が手間だったりするので、なかなか一筋縄では行かないのが現状。iOSは、はやくServiceWorkerで通知受け取れるようにしてくれないかな。。

今回参考にしたのは以下の記事。特にGoogleのブログは図がわかりやすかったです。

developers-jp.googleblog.com

ちょっと古いけど、プッシュ通知の種別の違いは、こちらの記事で整理されていました。

garapon.hatenablog.com

ただ、通知機能自体は賛否両論あって、なかなか狙い通りの効果が得られるかは難しい機能でもあります。そのため、ほんとに通知で知らせるべきことなのか、もしくは別な手法が試せるのか(例えば、アプリを開きっぱなしにするナビアプリのようなものであれば、チャットアプリみたいに更新情報を出し続けるエリアを設けても良いかもしれない)。

uxmilk.jp

やはり機能ベースで物事を考えるんじゃなくて、ユーザがそのときどういうふうに情報を受け取りたいか考えて、インタフェースを考えることが大事だと改めて認識しました。