We are building a network estimation API for Android and iOS. We believe developers who ship network intensive apps to international markets will find it useful to improve UX on networks with poor quality of service (QoS).
How does it work? An app developer would integrate the library, and use the API to receive a network quality estimate result on a 1-5 scale. 5 being the best network and 1 being the worst.
* 5 -> Good for low latency video and voice streams as well as for HTTP.
* 4 -> Good for HTTP but acceptable for audio and video streaming.
* 3 -> Poor for both HTTP and streaming.
* 2 -> Very poor
* 1 -> Complete network failure.
Under the hood, we use network pings tests, together with statistical models based on time, location and past data from the the same carrier/operator to create a network quality estimate. No long-running or data-intensive HTTP download tests are used.Globally distributed low-latency servers ensure that the developer can compare results over time and use the last-mile network quality estimate to influence app behaviour for the better.
The API call has three modes of operation/invocation:
1. Get current network quality
2. Get estimate X minutes from now (model based)
3. Get estimate at location Y (model based)
Example app adaptations upon using this API:
1. Uber-like app: Pre-load map tiles around the street corner where the pickup is expected thereby protecting the mobile data experience.
2. Amazon.com style shopping app: Use smarter pre-loading strategy from the server for catalog and images.
3. Spotify or Facebook Live streaming app: Initiate streaming with bitrates that will sustain a buffering-free experience throughout the length of the user's session.
What does the HN developer community think? Thank you in advance!