2017-State-Of-Mobile-App Performance
2017-State-Of-Mobile-App Performance
2
THE METHODOLOGY
We leveraged a vendor called Headspin.io for this exercise, as they provide a platform to profile mobile
apps and analyze their performance over real devices and over a real cellular network across the globe.
Think of it as webpagetest for mobile apps. Next, to understand what apps to profile and analyze, we
used App Annie statistics to narrow down to the Top 100 retail applications in the app store.
A typical user interacts with 10+ Mobile Apps during the first 3 hours of their day
WHAT DOES THE MORNING OF A TYPICAL MOBILE USER LOOK LIKE?
It's probably something like this:
➔ 6:00 a.m. Your alarm wakes you up and automatically starts increasing the brightness to
your bedroom lamps. The snooze button is not an option today!
➔ 7:00 a.m. On your morning run, you track your total mileage and pace, and then share your
workout details and scoreboard on Facebook.
➔ 8:00 a.m. You check your phone to make sure your train is on time, you can't be late to
work!
➔ 8:15 a.m. You catch your train and check Facebook, LinkedIn, Snapchat, and your
standard news apps to get up to speed.
➔ 8:30 a.m. As you get off your stop, you choose your coffee order and pay for it, so it's
ready and waiting for you - no more waiting in line at Starbucks!
➔ 8:45 a.m. With coffee in hand, you walk to the office and check your office slack, Skype,
and Whatsapp groups to prepare for the day ahead.
➔ 9:00 a.m. You enter the office and get your day started.
3
So...what do all of the activities above have in common? M
obile apps. And in the first three
hours of a day, it's totally normal to have interacted with 10+ apps to accomplish a variety of
tasks. This is the reality of today's mobile user.
To determine if these goals are being met, there are several key metrics that app owners must
identify and track to evaluate their success. For example, for an ecommerce app, these are
the key metrics:
1. Daily Active users
Retention Rates
2. Conversion Rates
3. App Abandonment Rates
4. Customer Loyalty Index
5. Customer Acquisition Cost
4
UNDERSTANDING TODAY'S TOP APP CHALLENGES
Today's users expect faster performance than ever. And for apps, the stakes are even higher.
Fair or not, users intuitively expect faster experiences on mobile apps than they do on mobile
websites. Consider mobile app performance data from Dimensional Research that shows:
41% of users expect apps to respond in less than two seconds
53% of users blame an app for performance issues irrespective of the
network and device conditions
But it's not just speed. Consistency of experience is critical as well. The combination of user
situations in today's market are infinite, and with mobile users check their phones on an
average of 221 times per day, growing your mobile app business requires consistency across
device, network, or browser. Additionally, the availability and reliability of an app's API services
compound a growing list of problems that a mobile app needs to be resilient from.
Some of the challenges that a mobile app business face to deliver fast, consistent and reliable
experiences include:
Mobile backend infrastructure is not built for being reliable while
maintaining performance
Referencing the latest AWS outage that happened on Feb 28th 2017, this outage has halted
apps and websites alike. Cloud based services like AWS are used commonly today to provide
backend services for mobile apps.
According to the latest Ericsson annual report it was observed that higher the number of users
connected to a cell tower the longer users have to wait to send and receive data. This is a
common problems in metropolitan areas where you have more users per sq area.
5
LET'S DIG A LEVEL DEEPER INTO KEY APP INITIATIVES:
1. Accelerating API requests over the Internet to improve dynamic transaction speeds like
checkouts and ticket purchases
2. Caching APIs at the edge to improve overall app response times for product APIs, deal
API etc.
3. Instantly loading images based on client side network quality and resizing them based
on the user's device to improve user experience
4. Augmenting the app based on client side network quality improve product or flight
search response times
5. Preloading content within the app to provide an instant load experience and improve
new user satisfaction
6. Ensure API endpoints are reliable and smooth fallback capabilities in case of flash
crowds, increasing reliability and reduce crash rate for an app.
7. Understanding transaction speed and measuring app performance using a simple to
use SDK
AKAMAI ANALYSIS
THE PERFORMANCE OF THE TOP 100 RETAIL APPS
For this report we profiled the Top 100 retail apps in the app store to explain how you can
leverage Akamai features to meet the three success criteria for mobile apps.
We had three key goals in our mind when profiling these mobile apps:
1. How many first party domains are going over Akamai from a mobile app
2. How many mobile apps serve oversized images to user's devices
3. How many mobile apps are leveraging IPv6 and HTTP/2
6
API ANALYSIS: FIRST PARTY VS THIRD PARTY
“
Our analysis shows that on average, a mobile app consists of 8 third party APIs
and 4 first party APIs.
-Akamai
”
7
We also discovered the top third party APIs used inside a mobile app are:
“
73 of the top 100 retail apps use Google Analytics and Ad SDKs in their mobile
app.
-Akamai
”
WHY IS THIS IMPORTANT?
This goes to show that third party SDKs are used predominantly for analytics and tracking app
crashes for a mobile app. Keeping a tab on how many third party APIs your app requests for is
critical since having too many third party SDKs and API in your mobile app can harm mobile
app performance. For example we observed that mobile apps that have a webview page as
part of the user journey in a mobile app gets bombarded with third party ad tags which leads to
socket contention between critical APIs and non-critical ones.
8
MOBILE APP PERFORMANCE ANALYSIS
To learn more about mobile performance struggles today, we analyzed the .har files in each
app to identify performance gains. Our findings are as follows:
84.2% of mobile apps today are not leveraging the benefits of having an IPv6 connection
Discovering what percentage of apps use IPv6 connections vs. IPv4 was step one of our
analysis. The reason is simple - an IPv6 connection over a cellular network is relatively faster
than an IPv4 connection. For more on the performance improvement between IPv6 and IPv4,
Akamai's own Erik Nygren addressed this in his blog which references RUM (Real User
9
Monitoring) studies conducted by Facebook and Linkedin that show significant performance
improvement for the top-4 US mobile networks.
Too many mobile apps have a non-standard User-Agent string when
requesting content
WHAT'S A NON-STANDARD USER-AGENT STRING?
A well formed User-Agent string contains device information and the browser type that the
mobile app uses. Non-standard User-Agent strings are malformed User-Agent strings that do
not relay information about the device or browser. For example, the most common android
non-standard User-Agent are okhttp/2.X, CFNetworking, etc.
67.9% of mobile apps has a non-standard User-Agent string when requesting for content
A lot of mobile apps today make decisions - like resizing images based on device type,
redirecting API requests based on app version - but when a mobile app has a malformed, or
Non-Standard User-Agent String, all logic based on User-Agent strings fails. Based on our
findings we learned that most of the image manipulation services do not resize images based
on device type which leads to downloading really large images to the device.
Pro Tip: The Akamai Image Manager is immune to this problem. We are able to apply
perceptual quality settings to images which means we are able to compress the image without
sacrificing on any visual fidelity
10
MOBILE APPS CDN USAGE
We evaluated CDN usage for all the domains used by a mobile app and found that it was very
much in line with recent data published by a startup in the mobile app accelerator space. When
we examine this data it becomes clear that there are many inaccuracies in this graph and their
logic was flawed, two main points being:
1. Most of this data are caused due to repetitive API calls from Crashlytics, Leanplum,
Crittercism SDKs, which are pointing to AWS
2. Third party domains are typically non-blocking APIs and not critical for user
experience
In order to analyze performance for a mobile app we need to understand what domains are
crucial for user experience, since most of the apps contain Crashlytics, Facebook and Google
analytics beacons we decided to ignore all third party domains that are not crucial for a user
experience from our CDN usage calculation.
11
Below is the CDN usage of user critical domains inside top 100 retail apps
41.7% of user critical domains are being served out of Akamai today
HTTP/2 has features like header compression and socket reuse to avoid you from creating a
new TCP socket and negotiating TLS for every request which adds to content download time
for resources within your mobile app.
90.9% of top 100 retail apps do not use HTTP/2
12
We have enabled HTTP/2 on our domain, shouldn't our app be able to speak
HTTP/2 as well?
No, your mobile app need to speak HTTP/2 for it to work, that means you will need to upgrade
your mobile app's networking library to support HTTP/2. Your mobile app developer should be
able to help you with this question.
THREE KEY TAKEAWAYS:
● 85% of android mobile apps don't leverage IPv6 today, which means these apps are
slower on a cellular connection compared other apps that are IPv6 ready
● 60% of android mobile apps have a non-standard User-Agent string, which means
these apps are likely being served an oversized image leading to high user
abandonment
● 91% of android mobile apps don't leverage HTTP/2 today, which means there are
unnecessary time spent creating TCP sockets and negotiating TLS for every mobile app
request.
For a free HeadSpin trial, go to:
http://www.headspin.io/trial