Now Apple does not offer anyway that I have heard of for people to offer an alternative app store.
Now Apple does not offer anyway that I have heard of for people to offer an alternative app store.
This CAN be overcome by a special app that keeps connection with an alternative push notification server, but it would still be prone to offloading and would have to run a persistent notification.
The proper solution would be unlocking notification services on Android devices and allowing to chose alternative push notifications providers. This can also be applied to iOS.
They may not perform anticompetitive behaviour like bundling (as they have already been fined for in the EU over Android and Play Services).
I don't see the anti-competitive part there. There are good reasons around consolidating resident daemons and only using a single TCP connection with a special keep-alive configuration.
And from experience, it's perfectly possible to not use FCM, at the cost of a persistent notification that alerts the user about this, so they can get rid of abusive apps.
Maybe not exactly anti-competitive (but maybe): It requires you to have hundreds of megabytes of Google blobs with root permissions on your device, which some people don't like.
If course this pales in contrast to Apples actions.
Moxie has cited this previously with no proof, despite protocols like xmpp performing similarly on mobile networks.
https://web.archive.org/web/20170708204409/www2015.wwwconfer...
Whether FCM uses these technologies, I don't know. I lack the hardware to easily inspect the mobile radio traffic on the necessary level (the best would be a DIY stingray based on one or two OsmocomBB-capable GSM phones, maybe combined with a Faraday cage to place one of them into, together with the smartphone.
The issue is that a long lived TCP connection consumes some valuable RAM and a port number on a valuable IP address. It costs carriers something for push notifications to work, so, they tend to aggressively close long lived TCP connections that aren't going to recognised push datacenters.
For that to work you need business relationships with the carriers of course, stable IP addresses, and enough users of your push service for it to be worthwhile.
IPv6 would fix it by eliminating IP scarcity and CGNAT, but most mobile networks aren't provisioning handsets with IPv6 addresses.
The only 'special treatment' that happens is on Google/Apple servers which determine the priority of some of notifications.
How do I know? We're very involved with the XMPP protocol. The irony is that it is insanely hard to maintain an XMPP connection to a client on both Android / iOS, despite devices under both these OSs being an always connected XMPP clients.
I have built several push services for my previous projects it always sooo hard to implement right. iOS for example, uses 25+ different parameters to optimize push delivery depending on your app usage, on how you are using your phone and so on.
Good luck to build this as "third party" and keep everything private.
There are really almost no need to run app in the background or at least constantly send data without a reason (mostly just tracking).
UPD: When deciding how to build something i have one small trick: first ask question about who can make better decision about something?
For example? Who is more capable to make decision about battery usage, about tweaking core performance, etc? It is obviously kernel or silicone itself. App will never have required information to build perfect performant app for every device. This just means that you have to build a kernel by yourself and even more: common kernel for every phone.
Aren't battery stats not enough for you? If your app uses too much battery, you can stop using it. Or you prefer some other people to make this decision for you?
My understanding is that this is not an effect of side loading, but an app not using Google Cloud Messaging, which is not available when play services are not installed.
Anyone can distribute their Andrioid app using their desired way. Even via web site. Exmple: https://signal.org/android/apk/
Sending push messages to Android phone using Firebase Cloud Messaging(FCM, formerly GCM) requires "Google Play Services" installed on that Android device. Google Play Services is not depends on Google Play Store and is not requires that applications using Play Services should installed by Play Store.