Tuesday, June 24, 2014

Differences between iPhone and Android Push Notifications: [APNS Vs GCM]


The documentation on how push works are clearly explained here on the following links:

The above references should help you to understand how push notification works. I felt it would be repetition to explain the content again here. Felt writing an article that explains the differences and some nuances between various push mechanisms: [Note: Please feel free to correct me, if any of the below information is incorrect.]



iOS
Android
Permissions  Methods are available to identify the user’s opt in status No methods are available
Feedback Service Yes, along with silent push it’s a great way to measure success Yes, but lots of tweak is required.
What happens when push reaches the device iOS automatically puts the message into notification center Android informs the app that there is a message, and app can decide whether to display it or hide it.
Store and Forward [What happens if users device is offline, when push is attempted to be delivered] It stores only one unsent message that too recent. It can store multiple based on collapse keys.
Message Expiry Apple didn’t reveal. It can be user set value with time-to-live parameter [0-4 weeks max]
Localization Yes using loc-key,loc-args Not directly but we can use same iOS approach
Two way messaging No Yes using XMPP
Multi-device Messaging No Yes
Receiving messages from Multiple senders No Yes
Misc Silent push,ioS8’s category support Sync to send, Priority flag support.


For Push 101 and other engagement techniques read Push 101
For updates on Android GCM 3.0 refer GCM 3.0 Push
New Blog on Apps & Bots : Why Bots wont replace Apps

2 comments:

  1. Hey,

    I was reading about GCM and it has support for iOS as well which uses APNs for push notification. Why to use APNs separately if GCM can handle it and provider us with the status of notification as a response. It can save us from using Feedback Service separately in case we want to track uninstalls using silent push notifications.

    Forgive me if I am missing something here.

    ReplyDelete
  2. @Ashish: Great Question.
    i) When I wrote this article Google didn't support push for APNS.
    ii) This article is still relevant because even though Google supports it it still uses APNS to deliver the actual push. They are just an intermediately like Urbanairship or xtify. So previously it was like Your server => UA/xtify/your own service => APNS AND/OR GCM => Device. Now one possible option can be Your server => GCM => APNS (if payload is for iOS) => Device. Hence all the limitation are still valid.
    There are other benefits as well using GCM for push instead of 3rd party. You can read more here http://mobileappdreams.blogspot.com/2015/05/whats-new-in-gcm-30-android-m.html
    Thanks and hope this helps- Ram



    ReplyDelete