Signal uses the socket-io library to maintain an open socket with their backend; it's incredibly resource intensive. Tutanota uses the SSE API for their push noticication service and does a pretty good job on their end as it relates to battery consumption. That said, if every app were to implement their own push notification service, 5+ apps doing on a device that turns a "mobile" phone into something that always needs to be plugged in. It does not scale. I ran a test on Android using kmp-tor and a ktor server exposed as a hidden service, pinging it every 5 min via cronjob from my server at home. Over 24h, battery consumption was about 5%-7% depending on the test device. Working on a product right now for drop in replacement to google/apple services, but it's far from ready.

Replies (2)

Any chance you can help Pokey instead of building another product? I would love to keep it alive and just get Amethyst users to install Pokey instead of running a Pokey service inside of Amethyst.
Aren’t there some API to align background fetch events from multiple apps so they run at the same time? I think macOS does that even on sleeping intel machines, timer coalescing ensures less “power naps” wake up the machine less frequently”.