I have been researching a fair bit on Whatsapp, the Audio API issue, background agents, multitasking, messaging APIs and messaging on WP in general.
I extensively tested a number of messaging apps such as Whatsapp, Line, Hike, Viber, Skype in addition to a couple of others. (Did not perform extensive tests on WeChat, Kik, KakaoTalk and GroupMe)
There are two core problem in Windows Phone (7 and pretty much carry over to 8), resolving either of these would resolve all messaging app issues.
1) There is no reliable way for a developer to be sure that the phone will have an "always ON" internet connection, whether Data or WiFi. Consider countries where data packs are not an option and people tend to use apps on WiFi only, here WP7 has no way to keep WiFi always on for messaging apps (Due to lack of a relevant API) and WP8 in true half-assed fashion, provides the OPTION to do so, but all WP8 phones I have seen so far by default do not keep WiFi alive when screen goes off (you have to enable this explicitly). Even then, there is nothing preventing a user going through settings and accidentally disabling it again (by accidentally, I mean without realising the actual consequence to always available push notifications). Unless and until MS removes the option to kill WiFi when screen goes off, this issue will remain.
2) There is no relevant API (that I am aware of, and clearly that any of the major messaging app developers are aware of) that would keep WiFi always on even when screen is turned off and the option to keep WiFi ON when screen is OFF is NOT enabled. There ARE relevant APIs for music streaming apps (like Spotify, Pandora, TuneIn Radio) and also for VoIP apps (like Skype, Viber and Line though Viber and Line still don't seem to use them yet). So these categories of apps can keep WiFi alive under all conditions (or should be able to, I did not test that though I would not be surprised if they cannot because the API again does not work as intended).
Both those issues are related. All other OSes either keep some sort of internet connection alive at all times or give the apps some way to do so (Either via full multitasking or background APIs). WP is the only one that does not.
As you can possibly imagine, in a no Data, screen off/WiFi off scenario (still possible today on WP8), all real time IM apps pretty much become useless.
All except Whatsapp.
Whatsapp uses the background Audio streaming API provided by MS to keep a connection alive under *all* circumstances and possible use cases and as a result is able to more reliably push notifications than other apps (in this case, by reliable I mean it is able to push them at all when others cannot, I do not mean traditional reliability in the 'instant' or 'phantom' or 'delayed' notification sense. Just that it can whilst others can't because they don't have a data connection to do so).
Whatsapp cannot remove this API because it will render the app useless as a real time messenger for WP7 and possibly on WP8 when the user does not go out of his way to enable the always on WiFi mode through settings.
No other messaging app that I tested has a better solution for this or has come up with a workaround.
Every single time there is a Whatsapp post on the main WPCentral website or qn asked in the forums, I see the same moaning about the Audio API and how bad Whatsapp is. Well it is bad yes, but it is currently far better for people without Data connections than any other messaging app on WP. If you want the Audio API issue resolved, lobby MS to fix their broken OS. Whatsapp just found a fairly genius and practical workaround. It is hardly ideal because it kills battery and interferes with audio but it enables functionality that cannot otherwise be achieved.
I extensively tested a number of messaging apps such as Whatsapp, Line, Hike, Viber, Skype in addition to a couple of others. (Did not perform extensive tests on WeChat, Kik, KakaoTalk and GroupMe)
There are two core problem in Windows Phone (7 and pretty much carry over to 8), resolving either of these would resolve all messaging app issues.
1) There is no reliable way for a developer to be sure that the phone will have an "always ON" internet connection, whether Data or WiFi. Consider countries where data packs are not an option and people tend to use apps on WiFi only, here WP7 has no way to keep WiFi always on for messaging apps (Due to lack of a relevant API) and WP8 in true half-assed fashion, provides the OPTION to do so, but all WP8 phones I have seen so far by default do not keep WiFi alive when screen goes off (you have to enable this explicitly). Even then, there is nothing preventing a user going through settings and accidentally disabling it again (by accidentally, I mean without realising the actual consequence to always available push notifications). Unless and until MS removes the option to kill WiFi when screen goes off, this issue will remain.
2) There is no relevant API (that I am aware of, and clearly that any of the major messaging app developers are aware of) that would keep WiFi always on even when screen is turned off and the option to keep WiFi ON when screen is OFF is NOT enabled. There ARE relevant APIs for music streaming apps (like Spotify, Pandora, TuneIn Radio) and also for VoIP apps (like Skype, Viber and Line though Viber and Line still don't seem to use them yet). So these categories of apps can keep WiFi alive under all conditions (or should be able to, I did not test that though I would not be surprised if they cannot because the API again does not work as intended).
Both those issues are related. All other OSes either keep some sort of internet connection alive at all times or give the apps some way to do so (Either via full multitasking or background APIs). WP is the only one that does not.
As you can possibly imagine, in a no Data, screen off/WiFi off scenario (still possible today on WP8), all real time IM apps pretty much become useless.
All except Whatsapp.
Whatsapp uses the background Audio streaming API provided by MS to keep a connection alive under *all* circumstances and possible use cases and as a result is able to more reliably push notifications than other apps (in this case, by reliable I mean it is able to push them at all when others cannot, I do not mean traditional reliability in the 'instant' or 'phantom' or 'delayed' notification sense. Just that it can whilst others can't because they don't have a data connection to do so).
Whatsapp cannot remove this API because it will render the app useless as a real time messenger for WP7 and possibly on WP8 when the user does not go out of his way to enable the always on WiFi mode through settings.
No other messaging app that I tested has a better solution for this or has come up with a workaround.
Every single time there is a Whatsapp post on the main WPCentral website or qn asked in the forums, I see the same moaning about the Audio API and how bad Whatsapp is. Well it is bad yes, but it is currently far better for people without Data connections than any other messaging app on WP. If you want the Audio API issue resolved, lobby MS to fix their broken OS. Whatsapp just found a fairly genius and practical workaround. It is hardly ideal because it kills battery and interferes with audio but it enables functionality that cannot otherwise be achieved.
Last edited: