FJCT_ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

自前で立てる時に使えるオープンソースのプッシュ通知管理サーバまとめ

アプリを開発する上で欠かせない存在なのがプッシュ通知です。mBaaSでのプッシュ通知は売りの一つになっています。プッシュ通知についてmBaaSのようなクラウドサービスを使わない場合、選択肢と上がってくるのはスクラッチでの開発か、プッシュ通知サーバの導入です。

プッシュ通知サーバを使う利点としてはスクラッチに比べれば導入が容易であったり、疎結合になることだと思います。そこで今回はオープンソースのプッシュ通知管理サーバを紹介します。

Countly/countly-server

Countlyはプッシュ通知だけでなくアプリの利用者動向やクラッシュレポートなどアプリに関する統合的な解析機能を提供しています。その一機能としてプッシュ通知の送信と開封通知といった機能が備わっているようです。

SDKはUnity、iOS、Android、Cocos2d、PhoneGap、Windows Phone、Blackberry、Titaniumと多岐に渡っています。

airnotifier/airnotifier

Python製のプッシュ通知管理サーバです。iOS/Android/Windows Phoneに対応しています。SDKはなく、APIベースでURLを叩いてトークンを設定する仕組みになっています。データはMongoDBで管理されます。

rs/pushd

pushdもiOS/Android/Windows Phoneに対応し、他にも任意のWebサイトへのPOSTアクセスやWebブラウザへのイベント送信ができます。SDKはなく、APIをコールします。

Smile-SA/node-pushserver

Web APIのみの提供で、トークンの登録と実際のプッシュ通知はWeb API経由で行います。SDKはないので受け取った後の処理なども基本的にすべて自力での実装になります。

aerogear/aerogear-unifiedpush-server

AeroGear UnifiedPush ServerはiOS/Android/Windows Phoneに食らえてADM(Amazon Device Messaging)やMozilla SimplePushに対応しています。また、開封率などを確認するダッシュボードも用意されています。

Uniqush - Push Notification Solution for Mobile Platforms

iOS/Android/ADMに対応しています。C2DMという古いAndroid用プッシュ通知の仕組みに対応しているのも利点かも知れません。

Helios ???? An Extensible Open-Source Mobile Backend Framework

HeliosはmBaaSに近いもので、プッシュ通知だけでなくデータ保存やアプリ内課金にも対応しています。管理画面も用意されています。


いかがでしょうか。プッシュ通知サーバだけを独立して用意するのはシステムの複雑性を回避したり、メンテナンスコストを下げるのには向いているかと思います。プッシュ通知の送信については多くのライブラリが存在しますが、トークンの登録まであるのはそう多くはありません。

mBaaSの利点としてはこれらプッシュ通知サーバと同様にシステムを疎結合にできること、SDKを使うことでトークンの登録やプッシュ通知を受信した時の処理をシンプルにできること、プッシュ通知の開封レポートをはじめとする管理画面が用意されていることが利点と言えます。

また、プッシュ通知の送信はバックグラウンドで行われるため、メンテナンスを忘れているといつの間にか届かなくなっていたということも少なくありません。数万のデバイスに対する安定したプッシュ通知の運用を考えるならばmBaaSを使う方が手軽ではないでしょうか。外部にデータを預けるのが企業上できないという時には今回紹介したようなシステムが役立つはずです。

プッシュ通知 | ニフティクラウド mobile backend