So I always here about on how Google Android and IOS those companies can see all your notifications. This is because to show a notification it calls an API.

Is there any technical reason that it has to send your notification data to Google and Apple or is it just to get more data on you?

  • marsara9@lemmy.world
    link
    fedilink
    English
    arrow-up
    8
    ·
    edit-2
    3 days ago

    More technically there’s two ways to move data between two separate services. You can either pull or push the data.

    Assume for both scenarios that the client is your phone and the server is some machine in the cloud.

    With pulls the client calls an API and the server returns a response. Generally the www works this way. You ask a server for a wab page and you effectively pull the source down to your browser.

    Pushes work the opposite, in that a server has data for the client and needs to push or otherwise give it to you. Pulls are relatively strait forward because every server has a well known name (the domain name and url). But your phone’s IP address changes constantly. So how does a server know how to contact your device? There’s generally two ways:

    1. Your device can poll (make repeated pulls to a server checking for new data)
    2. Or you can register some identifier and your IP address with some central server every time it changes. And then the server can essentially call a URL on your device directly. This is essentially what Google and Apple are doing as it doesn’t waste CPU resources and your battery.

    You could in theory implement either of these yourself but because of the way the OSes work on both Android and iOS there’s no guarantee that you can keep a process running in the background forever. As the OS can kill your process if the OS needs more free ram, etc … The built in notification APIs are exempt from this because they are part of the OS.