Just lessons from HPBN Chapter 3 - Mobile Networks. Main takeaway is to use the radio once for all the data and then sleep. Use the radio as little as possible.
Behaviour of app on wifi and mobile data can and should be different.
Use Video Optimizer Open Source Project (earlier known as AT&T Application Resource Optimizer) for analyzing app performance.
Polling is extremely inefficient, use push notifications instead. All communications should be aggregated if possible. A significantly more efficient strategy to send data from the server is to push updates only when the radio is active.
Remove unnecessary Application Keepalives. The radio can be in a low powered state while a long lived TCP connection is established at the PGW. An Application Keepalive destroys this battery saving.
Your app should respond to a user event within 100ms for it to feel fast. So, don’t couple the feedback with network communication. Anticipate higher latency, as just the control plane RRC negotiation will destroy the apps snappiness.
Latency and bandwidth change frequently on mobile networks, don’t cache these measurements. Avoid these estimates
Bursty usage of radio is the best. LTE and HSPA+ prioritize bursty data flows. Downloading/uploading in entirety is preferred from chunking.