I’m developing an iPhone (and later Android) app that has real-time features, i.e. when one user posts something others will see it (depending on where they are in the app).
When implementing this in iOS one must keep in mind that network activity takes up lots of battery power.
The iOS App Programming Guide says “Connect to external network servers only when needed, and do not poll those servers.”
How then is it possible for apps to have near real-time updated information?
You should use the Push Notification Service
http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ApplePushService/ApplePushService.html#//apple_ref/doc/uid/TP40008194-CH100-SW9
This way, your application acts as a listener and can react to new Notifications that carry customized Payloads of data received by a server. even when it’s running on background or not running at all.