【Swift】UNNotificationTriggerとは?使い方や 他の通知トリガーとの違いをわかりやすく解説

B!

iOSでローカル通知を実装する際、通知のタイミングを制御するのが通知トリガーです。

Appleが提供する通知トリガーには主に3つの種類があり、それぞれ異なる用途に特化しています。

この記事では、最もシンプルな UNTimeIntervalNotificationTrigger を中心に、他の2つのトリガーとの違いも含めて、わかりやすく解説します!

UNTimeIntervalNotificationTriggerとは?

UNTimeIntervalNotificationTrigger は、指定した秒数(TimeInterval)後に通知を発火させるためのトリガークラスです。

これは UserNotifications フレームワーク に含まれています。

「〇〇秒後に通知を表示する」といった使い方をしたい時に最適で、シンプルなリマインダーやタイマー機能などに活用されます。

このトリガーは、UNNotificationRequest に渡すことで、通知をスケジュールする際の「タイミング指定」として利用されます。

具体例:5秒後に通知を出す

以下は、5秒後に通知をスケジュールする基本的なサンプルコードです。

この例では、アプリが起動中でもバックグラウンドでも、5秒後に通知が表示されるようになります。

主要な引数とその意味

UNTimeIntervalNotificationTrigger の初期化には、以下の2つの引数を指定します。

引数名 説明
timeInterval TimeInterval 通知を発火させるまでの時間(秒単位)。最小1秒以上
repeats Bool 繰り返すかどうか。true にすると指定間隔で繰り返し通知される

例:UNTimeIntervalNotificationTrigger(timeInterval: 10, repeats: false) → 10秒後に1回だけ通知を出す

UNTimeIntervalNotificationTriggerの活用シーン

このトリガーは非常にシンプルな構成で使いやすいため、以下のような場面で役立ちます。

  • 短時間後に通知を出したいとき(例:タイマーアプリ)
  • 一定間隔で繰り返し通知したい(例:定期リマインダー)
  • 時刻ではなく「今から何秒後」に注目した通知処理
  • アラーム的な用途(指定秒後に起こすなど)

タイマー形式のUIやカウントダウン処理との相性が良く、ユーザーが「今から●●分後に教えて」といった目的で通知を利用したい場合にぴったりです。

他の2つの通知トリガーとの違い

iOSには UNTimeIntervalNotificationTrigger 以外にも、以下の2つの通知トリガーが用意されています。

それぞれの特徴と使い分けを理解することで、より適切な通知実装が可能になります。

UNCalendarNotificationTrigger

用途: 特定の日時に通知を発火させたい場合

特徴:

  • カレンダーの日付・時刻をベースに通知タイミングを指定
  • 「毎日午前8時」「毎週月曜日」といった定期的な通知に最適
  • DateComponents を使って年月日時分秒を細かく指定可能

使用例:

TimeIntervalとの使い分け:

  • 「2時間後」→ TimeInterval
  • 「明日の朝8時」→ Calendar

UNLocationNotificationTrigger

用途: 特定の場所に入る・出る際に通知を発火させたい場合

特徴:

  • GPS位置情報をベースにした地理的なトリガー
  • 家に着いた時、会社を出た時などの位置連動通知
  • CLRegion を使って円形エリアやビーコン範囲を指定

使用例:

TimeIntervalとの使い分け:

  • 「30分後」→ TimeInterval
  • 「この場所に着いたら」→ Location

3つのトリガーの比較表

トリガー名 基準 主な用途 繰り返し対応
TimeInterval 経過時間 タイマー、カウントダウン ○(60秒以上)
Calendar 日時 定期アラーム、スケジュール
Location 位置情報 地理的リマインダー

使用時の注意点

UNTimeIntervalNotificationTrigger を使う際には、いくつかの制限事項や注意点があります。

  • timeInterval1秒以上 でなければならない(0秒やマイナス値はエラー)
  • repeats = true にすると、timeInterval60秒以上 でなければならない(Appleの仕様)
  • 通知を送る前に UNUserNotificationCenter.current().requestAuthorization() で許可を取得する必要がある
  • アプリがバックグラウンドや終了状態でも正しく動作するが、繰り返し通知はシステムによって制限を受けることがある

短時間の繰り返し通知や大量の通知を設定すると、OS側で制限される可能性があるため、実装の際にはバランスを考えることが重要です。

まとめ

今回は UNTimeIntervalNotificationTrigger について詳しく紹介しました。

UNTimeIntervalNotificationTriggerのポイント:

  • 指定した秒数後に通知を出せる便利なトリガークラス
  • timeIntervalrepeats の2つの引数で柔軟に設定できる
  • タイマーやカウントダウン、短期リマインダーなどの実装に最適
  • 使用前には通知の許可取得や秒数制限に注意が必要

トリガーの使い分け:

  • 時間経過ベースUNTimeIntervalNotificationTrigger
  • 日時指定ベースUNCalendarNotificationTrigger
  • 位置情報ベースUNLocationNotificationTrigger

適切なトリガーを選択することで、ユーザーにとって価値のある通知機能を構築できます。

iOSアプリに通知機能を組み込む際は、ぜひこれらのトリガーを使い分けて実装してみてください。

最新の記事はこちらから