App Performance

Addressing User Experience in an Impatient World

Addressing User Experience in an Impatient World

TL;DR: Users are becoming more impatient and demanding when it comes to in-app user experience. Latency and buffering still pose a challenge to companies whose service relies on a mobile app because, so far, these issues have been addressed with the wrong technology solutions. Social media, e-commerce, video streaming are particularly affected by performance issues. Codavel has developed a custom-made protocol for mobile content delivery, Bolina, which has proven to bring improved performance, and thus, a better user experience.

The decreasing tolerance threshold

For mobile app companies, business success depends on providing the best user experience to the users of their apps. This depends not only on providing high-quality, relevant content but also, and maybe mostly,  on app performance. App performance is a highly complex issue to solve, but the current conjuncture is adding a new challenge to the equation. There’s no way around it: app users are becoming more demanding. Or should I say more impatient? Whether it’s because attention spans are decreasing, as well as the willingness to wait, or simply because the mobile app industry is getting more competitive by the day with thousands of new apps emerging every day, we have become restless. And this matters for app companies.

In a study conducted by AppDynamics, adequately called The App Attention Span, it was concluded that the margin of error regarding mobile app performance and buffering is diminishing very fast. And this evidence is supported by many studies conducted in recent years. Whether streaming video or music content, making a purchase on their smartphone, or simply scrolling through social media, consumers demand flawless and rapid interactivity in their applications. The App Attention Span study even delves into the emotional states users experience when faced with poor response times and overall poor Quality of Experience (QoE): emotions ranging from anger and sadness to frustration and surprise. I could go on and tell you that, according to the study, more than eight out of ten users deleted apps because of performance issues or that performance is the number one reason for online frustration, but I suppose you got the picture by now: providing a fast, frictionless mobile user experience is no longer a competitive advantage. It is a necessity.

Today, technology plays a major role in our lives, making life easier in all aspects. However, this has come with a price and the ever-growing penetration of technology in our day-to-day lives has reshaped our tolerance (and sometimes composure) towards waiting times. In a matter of seconds, we are able to perform an infinity of operations using our smartphones, so it is just not reasonable to expect users to cope peacefully with an app whose loading time is higher than the time it takes to perform the desired action.

Loading spinners everywhere

App performance is heavily based on app load times and responsiveness speed. Both matter for user experience but indeed, load time has been considered the highest and most requested criteria in what users expect. The repercussions of increased startup latency are found in every app vertical: social media, e-commerce, video streaming, gaming, you name it… The common denominator is this: latency and buffering harm the user experience, which ultimately leads to less user engagement and less revenue for app companies. Let’s see how and why.

Social media

With around 4.59 billion active users every day, ​social media apps make up most of the time we spend online. With the increasing popularity of visual content, in particular short-form video, the amount of data social media apps need to process to display content has skyrocketed. On top of that, the essence of social media apps is user engagement. By displaying different types of content uninterruptedly and with high-quality, users are kept entertained and engaged. The problem arises when, due to network instability or poor connection issues, the app takes a lot of time to load the content or stalls on scrolling. Enter loading spinners, and the user experience is ruined. According to Google, when loading takes between 1 and 3 seconds, the user bounce rate is 32%. For a loading time of up to 5 seconds, user abandonment can reach a shocking 90%. 

Social media apps are a business like any other, their revenue coming mostly from advertising. So, keeping users on the app, scrolling through their feed, and watching the ads they are supposed to see is critical for the business. Users won’t just wait for content that is loading, they will skip it or will look for entertainment elsewhere. An illustrative case of this is Snapchat: they discovered that if the “snap” took 2 seconds or more to load,  users would either move on to the next “snap”, or just leave the app. (This tolerance threshold may seem exaggerated now, but hopefully you will remember this article the next time you open your favorite social media app, just “to see what’s up”, and face yourself with a grey screen and a disappointing loading icon). In any case, you can read more about the research conducted by Instagram and Pinterest on the correlation between app performance and user engagement.


The growing preference for digital channels has reshaped the retail industry worldwide - in recent years, with a little push from the Covid-19 pandemic, mobile apps have become the preferred channel to shop online. When shopping, speed is highly important for users, and the lack of it contributes to increased churn rates, costing e-commerce companies millions of dollars a year.

The shopping experience is measured with several performance KPIs, which combined, capture the entire user’s journey. One of the most important is Time To Interactive (TTI), the time it takes from opening the app until the first interactive element (it can be a featured product, a sign-in button, a search bar, or anything that allows the user to interact with the app) is displayed. TTI measures the time from opening the app until the app becomes responsive (that means “usable”). The interesting thing about TTI is that it has an impact not only on the first screen view but also on the following ones, that is, it impacts the different stages of the sales funnel (let that sink in for a second...).

According to Farfetch’s recent data, on mobile each additional second of TTI increases the initial drop-off rate by 5% and reduces the conversion rate by 2.7%, thus supporting the correlation between high TTI with lower conversion rates. These numbers add up, cutting millions of revenue per year: research conducted by Amazon concluded that per every additional 100ms, latency costs them 1% in sales, illustrating the harmful impact latency and buffering have on e-commerce. A personal favorite of mine is this study from Deloitte, Milliseconds Make Millions, a study on how improvements in mobile speed positively affect a brand’s bottom line. Give it a go.

Video Streaming

Online video streaming has visibly transformed (pun intended) the way we consume content and entertain ourselves. Video streaming services have seen an exponential rise in popularity in the past couple of years, especially on mobile, and this trend shows no signs of stopping. When users open a video streaming app like Youtube or Netflix, they expect nothing less than a seamless user experience without buffering, the number one frustration when watching video online, the second being poor video quality.

The so-called video startup time, the time from when the user presses the play button to when the first frame of the video is displayed, is another metric of paramount importance for user experience, and therefore, key business metrics. A report published by Akamai in 2016 found that "viewers will start abandoning a video if startup takes longer than two seconds to begin playing and for every additional second of delay, roughly an additional 6% of the audience leaves. [...] With a 10-second delay, nearly half the audience has left”. 

“Startup time issues have a domino effect, eating into potential time viewers could spend watching content”, and the spreading of ads on streaming platforms has only increased content abandonment. In 2018, an astounding 5.1B viewing hours were lost in Q2 due to buffering alone. These numbers clearly are some food for thought and the rising expectations of users, especially regarding the quality of the mobile experience (QoE) delivered, puts more pressure on video streaming companies.



Solving a new problem with outdated technology

If you made this far into the article (maybe you read my initial statement “attention spans are decreasing and thought “challenge accepted”), let me now explain why mobile apps are so susceptible to network instability and connection issues.

HTTPx: different flavors of the same (old) stuff

The majority of the data conveyed through the web (communications, content, etc) is transferred using HTTP, the industry-standard protocol for encoding and transporting information between a client and a web server, developed in the 1990s. In 2015, its second version, HTTP/2, was released, being presented as a faster, more reliable, and efficient version of the old HTTP/1.1. I will spare you the technical details but take Fastly and Uber's take on this: in most situations, HTTP/2 isn’t as good when connections are bad and its performance doesn’t match the low-latency and highly reliable network communication our mobile apps need.

The mobile app industry has long recognized the need to replace HTTP with new protocols prepared to handle the volatility of wireless links. The answer could rely on the newest data transmission protocol, QUIC, which evolved to HTTP/3 but most likely, no. QUIC brings two major drawbacks: it requires an engineering and operational nightmare to use, and its performance improvements are somewhat limited.

The CDN fallacy

A lot has been done by the mobile app industry to solve the limitations of HTTP when dealing with wireless networks. One of the industry’s workarounds is to use CDNs, a geographically distributed group of servers that work together to provide fast delivery of Internet content. CDNs place content closer to users, thus reducing loading times and improving user experience. CDNs are a great solution in some cases and can indeed improve the user experience but, still, they can’t solve the problem of wireless instability because they rely on HTTP and TCP, technologies that were built in the 90s for the wired world and don’t take into account the challenges and dynamics of wireless environments.

Codavel’s take on the problem

So, this is what we do at Codavel: we devote ourselves to this fundamental challenge of building technology that can be used effortlessly by mobile apps. Using Network Coding techniques, we built from the ground up our own content delivery protocol, Bolina, to address the issues and challenges that wireless networks and their instability pose to mobile applications. To deliver the benefits of Bolina to the public, we built our own mobile CDN, which leverages our protocol to achieve improved performance. In a way, we are delivering a next-generation CDN, where besides all CDN benefits, we also provide the benefit of a tailor-made protocol for wireless environments, enabling users to achieve a top-notch user experience.

We have conducted performance tests and Bolina clearly outperformed both HTTP and QUIC. We even went a step further and compared performance for every app vertical, and the results were staggering. You can check our detailed performance reports here, but let me give you a heads-up.

Improving user engagement on social media

We run tests with real user sessions to compare Bolina with HTTP/2 on a social media app, where every user session represented the same action of opening the app feed and scrolling down (amounting to a total of 26 images and 7 video requests).

Bolina revealed a ​superior performance and stability that led to faster loading for both images and videos. The results show that Bolina delivers 53% more images within 1 second, on average, and consistently delivers the content to the mobile app significantly faster when compared to HTTP. Bolina also achieved not only lower loading times but also significantly less variation of the loading time.

Now you ask “but do these improvements in loading time yield more posts seen (in this case, images)?” The answer is yes. Remember when I said that social media relies on delivering content uninterruptedly to keep user engagement? This is the interesting thing about our protocol: Bolina not only delivers content faster but is also more robust to instability, leading to less variability. This translates to an impressive ​76% more images being delivered within 1 second when considering the median loading time, meaning significantly more posts displayed and seen, and higher user engagement overall.

Decreasing shopping drop-off

To assess the performance of Bolina in an e-commerce app, we analysed several performance KPIs using Bolina and HTT/2, but for simplicity’s sake let's stick with TTI, the time it takes from opening the app until the first interactive element is available to the user, which, as we have seen before, correlates directly with funnel progression.

In the tests conducted, on average, Bolina reduced the time it takes for a user to start interacting with the app (TTI) by more than 37% when compared to HTTP/2. Also, with Bolina, 82% of user sessions presented a TTI below 1 second, against 49% using HTTP/2.

If we take Farfetch’s data that states that, for each additional 1 second of TTI, session drop-off increases by 5%, and conversion rate decreases by 2.6%, we conclude that Bolina reduces the number of dropout sessions by a staggering 59%, and, even more notorious, it reduces lost conversions due to slow TTI up to 95%

Also, scrolling through the app was 85% faster with Bolina than with HTTP/2, materializing a more consistent and seamless user experience. All in all, Bolina can help e-commerce companies recover money “left on the table” due to poor app performance and latency issues. 

Solving (the annoying) video buffering

Finally, we conducted field tests to analyze the video streaming use-case by looking at the performance of a short- video mobile application delivering content through three different solutions: HTTP/2, HTTP/3 (QUIC), and Bolina (we assessed the full range of performance KPIs, but let’s stick to TTI for now).

In the video streaming scenario, TTI represents the time it takes from opening the app until actually starting to see a video. On average, Bolina reduced the time it takes for the user to start seeing the first video (TTI) by more than 48% when compared to HTTP2, and by more than 31% compared to HTTP3. 

Recalling Akamai’s benchmark (after 2 seconds, every additional second that it takes to load a video leads to an additional 5.8% of dropouts), Bolina reduces the number of dropouts by 80% versus HTTP2, and by 72% versus HTTP3. A total of 84% of the user sessions with Bolina started playing the video faster than the median behavior of the HTTP2 sessions. That represents a nominal increase of 34% in sessions that started the video faster than the median HTTP2 session and 14% more than HTTP3. Lastly, Bolina is not only faster than HTTP2 and HTTP3, but it is also capable of providing a more consistent user experience.

And, it’s a wrap

Latency and buffering affect the mobile user experience, and it is clear that no matter the app segment, these are issues that need to be addressed by any company whose service relies on a mobile app. The app industry is fragmented and entry barriers are decreasing. Not only that, users have grown used to seeing what they want promptly and carrying out daily actions in a matter of seconds. So, in a world where the number of options is endless and choosing a competitor is just a few finger touches away, providing the best in-app user experience is key to business success. The mobile app industry has made several efforts but to date, it has failed to address these issues accordingly, for mobile app performance is a challenge that can’t be solved with quick fixes. It requires new solutions and new technologies. That’s what we do at Codavel. Every day, our development and performance engineers work to solve these complex problems and help our clients to provide the best user experience to their customers. We are working towards a world where mobile services are frustration-free. For every user, anytime, anywhere.