What are iPhone Push Notifications? They are a service that Apple provides for iPhone developers and users. Instead of each application on iPhone having it’s own service running to listen for incoming notification, Apple provides one service to listen for incoming notifications. Apple can this way insure that it is passive on the iPhone’s part, thereby maximizing battery life. And since it is one service running for the entire OS and any application that needs it, and not a background service for each app, it really is the maximum efficient way for apps to receive notifications while “in the background.”
I really do like the concept of a single Push Notification service for the sake of battery life and phone performance. I use Push Notifications primarily for BeejiveIM (Gtalk), Pushmail, Facebook, and Echofon (twitter). I’ll use BeejiveIM as an example of how this works.
In order for me to stay signed in to Gtalk when BeejiveIM is “in the background” (I use quotation marks because the app is actually not running in the background at all, and until iPhone OS 4 comes out, it’s state is not even stored in memory, making it’s launch time a little long to feel like it really is running in the background), BeejiveIM’s servers must maintain my Gtalk account’s connection to the Gtalk server. If someone sends me an instant message, the BeejiveIM server through which my account is signed in, sends a notification to the Apple Push Notification Server (PNS), and the PNS pushes the notification to my phone where I see both a pop-up message, and a badge is placed on the app’s icon.
If you followed that you can see a drawback here in using a 3rd party server through which I am signed in to my Gtalk account, but I’ve never really had a problem with my account being signed in through Beejive’s middleman server. And for the most part it works really well.
But here are the real draw backs. And the kicker is, these could be eliminated by better implementation (isn’t Apple supposed to excel at implementation?). Current implementation is better than nothing (certainly better than the iPhone OS 1 and 2 days where we had NOTHING) but I REALLY hope Apple expands Push Notifications soon.
I would like to see 2 things ASAP:
1. Notification Management (and no more single mode disruptive notification popups)
Push Notifications do not stack, but in it’s current implementation, if they did, it would be even worse! Because they popup over everything, and nothing else is accessible until the notification is dismissed. And if I got 10 notifications while my phone was in my pocket or something, I would have to acknowledge and dismiss each one. And of course, once I have acknowledged and dismissed a notification it is gone, never to be seen again.
So I want Notification Management. The way I want this to work is to have a place where all notifications are collected (push or local, missed calls, ALL notifications) and I can view them at any time, mark some or all as read etc.
And then to replace disruptive popups, how about a double height status bar of a color not yet used by iPhone, say yellow perhaps (green is for active calls when not viewing the call screen, looks like red is for active VOIP calls in iPhone OS 4, blue is for an active tethering session), with text displaying the number of new notifications.
2. I want the push notifications to wake the app in question so it can update with the new information
You see, the push notification system shows me something is new, but the app receiving the push notification does not update with that new information. The only thing the app gets is a badge with a number on the icon. So I have to wait for the app to pull that new info in when I open it. It’s even worse right now than it will be with iPhone OS 4, because right now the app is killed completely when closed so when opening, I must wait for the app to load itself into memory. In iPhone OS 4 this will be somewhat alleviated because OS 4 will save the state of the app in active memory so that when you activate it again, it can pick up right where it left off (Sound familiar Android users?). So you don’t have to wait for it to load itself into memory. But you still have to wait on the app to receive the new information that was already sent to you in a push notification.
So to fix this, how about to go along with the way Apple is approaching multitasking (freezing the app in active memory), let the push notification wake the app up in the background, update with the new information, then if the user hasn’t activated that app, let it go back to sleep. That way it’s ready to go when I open it.
These two things seem simple to implement, and they seem like no brainers to me. And the lack of those two things really hurts the iPhone user experience. But Apple has had a habit of SLOWLY (painfully so) adding much needed features as we go so we will see what develops for iPhone OS 5 I suppose. I can’t imagine Apple won’t expand on their way of approaching multi-tasking…
