I am just going to say this now, before anyone asks: Push notifications will not be coming to Talon unless something changes with the Twitter APIs. I have created "Talon Pull" with is simply an always on, listening/streaming service that will receive new tweets from Twitter whenever your Twitter handle is included. To read more about this option, look at the "Talon Pull" section below the "Reasons" section.
This will be the more technical part of this post, if you don't want to read and understand it, then you will have to just accept my answer from above. If you don't accept that I know what I am talking about... Then by all means, read on, I will try to keep it as simple as possible.
To access Twitter, they have provided us with the REST APIs (currently version 1.1). These APIs allow developers to communicate with Twitter in real time by just submitting requests to get data from the network. They make it relatively simple - if you know what your doing - to obtain the data that they allow you to get and store, but there are plenty of limitations to these APIs, which make sense: Twitter is a completely free service and make their money off of advertisements. They want people to use their official Twitter products (such as the web or their own Android app) to access their services because they are able to place advertisements in them and that is the only way they make money. So they just aren't going to make some things available for 3rd party developers.
One of those things is their push notification system. As I said before, they allow us to access their services with these REST APIs, but they also have a Streaming API available so that a 3rd party service, such as this one, could be "always connected". Sounds great right? Maybe, maybe not. More testing probably needs to go into it, because it is very new in Talon. For the past few weeks though, I can say that it doesn't seem to take up much more battery than sycning on an intervol does. So try it and let me know. I have done the best I can to optimize this service, but if you want to know more about it, read below in the "Talon Pull" section
What these streaming APIs should be used for is a server side interaction that would then connect to GCM (Google Cloud Messaging) and send push notifications from there. I would love to say I am working on something like this, but it isn't possible for a developer like me. I don't have the time, resources, or knowledge to set up a complex server like this. The knowledge I could get, but I am a 20 year old kid, working off of this 1 MB/sec internet connection while being a full time college student at the University of Iowa. I wouldn't be able to handle the upkeep of the system like this or the traffic. I just don't have the backend necessary for this type of thing, and there aren't many developers who do. So push notifications from the server side? Way out of the question.
That leaves only one thing to do: wait. Maybe Twitter will open up some kind of push notification service to it's developers, but I wouldn't count on that. The ideal thing for them to do would be to set up their own GCM server for us to communicate with, but I don't see that as being likely at all because of the advertising. That would take away one of the main draws for their app, leaving it with almost nothing that 3rd party developers can't do. For now though, "Talon Pull" seems to be working well and I would encourage you all to try it out. Battery seems to be fine, the one drawback is that you must be connected to a datasource right when the interaction happens or it won't be saved or shown.
Talon Pull - My solution/workaround
As I said before, this is NOT push notifications. Push notifications are sent to your device to notify you from some kind of server. They aren't always on, and only turn on when your device receives the info from the web service.
Talon Pull on the other hand, uses Twitter's Streaming API to just create an "always on" service to be constantly listening for and streaming tweets that contain your Twitter Handle. The way this works is that you are signed in with your API keys after you turn on the option to enable Talon Pull. I then just create this "listener" that Twitter's servers will send new tweets to. Luckily, they will take care of most of the filtering of those tweets on their end, to reduce the load as much as possible on your device (because before the filtering, it literally will receive every single public tweet that is happening. It was amazing when I first flipped and saw the tweets flowing over my log haha). So we filter it down to as few of tweets actually reaching your device as possible, then I start broadcasting the notifications when you receive the new ones.
Overall, it is a relatively simple process, the problem with it though, you have probably already realized, you have to be constantly connected with a data service or the app won't know when to receive the new tweets. Obviously that is the part that is going to end up taking the battery (if it does), not "bloated" or "un-optimized" code as some of you I sure believed. So far though, through my testing, it doesn't seem to have a very big impact on battery overall, but I suppose that it potentially could if you are using Twitter that much more than I do.
If there was a better way, I wish I could find it. I think that this is the method that most 3rd party services use to send you those fake "push notifications". So there ya have it, hope you learned something. It works well and it is the only way to get a lot of information like who favorited or retweeted your statuses
Thanks for the read, if you made it all the way, hope that gives you an idea as to why push notifications just aren't even an option at this point and what my solution to that problem has been, even if it is not ideal. It works, and it seems to be working quite well for me.
So just know: "Talon Pull" isn't quite the same as push notifications, but it is as close as you are going to get and is working better for me than I would have ever imagined. Enjoy!