[SwiftUI]What I wear counter/着た回数カウンタ - (7) Local Notification
- handmadeapp
- 2020年2月17日
- 読了時間: 1分
更新日:2020年2月18日
着た回数カウントアプリの最後の機能、Notificationを設定します。
要望
「着たものの登録を忘れていたら、指定の時間にリマインドを受信できること」
機能要件としては、
①最後に着たものを登録した日付を記録しておく
②リマインドを送付する時間、リマインド送付On/Offを設定できる
③指定の時間までに、その日に着たものを登録していなければNotificationを表示する
を順に設定していく。
①最後に着たものを登録した日付を記録しておく
「Register what I wear today」ボタンタップ時のアクションに、
その日の日付を記録する機能を追加。データはUserDefaultsに保存。

Date()をUtilityで設定したdateFormatを利用して、yyyy/MM/ddのStringに。
表示は、以下のようにUserDefaultsを参照。
②リマインドを送付する時間、リマインド送付On/Offを設定できる

TimeSettingViewは以下の通り。
設定した時間は、UserDefaultsに設定。
・"alertHour"(integer)
・"alertMinute"(integer)
また、こちらの記事を参考に、AlertTimeクラスを作成。
LocalNotificationManager()については、③で。
③指定の時間までに、その日に着たものを登録していなければNotificationを表示する
LocalNotificationManagerは、こちらの記事を参考に。

LocalNotificationManagerクラス。
add(request)の前に、"lastRegisterDate"が今日の日付かどうかを確認し、
今日、まだ着たものを登録していない場合にのみ、Notificationを表示するように。
AppDelegate.swiftに以下を追加。
TimeSettingViewでToggleボタンをOnにした際に、以下のアラートが表示される。

以降、指定した時間にNotificationが表示される。

Comments