Help us understand the problem. What is going on with this article?

iPhoneアプリのPush通知をRubyで実装するならhoustonが良さげ

More than 5 years have passed since last update.

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の場合
// 開発環境
APNS.host = 'gateway.sandbox.push.apple.com'
houstonの場合
// 開発環境
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!"

まとめ

というわけで僕はこれをおすすめします。

nomad/houston

この記事で紹介しているような事は、READMEに書かれています。
分かりやすいドキュメントも魅力的ですね!

どのライブラリを使うか迷っている方はぜひどうぞ!
他に何か良さげなライブラリがありましたら教えて下さい〜。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away