I just inherited an Android app project as a (technical) product manager that uses a 5 second timer to poll a remote URL to see if some work initiated by the app has finished. My initial reaction of course was to suggest to replace this with a push/notifications mechanism, preferably Android's built in GCM, so the work is removed from the app on the phone and put on the server side.
Surprisingly I met resistance from the development team. A former product manager (my predecessor) seems to have explicitly requested the implementation to work this way. Unfortunately, he wasn't big on documenting his decisions, so I now have to try to retrace which reasons could have led to this decision to justify a change in the implementation. I came up with the following pro and contra list:
Contra Push / Pro Poll
- -
- -
- Server side work needed to implement push notifications
- -
- No direct way to know if push notification was successfully delivered
- Scaling push notification delivery can be a pain
Pro Push / Contra Poll
- Work is removed from device
- Lower bandwith usage
- Lower battery usage
- More responsive application and device
- Server load is lowered as devices don't poll every x seconds even if nothing changed (DDOS)
- -
- Push is faster (more responsive) than 5 seconds (current timer)
- Delivery proof of push notification is trivial to implement with a poll of a remote URL (here it makes sense)
- Scaling push notification delivery is a solved problem with lots of open source projects and trivial implementation with a message-queue
- Are there any other reasons to avoid Push Notifications and use Polling for this usecase?
- Are there any other reasons to avoid Polling and use Push Notifications for this usecase?
- Any other important things I forgot?