In his tech blog post, developer Shao Jie explained how «GrowBook»'s single job was to fire a simple reminder notification, but achieving this reliably took him a full week of hard work. The reason is that scheduling a notification for a specific time on modern Android isn't just one problem; it's at least three major issues, and each one can fail without any error message.
The first problem is permissions. Starting with Android 13, apps need to explicitly request the «POST_NOTIFICATIONS» permission. If the user doesn't grant it, reminders simply won't appear. The user thinks the app is broken, while the app believes it's working fine. So, instead of just asking for the permission, Shao Jie built a dialog that explains to the user why the app needs to send notifications.
The second problem relates to exact timing. If you want a reminder at precisely 9 AM, you need another separate permission called «SCHEDULE_EXACT_ALARM», which arrived with Android 12. Without this permission, the operating system is allowed to delay your notifications to save battery, turning your 9 AM reminder into a 1 PM alert. To request this permission, the app has to manually guide the user to a system settings screen, which is a complex process.
Finally, the issue that really broke the developer: reminders surviving a phone reboot. All scheduled alarms are wiped when the device restarts. The fix is to use a «BootReceiver» to reschedule everything when the phone comes back on. While this works on most phones, Shao Jie discovered that cheaper Android phones with heavy custom skins can completely ignore this solution, meaning reminders might never fire on some devices. These hidden challenges explain why your reminder apps might not always work as you expect.