Silent notifications

As the name suggests:

They are silent. They don't show up on the device. You should not use them to notify the user. You should use them only to notify your own app. They are remote notifications, so they come from the internet.

Keep your app in sync with the server:

One scenario would be when the new data is available, then your servers can send a silent notification to your app having `content-available` flag as 1.
{content-available: 1}
And on receiving this notification, your app can fetch new data from your server.
Here you can see, the key “content-available” is the key that enable a silent notification.

Enabled by default:

They are enabled by default. However, users can still go to settings and turn them off. So you can't always rely on silent notifications. They may not work if the user has disabled them explicitly. In that case, your app will not get these notifications anymore.

Delivered to the app at right time:

Silent notifications are not delivered to the app as soon as it lands on the device. iOS delivers it with the best effort. When the silent notification arrives on the user device, the system gonna make some choices. It will use the user behaviour like power usage, time of the day etc. to decide what should be best time to awake the app and deliver the notification.
  • It will try to save battery, will try to match user behaviour, will try to figure out the most likely time when the user is going to use the app.  
So do not expect the silent notifications to be delivered to your app instantly.