As the world becomes increasingly mobile-only or mobile-first, the amount of apps available for anything is really just about there. Even my 11-year-old will tell me, ”There is an app for everything.” This also means that the user engagement journey and experience are more important than ever. One of the key factors in user engagement is minimizing latency. Latency is just a technical word that boils down to users not being willing to wait.
From the mid-2000s onward, there have been a number of articles and research studies about latencies. One of the most recent— The need for mobile speed: How mobile latency impacts publisher revenue — continues to show that minimizing latency is critical. It drives user engagement, interaction, more dollars, and more good stuff.
To quote from this study, “53% of mobile sites are abandoned if it takes more than 3 seconds to load.” And, “the average load time for mobile sites is 19 seconds over 3G connections.”
Think about this for a minute. Most mobile sites load in an average of 19 seconds? That’s amazingly slow.
There are, of course, some obvious solutions, such as optimizing graphics, optimizing the mobile app presentation layer, compressing videos, and doing it while prioritizing engaging user experiences. In my experience, most developers see the wireless stack and mobile network as a black box, and perhaps don’t have the opportunity to focus on mobile app latency.
Most mobile networks in North America have minimal latencies and comply with 3GPP’s LTE requirement, which are in milliseconds. Hence, the sort of load times that is observed in the study above really goes on at the mobile app flow layers.
Let’s go over some pointers which could be leveraged in the software development process.
1. CONSIDER LATENCY FROM THE GET GO.
The topic of latency should be surfaced from the very beginning, when the entire architecture is considered. If you can, dedicate a role for app performance and build it in every function and unit test.
2. MINIMIZE CALLS BETWEEN THE MOBILE APP AND THE SERVER.
Try to count calls to the web/app/backend servers from the mobile app, including DNS calls, and estimate the payload and response time. Can server-side calls be minimized without sacrificing user experience?
3. CONSIDER THE POSSIBILITY OF NO INTERNET OR POOR INTERNET.
Dedicate functionality in an offline mode. Mobile networks can have low coverage in certain circumstances. We’ve all experienced it — certain indoor areas, campuses, and large indoor areas. You can’t PREDICT where a user will go. That’s the beauty of mobile— people wander anywhere they want. From a mobile app perspective, when the network coverage becomes poor, the app acts as if it’s a “no internet” environment.
Most smartphones, if not all, have dual Wi-Fi, cellular capabilities. When using Wi-Fi there is that sweet spot of optimal coverage, and when one steps away from that sweet spot (by the way, this is measured in feet/meters) the user is stuck in a no-man’s-land where the signal is weak on Wi-Fi and not enough for cellular to pick up, hence from a mobile app perspective, this Wi-Fi use case also a “no internet” use case.
4. PLAN FUNCTIONALITY RETURNS IN THE CASE OF SILENT RECONNECTION.
Consider the use case of silent reconnection (no user interaction is required here) by the mobile app. When the network/internet is “up again” or coverage is regained, what functionality will “recover” or be regained, and how will that be seamless to users?
5. MINIMIZE LATENCY WITH QUIC-LIKE TECHNOLOGY.
Evaluate the use of QUIC (Quick UDP Internet Connections, proposed by Google), or QUIC-like technology to minimize latency. This depends on the nature of the mobile app and how minimal the latency needs to be. Learning QUIC will help trigger the mindset to think about all the calls the app may make to the server through the wireless stack. Even if you don’t like QUIC, is there any protocol that could be adopted/adapted for your development?
The reality is that people do not get more patient with time. In fact, we grow more impatient. With an almost ubiquitous spread of LTE devices/smartphones and the talk of 5G, it is more important than ever to have an efficient app design. Higher bandwidth may lull folks into thinking the network will be faster and perhaps lessen the attention on mobile app latencies. The priority of paying attention to minimal mobile app latencies needs to go up (not down) to ensure optimal user engagement.