Closed9

iOSアプリ作成3:通知の実装

mikannmikann

通知とモバイルアプリは基本的に別で実装した。ここでは通知部分について記載する。

mikannmikann

処理のフローは以下を想定した。

  1. バッチを定期的に起動
  2. 気象庁XMLを読み込んで通知対象の警報等があるか確認
  3. あれば通知を送る
mikannmikann

はじめに、どの方法で通知を送るか検討した。iPhoneに通知を送る方法は主に2つある。ローカル通知とリモート通知である。
https://repro.io/contents/local-push-notification/

mikannmikann

はじめはローカル通知で済まそうとした。リモート通知を実装するためにはAppleのDeveloperProgramに加入する必要があり、年間1万円と高額だからである。できれば金をかけたくなかった。ただ、モバイルアプリが起動していない状態でバッチ処理を実行することができなさそうだったので早々に断念。通知のトリガーはバッチのため、これでは通知を送信することができない。仕方なくAppleに1万円を上納した。

mikannmikann

次に、バッチの実行と通知の送信をどのように行うか検討した。調べたところ、以下の2つが候補に上がった。

  • ニフクラ mobile backend

    スマートフォンアプリのバックエンド機能(プッシュ通知・データストア・会員管理・ファイルストア・SNS連携・位置情報検索・スクリプト)が開発不要、無料(注1)から使えるクラウドサービスです。

https://qiita.com/natsumo/items/ebba9664494ce64ca1b8

  • AWS
mikannmikann

ニフクラ mobile backendだとプッシュ通知の実装が諸々の設定だけで済み、楽に実装できそうだったので、はじめはこちらを採用しようとした。スクリプトにバッチの中身を書き、プッシュ通知機能を呼び出せば実装できると思った。ただ肝心の、スクリプトを定期的に実行する機能がなく断念。バッチ処理は鬼門であった。

mikannmikann

結局AWSを採用することにした。諸々省くが、最終的なアーキは以下の通り。
※Topicとは、配信対象をグルーピングし、配信対象に一斉に通知を配信するための機能

このスクラップは2023/10/12にクローズされました