KUnifiedPush: KDE's efficient way of delivering notifications to your apps

KUnifiedPush, KDE's client library for the UnifiedPush protocol, has reached version 1.0.0. KUnifiedPush provides a way to deliver notifications instantly to multiple apps on your devices even if the apps are not running.

Ideal for social media, weather and instant messaging apps, it will also contribute to improving the battery life on your mobile devices.

https://blogs.kde.org/2024/10/19/kunifiedpush-1.0.0-is-out/

@[email protected]

KUnifiedPush 1.0.0 is out!

KUnifiedPush provides push notifications for KDE applications. Push notifications are a mechanism to support applications that occasionally need to receive some kind of information from their server-side part, and where receiving in a timely manner matters. Chat applications or weather and emergency alerts would be examples for that. More technical details about KUnifiedPush are available on Volker's introduction post about KUnifiedPush.

KDE Blogs
@kde @[email protected] I'm sorry to see you've gone the "14 + 1 standards" XKCD way. Is there any reason why?

It turns out, in this case it isnโ€™t. This is about a KDE library (service?) that uses Unified Push, which is a standard implemented by servers like ntfy, Nextpush, and Gotify. If you use any f-droid apps, youโ€™re probably already using Unified Push. Home Assistant uses it for mobile notifications, too.

It is, probably, the third biggest notification protocol after Googleโ€™s and Appleโ€™s, only it doesnโ€™t route through their servers or provide them with more of your data to harvest and sell.

Unified Push is a good thing. It looks like KDE just makes it accessible to KDE application developers through the KDE libraries.

Home assistant uses it for notifications now? Iโ€™ve got the f droid version but donโ€™t see that.
@sxan @timbuck2themoon This is new to me too ๐Ÿค” I'd love it if this were the case but so far I see no evidence of it.

I meant the server can deliver notifications via ntfy:

docs.ntfy.sh/examples/#home-assistant

Yeah, I donโ€™t think the mobile app communicates with the server over anything but the web API.

Examples - ntfy

Send push notifications to your phone via PUT/POST

Oh OK. Yes Iโ€™ve had this going for a while. If Anyone wants some configs Iโ€™ll paste them.
@sxan I have never used f-droid, as I do not use Android.
Regardless, all banks and fintechs in my country will disable your account you if they detect sideloading apps like it.

ntfy is in the app store, so you donโ€™t have you side load it. I donโ€™t know how many iOS apps use ntfy, but many Android OSS apps will ask you over which notification system you want to work.

I was just clarifying that this isnโ€™t one of the XKCD proliferation cases. Apple and Googleโ€™s push notifications are proprietary and give them full access to your notifications. Unified Push is the OSS alternative, and this KDE enhancement doesnโ€™t createa another one: it uses the defacto standard OSS push notification specification.

The fact that ntfy is in the Apple app store makes me suspect there must be some number of iOS apps that can be configured to use Unified Push.

โ€Žntfy

โ€ŽSend push notifications to your phone from any Bash or PowerShell script, or from your own app using PUT/POST requests, e.g. via curl on Linux or Invoke-WebRequest. ntfy is a client for https://ntfy.sh, a free and open source HTTP-based pub-sub service. You can subscribe to topics in this app, andโ€ฆ

App Store
@crystalmoon @kde @[email protected] what exactly are the fourteen other push notification frameworks for desktop Linux? Iโ€™ve literally never seen one before
If you bothered to read the linked article and Volkerโ€™s blog post (linked from the article), which you obviously havenโ€™t, you would see how this is not the case.
@Bro666 I came to post this Just after reading Mr Krause's post and the background of UnifiedPush. My gripe is because there are already existing frameworks like w3c's Web Push (which is not addressed in UnifiedPush, as far as I could see) and the native push frameworks of each mobile OS (which are disqualified on privacy reasons). Hence why I said "14 push frameworks", because KDE is aiming to serve both desktop and mobile with a new standard, inducing even more fragmentation.
KDE is not introducing a new notification framework. It is using something that already exists, so still barking up the wrong tree.
@crystalmoon Ok, so you've said that there is "14 push frameworks" really meaning only one โ€” Web Push.
So let's see if there is a thing at all.
According to the Push API spec (https://w3c.github.io/push-api/) the Abstract already gives us a main idea: it is designed for WEB applications, not mobile or desktop at all, and actually requires a running app instance. It's a lightweight, limited part of the app that runs in background (called Service Worker) and may be stopped/removed by browser.
Push API

I have implemented ones before and can say for sure: even if it's called Push API, it's actually about PULLing notifications from a remote server using a "special" part of your app, not about PUSHing the notification to your app by external system (which is required on mobile for power saving reasons).
So... yeah, there is still 0 standards for mobile/desktop push notifications except UnifiedPush. And if there is none, where the fragmentation you're talking about is?

@crystalmoon @Bro666 Server to server is specified with RFC8030+RFC8291+RFC8292 (aka web push) \*, so we're far from xkcd 14+1 protocols

\* This clarification is being merged to spec

@crystalmoon @kde @kde if i had a penny for every time someone mentions xkcd/927 in a situation where there are no standards, id be a billionaire
@crystalmoon @kde @[email protected] UnifiedPush is the only relevant standard being actively adopted by free software. You need an ecosystem around a push standard for a client and server setup to be useful/practical, and nothing comes close to UnifiedPush. We'll never get rid of the 14+1 problem if we don't focus efforts on a particular open standard, and this IS the one by all means.
@crystalmoon @kde @[email protected] which exisiting standards are you talking about then?