iPhoneアプリのPush通知を実装するのに使用した「houston」というライブラリが良さげだったのでメモ。
##経緯
アプリにPush通知を実装する事になったので、この記事を参考にやってみたのですが何故か通知が来ない。。で、他に良いライブラリがないか探して見つけたのがこの記事でした。
Ruby - 巨大な Helios を取り巻く gem 群について調べてみた - Qiita [キータ]
1-2. houston
mattt/houston · GitHub
Houston is a simple gem for sending Apple Push Notifications. Pass your credentials, construct your message, and send it.
iOS のプッシュ通知サービスを利用するためのライブラリ。
同様の機能を持つライブラリに APNS gem があるが、houston gem のほうが実用的な機能がまとまっている。
これは良さげ!!
##houstonのここが良い
###1. URLを意識しなくて良い
最初に感じたのはこれでした。
APNSの場合は通知を送るURLを文字列として直書きする必要があり、そのURLによって開発環境か本番環境かを識別していたのですが、houstonの場合は最初に development か production を指定するだけでURLを意識する必要がありません。
// 開発環境
APNS.host = 'gateway.sandbox.push.apple.com'
// 開発環境
APN = Houston::Client.development
直感的に分かって良いですねー。
###2. 通知処理をバックグラウンドで実行する事が可能
バックグラウンドで動かしたい場合は、こんな感じに書けばOK!
certificate = File.read("/path/to/apple_push_notification.pem")
passphrase = "..."
# 開発環境
connection = Houston::Connection.new(APPLE_DEVELOPMENT_GATEWAY_URI, certificate, passphrase)
connection.open
notification = Houston::Notification.new(device: token)
notification.alert = "Hello, World!"
connection.write(notification.message)
connection.close
###3. コマンドラインから動作確認ができる
apnというファイルを使うと、コマンドラインでPush通知の動作確認ができます。
$ apn push "<token>" -c /path/to/apple_push_notification.pem -m "Hello from the command line!"
まとめ
というわけで僕はこれをおすすめします。
この記事で紹介しているような事は、READMEに書かれています。
分かりやすいドキュメントも魅力的ですね!
どのライブラリを使うか迷っている方はぜひどうぞ!
他に何か良さげなライブラリがありましたら教えて下さい〜。