kazu22002の技術覚書

PHPer, Golang, AWS エンジニアの日々

プッシュ通知の実装方法が変わっていた。(Android, iOS)

僕がプッシュ通知に関わったのは1年前ぐらいです。 すでにかわっているとは。。。

iOS8

iOS8のプッシュ通知の登録方法が変わっているのを最近しった今日このごろ。。。

この記事のお陰です。

Xcode6でiOS8へPush通知が送れない場合の解決方法 - Qiita

実装自体はあまり変化はありませんが、こういう情報は常に集めないといけないと感じますね。
実装としてはすこし修正するだけでいけそうです。 リファレンスの日本語約更新されてる。

日本語ドキュメント - Apple Developer

Android (google play service)

あとはAndroidもいつの間にか変わっていました。

Google Play Services というクラスが増えてるじゃないですか。
機能的にもたしかに去年のはじめぐらいだから、ちょっと関わっていない時期そうです。

GCMの名称自体は変わっていませんでしたが、以前実装していたGCMクラスではなく、GooglePlayServicesの中のgcmクラスに変わっています。

GoogleCloudMessaging | Android Developers

クラスから変わっているのは、キツイなぁー。
以前のクラスはDEPRECATED(非推奨)に変わってますね。

やり方はすこし手間が減ったのかな。

プッシュ通知の違いで困ること

プッシュ通知の導入をやっているといつも困るのは、Androidです。 Tokenの値を変更するのをやめて欲しいですね。

セキュリティーを考えれば確かにある一定のタイミングでの変更は必要だと思いますが、iOSが変わらない分、厄介にかんじます。

いや、変更する部分がネックなのか、通信しなければ取得できない部分が厄介なのか。 通信が入るだけで、エラー系が一気に多くなりますね。

最近気がついたのはiOSはオフラインでもTokenを作っていますね。
これはアプリ自体にプッシュ通知を有効にした証明書で作成しているからできることですね。

Androidは自由度が高い分、やっぱり実装がきつい印象。

あとはサーバーの送信部分の違いはサーバー側に任せるからいまは考えない。

ただ正直作るだけならサーバーの方がきついと思う。
なんといっても運用レベルでの構築をしなきゃいけないから、IDを作ってサーバーへ保存してもらい、あとは通知を待つだけのクライアントはまだマシかな。
やってみないとわからないですね。

やっと全体的に関わることができてきた印象だから個人的には面白い。
だが、相変わらずアプリは大変ですね。。。