BowlerKitBowlerKit
Features

Notifications

10/11/2026

FCM push for Account projects and device-scheduled reminders for Guest projects.

Account push

Account projects receive server push through Firebase Cloud Messaging. Native token callbacks register the device token with /api/v1/app/device-tokens when an authentication token is available; authentication requests can also include the cached FCM token. Notification history is loaded from the backend.

Configure Firebase for the final Android package and iOS bundle ID. iOS push also needs APNs configuration and signing capabilities. The onboarding wizard handles Account notification permission.

Guest: local reminders

Guest skips FCM and notification-history APIs. The Notifications settings page schedules reminders locally from saved preferences.

SettingEffect
Push Notifications (master switch)Off cancels all reminders defined in LocalReminders.all
Tips & Updates (off by default)With the master switch on, schedules a daily reminder at 09:00 in device local time

LocalReminders in sharedLogic decides which reminders the saved settings ask for, and a LocalNotificationGateway schedules them on each platform:

PlatformMechanism
AndroidAlarmManager repeating alarm, shown by LocalReminderReceiver. Alarms are re-armed after a reboot (RECEIVE_BOOT_COMPLETED). Android 13+ asks for notification permission when you first turn a reminder on.
iOSUNCalendarNotificationTrigger repeating daily. It survives relaunches and reboots, and the first reminder asks for permission.

Android uses an inexact alarm, so delivery may be delayed by batching or device power restrictions. Permission must be granted for notifications to appear.

Only Tips & Updates schedules a Guest reminder. Queue alerts, promotions, sound selection, and vibration settings do not change local reminder scheduling or delivery in the current template. The reminder uses the platform/channel default sound.

Add a reminder

Define the reminder in LocalReminders.all and include it in LocalReminders.plan in sharedLogic. Add a preference toggle to both NotificationSettingsPage implementations and use the existing LocalReminders.apply path to schedule or cancel through the native gateways.

Validate

On both platforms, enable Tips & Updates, grant permission, and verify delivery. Check that disabling Tips & Updates or the master switch cancels pending reminders. Also check denied permission, relaunch, and reboot behavior; Account should not schedule Guest reminders.