iOSとAndroidでは、プッシュ通知に異なる仕組みが採用されています。iOSで使われているAPNsとAndroidで使用されるGCMそれぞれの仕組みと実装手順について解説します。両者の違いや特徴を正しく把握することで、より利便性の高いユーザーに愛されるアプリの開発が可能になるはずです。
iOSで使用されるAPNsとは?
iOSでは、プッシュ通知にAPNsと呼ばれる仕組みが採用されています。この方法では、ユーザーがアプリのプッシュ通知を許可すると、トークンと呼ばれるデータがAppleのサーバーへ送信されます。このトークンは他のiPhoneとは重複することのない端末ごとに固有の情報であり、開発者はトークンを利用してバッジやダイアログ、バナーといった方法でユーザーのiPhoneに通知を行うのです。
トークンは固有の情報であるとはいえ、ユーザーの住所や氏名、電話番号といった個人情報は含んでいないためプッシュ通知を許可してもこれらの情報がユーザーから開発者に伝わることはなく、また、アプリ開発者がトークンを利用するにはあらかじめAppleから証明書を受け取る必要があります。このような仕組みになっているので、ユーザーは自分の個人情報が知られることなく、プッシュ通知を利用できるのです。
Androidで使用されるGCMとは?
一方、Androidのプッシュ通知では、GCMという仕組みが使われています。ユーザーがアプリの通知を許可すると、GCMサーバーにその端末の情報が登録され、端末を特定するためのIDが発行されます。そしてその情報が、サードパーティアプリケーションサーバと呼ばれるデータストレージ上に保管されるのです。
アプリから端末へ通知が行われる時には、サードパーティアプリケーションサーバからGCMサーバーへ端末のIDと通知のメッセージ内容が送信され、その後、GCMサーバーから端末へプッシュ通知が実行されます。
それぞれの実装方法を知ろう
異なるプッシュ通知の仕組みを採用しているiOSとAndroidですが、それぞれ実装方法や手順も異なります。それぞれの実装の流れについて、簡単にご紹介しましょう。
iOSでのAPNsの実装方法
iOSでAPNsを実装する時はまずプッシュ通知用の証明書を作成します。iOS Developer CenterのMember Center からiOS App用の証明書を選択し、テスト用もしくは製品用のいずれかを選択します。続いてプッシュ通知を利用するアプリのIDを選択し、Certificate Signing Requestファイルを作成します。作成したファイルをアップロードすれば、証明書の発行は完了です。
その後、キーチェーンアクセスから証明書と秘密鍵を書き出し、サーバーに設置するためのPEMファイルを作成します。
AndroidでのGCMの実装方法
AndroidでGCMを実装する場合は、最初にGoogle Developers ConsoleからAPIプロジェクトを作成します。その後、Google Play デベロッパーコンソールにログインしてプッシュ通知を利用するアプリを選択し、GCM APIキーもしくはC2DM クライアントログイントークンを入力します。
開発者視点、ユーザー視点での両者の違いは?
2種類のプッシュ通知の違いを開発者の視点から考えると、iOSのAPNsがAppleで用意された仕組みに沿って実装するのに対して、AndroidのGCMでは実装の際の自由度が比較的高いという特徴があります。また、iOSのAPNsでは通知サーバーへの送信に独自のプロトコルを使用しているのに対して、AndroidのGCMではHTTPが使用可能です。
ユーザー視点で考えると、iOSの通知ではおなじみの「バッジ」がAndroidでは使用できない点や、送信可能なバイト数の違いから、Androidの方がより文字数の多い通知を受け取れる点に両者の違いがあります。
また、iOSのAPNsではアプリを最初に起動した時にユーザーがプッシュ通知の可否を選択しますが、AndroidのGCMではアプリのダウンロード時にユーザーの承諾を求めます。Android端末の設定でアプリのダウンロード後にユーザーが通知を解除することはできないため、アプリ側で通知を解除できるようにしておく必要があります。
iOSのAPNsとAndroidのGCMの仕組みや実装の手順の違いを知り、両者の特徴を正しく把握することで、より利便性の高いユーザーに愛されるアプリの開発が可能になるのではないでしょうか。
次はこちら:
- プッシュ通知を自分たちで実装する際に面倒な5つのこと
- 「シンプルに読みやすく、を追求したらこの形に」@niftyニュースアプリにmBaaS利用法を聞きました
- アプリマーケに必須なプッシュ通知ASPまとめ
参考 *1