Notifications
Local reminders and remote push, what each needs, and why the moment you ask for permission decides whether they work at all.
Two different things share the word "notification":
- Local — the app schedules a reminder on the device itself. "Remind me tomorrow at 9am"
- Remote (push) — your app's server sends a message to a person's device. "Your order shipped"
Both are supported. They have different requirements.
Local reminders
Nothing to configure. The app schedules them on the device, and they fire whether or not the app is running or the phone has signal.
Good for: habit reminders, timers, appointment alerts, streak nudges.
Remind people the evening before their bookingRemote push
Push works too, and there is no separate messaging service to set up: no Apple push key, no Firebase project. Delivery goes through Expo's push service, and Mistflow wires both sides, the app and your app's server.
Ask for it by outcome:
Notify the customer when their order status changesPush needs a real device
Simulators and emulators cannot receive remote push. Test it on a physical phone. If registration cannot work, your app is told why rather than silently pretending it succeeded.
Devices that have uninstalled the app are cleaned up automatically, so your list of recipients does not rot.
Ask for permission at the right moment
This is the part that decides whether notifications work at all for your app.
The permission prompt appears once. If someone declines, you cannot ask again; they have to go into system settings and turn it on, which almost nobody does.
So do not ask on first launch. Ask after sign-in, from a screen where the reason is obvious:
- Good: after someone makes a booking, "want a reminder the day before?"
- Bad: a prompt on the very first screen, before anyone knows what the app is
Tapping a notification
A tap should open the relevant screen, not the home screen. There are two cases and both matter:
- The app is already open, and the person taps a notification
- The app was closed, and the tap launched it
Handling only the first is exactly why "tapping the notification just opens the home screen" happens. Both are handled for you, but it is worth testing both: send yourself a notification with the app open, then force-quit the app and send another.
Testing checklist
| Case | How |
|---|---|
| Permission granted | Accept the prompt, confirm a notification arrives |
| Permission refused | Decline, confirm the app still works and says what is missing |
| App open | Send one while the app is in the foreground |
| App closed | Force-quit, send one, tap it, confirm the right screen opens |
| Uninstalled | Uninstall, send one, confirm nothing breaks on your side |
What is not supported
- Rich notifications with images or action buttons
- Notification categories the person can turn on and off individually
- Silent background notifications used to sync data