So after talking with matzew for a bit, I've put together this list
of things that need to be done on Android to have a good push
experience (for the user). My goal is that we discuss these things
to inform a (eventual) push client spec.
1) Gobs of XML Boilerplate.
the Android manifest needs permissions and uses permissions
stanzas as well as defining the Google Cloud Message receiver. *We
should probably have tooling which does this for the user*
see:
https://github.com/secondsun/devnexus2013demo/blob/master/coffeeExample/AndroidManifest.xml
2) A Intent handling Service.
This Service class extends *GCMBaseIntentService* has three
responsibilities, *Registering* clients, *Unregistering* clients,
and *Handling* messages.
see:
https://github.com/secondsun/devnexus2013demo/blob/master/coffeeExample/src/net/saga/android/coffeeexample/GCMIntentService.java
I would prefer developers not have to extend this class, but that
is a talk for a different day.
3) Some utlities for handling/parsing/routing notifications to other
bits of code. Again, this is a talk for a different day.
Appendix:
Here is a link to a class based HEAVILY on Google's Service
Utilities class from their demo apps
https://github.com/secondsun/devnexus2013demo/blob/master/coffeeExample/src/net/saga/android/coffeeexample/ServerUtilities.java