Blog - Codavel

Mobile devs, stop the network from killing your users' experience. Bolina is out!

Written by Rui Costa | May 10, 2019

When I told a close friend we would be working on a new internet protocol to make mobile apps run faster, he called me crazy. I insisted, stating that we also wanted to make it possible to integrate this new protocol into any app with just two lines of code… and got a sarcastic smile in return.

After quite a few chaotic months, even though I hate to say this, I learned that he was right. That was indeed a massive challenge. But guess what: we did it! Bolina SDK is out, it is definitely faster and it is ready to be tried out!

 

The mission and the goal

For us, our mission was clear from the beginning: we wanted to empower every mobile app with the ability to overcome network instability. The goal was simple: build a feature-rich product that provided a smooth experience, not only to the end-users as a result, but also to every developer out there that would use Bolina.

Inspired by this vision, we have built the Bolina SDK to provide mobile app users with a:

- Fast and smooth experience (say goodbye to endless loading times!)
- Shield from Wi-Fi, 3G or 4G network instability

and allow developers to:

- Perform significantly faster network calls, even with high latency and high packet loss, for both downloads and uploads
- Integrate Bolina within the mobile app with just a few lines of code
- Effortlessly integrate with any content server
- Monitor mobile app network performance

You don’t think this is possible? Well, I’ll show you in a minute how you can quickly check it by yourself. But first, let me tell you why we have been knocking our heads off with Bolina.

Why we are building Bolina

User expectations with respect to mobile apps performance are increasing, with 48% of users uninstalling or stopping to use an app due to slow speeds (source). In fact, more than eight out of ten have already done so. So, even with the extraordinary advances in WiFi, 4G and the upcoming 5G, the problem is still there.

Why is this happening? You may have heard that the internet relies on TCP/IP model (more on network protocols here). Well, the problem lies in the TCP part of this model. TCP ensures reliable data delivery but was designed back in the 70s when wired communication was (almost) all there was. In a wireless dominated world, link instability is king - and TCP fails to cope with that. I won’t bother you with technical details (you can learn a bit more about this on our technology page) but, as an example, if the link loses 0.1% of the data packets, TCP speed goes down by 5 times. And this is quite frequent in a wireless link. This is particularly dramatic, considering that 71% of total internet traffic will be wireless by 2022.

Sure, most of internet traffic is carried by Content Delivery Networks (CDNs), and they play a crucial role in ensuring that internet communication is fast and scalable. You can learn a bit more on CDNs and caching here, but in essence, CDNs also rely on TCP. Moreover, CDNs cannot do anything about the wireless link instability: they optimize only up to the edge. And the bad news is that 95% of link instability happens over the air!

So, basically, we have to change the underlying protocol, TCP.

And these are exciting times because we’re all coming to the same conclusion! Giants like Google, Facebook, Cloudflare, Fastly and Uber are now making massive efforts to standardize a new internet protocol, QUIC. I’m particularly excited about the recent moves by Cloudflare: they have launched the Cloudflare Mobile SDK for speeding up mobile apps, and the Warp VPN service, a free VPN that allows mobile users to get faster internet access. Did I mention it’s free?

Having said that, these are still very small steps towards overcoming wireless link instability. Why? QUIC and similar approaches optimize connection establishment time but fail to truly revisit the actual transport of data over the internet. In other words, these approaches are still quite vulnerable to link instability. See here why.

Mobile users need much more than just incremental improvements. This is why we’re building Bolina: to make sure mobile apps can provide a frustration-free experience to their users.

Where we are

Since we are still tackling a few open issues, Bolina SDK is officially in beta stage. Nevertheless, it is ready to be out in the world and we’re counting on you to do it! Right now, with the Bolina SDK, you get:

  • Significantly faster network calls
    Get your resources much faster, whether you are downloading or uploading data
  • Smooth client-side integration with minimal changes in your app:
    Off-the-shelf integration with OkHttp and HTTPURLConnection for Android
    Off-the-shelf integration with Alamofire, AFNetworking, and NSURLSession for iOS
    Compatibility with any other HTTP library for Android or iOS
  • Effortless server-side integration with your content servers
    Plug and play integration with any cloud infrastructure via Docker containers
  • Ability to monitor your app performance
    A simple dashboard that lets you know how your users are benefiting from using Bolina
  • State-of-the-art features of modern protocols
    Support of 0-RTT, multiplexing, and the most recent and secure cipher suites and protocols

At this point, feedback is absolutely crucial for us, so if you are a mobile developer, a tech enthusiast or simply curious, please test it out and share your thoughts with us. Out latest results were focus on the specific cases of video streaming and social networks, and the results  are very encouraging:

- For video streaming, we were able to accelerate video startup time by 32%, reduce re-buffering time by 55%, while increasing the average video quality by 27%.

- For social networks, we were able to accelerate image loading on the feed by 35%, and deliver 76% more images per second.

Feel free to integrate Bolina SDK into your own app and test it yourself! See here how.

Stay tuned!