iOSアプリ作成3:通知の実装
通知とモバイルアプリは基本的に別で実装した。ここでは通知部分について記載する。
処理のフローは以下を想定した。
- バッチを定期的に起動
- 気象庁XMLを読み込んで通知対象の警報等があるか確認
- あれば通知を送る
はじめに、どの方法で通知を送るか検討した。iPhoneに通知を送る方法は主に2つある。ローカル通知とリモート通知である。
はじめはローカル通知で済まそうとした。リモート通知を実装するためにはAppleのDeveloperProgramに加入する必要があり、年間1万円と高額だからである。できれば金をかけたくなかった。ただ、モバイルアプリが起動していない状態でバッチ処理を実行することができなさそうだったので早々に断念。通知のトリガーはバッチのため、これでは通知を送信することができない。仕方なくAppleに1万円を上納した。
次に、バッチの実行と通知の送信をどのように行うか検討した。調べたところ、以下の2つが候補に上がった。
- ニフクラ mobile backend
スマートフォンアプリのバックエンド機能(プッシュ通知・データストア・会員管理・ファイルストア・SNS連携・位置情報検索・スクリプト)が開発不要、無料(注1)から使えるクラウドサービスです。
- AWS
ニフクラ mobile backendだとプッシュ通知の実装が諸々の設定だけで済み、楽に実装できそうだったので、はじめはこちらを採用しようとした。スクリプトにバッチの中身を書き、プッシュ通知機能を呼び出せば実装できると思った。ただ肝心の、スクリプトを定期的に実行する機能がなく断念。バッチ処理は鬼門であった。
結局AWSを採用することにした。諸々省くが、最終的なアーキは以下の通り。
※Topicとは、配信対象をグルーピングし、配信対象に一斉に通知を配信するための機能
iOS通知に必要なAppleの証明書の発行は、以下のサイトを参考にした。
SNSの使い方は、以下のサイト等を参考にした。