Managing your apps data usage is so important.

Posted on September 4, 2017


<teaching you to suck eggs>
If you have an app that your users rely on, and make good use of, then you need to ensure that you have the best possible experience.
So often that experience is affected by the throughput and latency of the [mobile] network your user is connected through.
Why am I saying this ? well below you’ll see a story from Business Insider’s Intelligence arm showing that people rate a fast network over unlimited data.
The story with it goes on to say that the reason is the huge dominance of video, which accounts for 75% of the traffic flowing over the mobile telcos.
However this is the what,  not the why, behind the reason people select network speed.
The why is that, if every time you use your phone, there are slow connections and long waiting times (and by long I mean more than a second or two) then the person will be frustrated.  If they have dropped from 4G to 3G, or worse to Edge/GPRS then the frustration can be quite extreme.
Whereas running out of data, is only encountered every now and then,  and you can buy your way out of it,  not nice, but solvable.
A slow or patchy network connection isn’t solvable by the phone’s user.
So in your app monitor the connection, and have the ability to step down the use of the network.
In poor network conditions you could consider obtaining lower res/colour depth images or videos,  or use video codecs that are set for lesser throughput.
Yes you need some code to select these lower res assets,  and you need to be able to produce them,  however this is either a one time effort, at content ingestion, or it is automated server side work.
Consider protocols like SIP that can dynamically determine the most appropriate combination of assets and codecs based on the current conditions.
and it’s a biggee here,  let the user know you are being smart and dropping down (or stepping back up) based on network conditions,  this will motivate your user to like you more.  I say this because the mental model that a lot of users will have is that the app is at fault, in particular if the phone has several bars of signal.  Now those of us in the know, know that signal strength and data throughput are not the same thing,  but many many people believe bars = good throughput.
So in summary,  you need to consider that the network link your user has will fluctuate in it’s ability, often outside their control,  and it will wind them up,  and they will assume it’s your fault. So bite the bullet and consider ways to mitigate this problem.
Ohhh and test your app with low bandwidth connections,  for example if you use a mac to develop on then use something like Network Link Conditioner to set low bandwidths,  and I mean low.  check at 50kb/s. Make this a prt of your test automation.
If you have an Android device then tell it to put the link speed in the top bar, this will help you understand what your app is using at any one time.
Here is the graph from the story.
Network speed over unlimited