← Back to team overview

ubuntu-push-devs team mailing list archive

How and what other people do it

 

Hello!

I've been looking at some other push systems and what they do.

The first thing I've found is that apple also uses a developer controlled
side channel to share the notification queue with the developer:

https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Art/token_generation.jpg

This makes sense since there must be some way for the developer to
associate the device/Ubuntu id with the user id on their app.

For example, gmail needs to know that lucio.torre@xxxxxxxxxxxxx and his
device Nexus 4 id XXXX has the gmail app installed and connected to the
lucio.torre@xxxxxxxxx account. So when mail arrives for
lucio.torre@xxxxxxxxx they know they have to send an ubuntu push
notification to my device/account.

We could mediate this message, but this does not mean that the developer
will not need to setup a server to get notified when someone installs the
app and who that user is. The issue is that if we mediate that we are just
adding overhead.

The options I've seen that don't require the app developer to have a server
are mostly around broadcasting or targeting. "Send message to all" or "Send
message to this segment of the users of my app.". Besides the targeting
information or opaque ids, the users remain anonymous.

The other thing I've seen these services do is integrate notifications for
all platforms.

So, to summarize:
a- To send broadcasts there is no need for a developer service.
b- To send unicasts, the user needs to associate the device with the app
id, and that requires talking to the developer service
c- Doing segmentation or a meta notification service seems out of scope at
this point.

We could (b) differently. Instead of getting the queue id and giving it to
the developer service, we could get the developer service id and store it
in the queue. The problem with this is that, to continue with the gmail
example, google would have to contact us for every mail they get just in
case some user has an ubuntu device connected to that account.

Thoughts?

Lucio.
ps: the "other" sites:
http://www.xtify.com/
http://openpush.im/
http://www.airgramapp.com/
http://push.io/
https://parse.com/products/push
http://aws.amazon.com/sns/
http://www.windowsazure.com/en-us/develop/mobile/tutorials/get-started-with-push-dotnet/