In this video I discuss how a recent DOJ letter revealed that Apple and Google were sending peoples push notifications to foreign governments.
In this video I discuss how a recent DOJ letter revealed that Apple and Google were sending peoples push notifications to foreign governments.
Why in the hell do push notifications need to be generated on google/apple servers? I’m sure our phones are more than capable of processing the information from the app to the lock screen.
Because having multiple applications continuously running in the background polling multiple servers for notifications in real time is a good way to run down your battery very quickly
The general design is a single system component wakes up the device when it’s sleeping (such as during screen off) and checks in with Apple/Google servers to see if there are any notifications.
Why?
Imagine if every app needed to wake up your device and make network requests to check for notifications etc. The more apps, the faster your battery drain as a queue of apps grows, constantly waking up your device to call home and check for notifications.
Hence Push Notification Services. Instead, developers send a notification to Apple/Google who then pool those notifications with notifications from other apps/developers. Then the single notification service on your device periodically wakes up the device and checks for notifications.
Additionally, push notification systems by OSs are designed with efficiency and minimal networks requests and bandwidth utilisation so an app can’t chew up user’s data quotas due to being poorly written.
TL;DR: It saves battery and network data, enabling users to use more apps.
I’m curious why “push notifications” really act like “pull notifications.” Your phone has to request updates from Google/Apple’s server. You’re still just polling a server frequently. Why is it not the other way around? Why is your phone not the server, and Google/Apple make the “request” to your phone?
Phones are very dynamic devices constantly migrating between unknown networks, they suck as a server.
Plus the whole point is to control device wakeups. The opposite is true for a server.
The term “push notification” comes from how it enables developers to “push” users, even when they’re not active.
An app developer can (potentially) vibrate a device, make it emit noise, flash a light, appear on the screen, and exist in a set of notifications pinned to the tops of the screens.
Check out Three Minute Games’ mobile game series Lifeline. I think that it beautifully illustrates “pushing”. How the game pushes you to help someone survive in real time, through messages that appear alongside your real notifications.
The game tells you when you’re playing, not the other way round. Buzz buzz, come and play with me.
App server > apple push server > app > lock screen.
For battery efficiency reasons it’s better to use the apple push server that’s hooked into ios rather than your own push server
It’s the difference between polling notifications, where each app wakes up once a minute and goes to ask their respective servers if there are any new notifications, and push notifications which, as the name suggests, are pushed to your phone once they arrive so those apps can sleep.
20 social media apps polling the internet for new messages every minute (or more often) in the background is more strain on the battery than one service requesting for new notifications. If that’s useful or not depends on the installed apps. Apparently you can selfhost such a server and background service, at least on Android.