Gone Mobile

90: Push Notifications are Hard!

January 19th, 2024


In this episode, Jon and Allan discuss the complexities of implementing push notifications on iOS and Android. They delve into the history of push notifications and the challenges developers face in tackling this topic. They explore the setup and configuration process for both platforms, including the use of certificates and entitlements on iOS and the use of Firebase on Android. They also discuss the lifecycle of notifications, handling background execution, and the differences between iOS and Android in terms of permissions and notification handling. In this episode, Jon and Allan discuss various aspects of push notifications on Android, including permissions and changes, setting up notifications, specifying intents in notification payloads, silent notifications, sending notifications to tags, handling multiple devices, and the Shiny Push library. They also touch on source generators and boilerplate code. Overall, the conversation provides valuable insights into the complexities and best practices of implementing push notifications on Android.


Push notifications are a complex topic that require careful setup and configuration on both iOS and Android.
Developers face challenges in implementing push notifications due to the differences between platforms and the evolving nature of the technology.
The setup and configuration process involves obtaining certificates and entitlements on iOS and using Firebase on Android.
The lifecycle of notifications and the handling of background execution differ between iOS and Android.
Permissions and changes in Android, such as the introduction of post-notifications, add another layer of complexity to push notification implementation. Permissions and changes in Android can impact the implementation of push notifications.
Notifications on Android can be set up to route directly to an activity by specifying an intent in the notification payload.
Silent notifications on Android can be used to wake up the app and perform background tasks.
Sending notifications to tags allows for logical grouping and targeted delivery on Android.
Handling multiple devices and ensuring notifications are received on all devices can be challenging.
The Shiny Push library simplifies the implementation of push notifications on Android.
Source generators can help reduce boilerplate code and make implementation easier.


  • Hosts: Jon Dick, Allan Ritchie
  • Audio Engineer: Jim Heath


  • 00:00 Introduction
  • 01:09 Tackling Hard Problems
  • 04:00 History of Push Notifications
  • 08:30 Setup and Configuration on iOS
  • 13:02 Registering for Notifications on iOS
  • 15:22 Lifecycle of Notifications on iOS
  • 17:43 Silent Notifications on iOS
  • 19:27 Handling Background Execution on iOS
  • 22:06 Complexity of Cross-Platform Implementation
  • 24:19 Setup and Configuration on Android
  • 28:35 Handling Notifications on Android
  • 32:19 Permissions and Changes in Android
  • 33:16 Permissions and Changes
  • 35:27 Setting Up Notifications on Android
  • 36:43 Specifying Intents in Notification Payloads
  • 38:19 Silent Notifications on Android
  • 41:48 Sending Notifications to Tags on Android
  • 44:29 Handling Multiple Devices on Android
  • 49:15 Shiny Push Library
  • 52:21 Server-to-Server Notifications
  • 56:08 Source Generators and Boilerplate
  • 57:44 Plugin Pick: Shiny Push

Episode Comments