DEV Community

Kalei White
Kalei White

Posted on • Edited on

How to Enhance User Experience by Improving Mobile App Performance

What’s one of the biggest predictors of a mobile app's success?

Performance (how fast it loads and how reliable it is).

The findings of a mobile app user survey conducted by Dimensional Research showed that 80% of app users will only attempt to use a problematic app three times or less and 36% said that an app with slow performance issues made them have a lower opinion of the company.

In this article, we'll cover how to whip your mobile app's performance into shape so that crashes and slow loading times don’t cost you downloads, revenue, and brand perception.

What Is Mobile App Performance?

Keep in mind that, when we discuss mobile, it includes not only smartphones, but also their cousins: the legions of tablets, smartwatches, and other smart devices on the market today.

Performance is one of the factors of app quality that has to do with how it behaves when experiencing certain load sizes and in various other situations. For example, does the app load slowly or crash every time it experiences a peak in user activity, like when you launch a special promotion?

Performance is a product of multiple factors: the server, mobile device, network, and programming of the app itself.

Unfortunately, a user may have a poor experience with your app’s performance, even if the cause of the issue has nothing to do with the app itself.

In the previously mentioned survey by Dimensional Research, 55% of respondents have held an app responsible for performance issues although many admitted they didn’t know what the cause of those issues were.

Why Mobile App Performance Matters

In the same Dimensional Research survey, nearly all users (96%) stated that performance is important, while over three quarters (76%) shared that it is “very important” or “critically important.” The same study even showed that users actually care more about the performance of an app than its price.

What’s the target for mobile app performance?
While there is no magic number, several surveys and studies have shown that two seconds or less is the optimal amount of time it should take for an app to load in order for users to be satisfied.

In accordance with that, according to a survey by Akamai, 47% of consumers expect web pages to load in two seconds or less and 20% expect mobile apps to load instantly.

Users are fickle.

When a mobile app’s performance doesn’t meet user expectations, there is a very high chance they will abandon it, resulting in a loss of potential revenue.

Ratings can also suffer, which leads to a decline in downloads. One app maker reported that even a 0.1 drop in an online app rating caused a 5% decline in downloads, while a 0.3 decrease resulted in a 60% drop. What a difference!

Although not terribly common, 7% of users will write a bad review if an app has errors, crashes regularly, or stops responding, and 8% will give it a poor star rating for the same reasons.

On the flip side: When your app performs well, it can be a huge money maker.

On average, mobile shoppers are more engaged, spend more, and shop more often.

Tammy Everts, a mobile performance expert from SOASTA, conducted a case study showing that a one-second decrease in page load time resulted in a 27% increase in its conversion rate.

In the same study, mobile pages that loaded in an average of 2.4 seconds enjoyed the peak conversion rate (1.9%) over a span of 30 days.

This has been reflected in many studies of web page performance as well. For instance, according to a report by SOASTA and O’Reilly, Intuit cut its load time in half and saw a 14% increase in conversions.

In short, any company that produces web or mobile apps should make performance a primary concern, integrating performance testing as a mandatory part of the QA process.

Tips and Tricks to Improve Mobile App Performance

Now that we’ve covered the need for superior mobile app performance, let’s look at some of the ways to enhance it. Some are easier to implement than others. But if made, these changes will be worthwhile.

Cache images

Caching is a part of a computer’s memory that stores recently used information. It can store web pages, images, files, etc. on its local hard drive to provide rapid access to them while improving performance and decreasing traffic on the network.

Downloading external resources takes time, so make sure to cache your images.

Compress and resize images

When you compress an image, you minimize its size in bytes without greatly degrading its quality. There are several sites that do this, but the one I typically use is compressor.io.

Also make sure that the image size is right because it’s a waste of bandwidth to rely on the browser to scale a high-resolution image into a smaller width and height. So, you want to make sure images are adequately sized and ready to go off the bat.

Re-use data templates

When the app has to load multiple templates, that slows it down. To make the app faster, load fewer templates by reusing them.

Reduce HTTP Requests

Use fewer HTTP requests required to fetch the resources for each page in order to simplify things for your app.

Use loading validations

People perceive load times slower than they truly are. So, even perception of performance matters.

Make your app load in a way that makes it seem to be going faster, even if it isn’t!

One way to do so is to have it provide some visible, instant feedback as the application waits for the background response. Putting something up during the loading process will give users the perception that it’s loading quicker.

Load data as you need it

If your app requires a large amount of data, it’s useful to only load it as you need it. Don’t make the user wait longer than necessary to start viewing parts of the app.

Splitting up the assemblies will help accomplish this. You could also pre-load/pre-fetch data, if possible, so that when the data is needed, the user doesn’t have to wait.

Create an offline mode

In the event that the network connection drops while the user is in the middle of completing an action, it’s smart to alert them as to why their action cannot be completed. Then give them the option to save the data for later, so they can resume the activity once the connection has been re-established.

This will at least give them some peace of mind — certainly more than I had when I experienced my own problems with the travel app!

Test for performance early and often

Apps must undergo all sorts of testing to ensure that they work as intended, are compatible across devices and networks, etc. They should also be rigorously tested for performance and monitored frequently.

One misconception that many developers have is thinking you have to wait until the end of development to start the testing process. It’s actually a time and cost saver to test as you go, when bugs and performance issues are smaller and easier to fix.

Use the right tool for performance tuning

There are several tools on the market to execute mobile performance tests, such as Apptim.

Basically, you can download Apptim and connect a device and start exploratory testing your app right away, pushing bugs to JIRA as you find them while at the same time, the tool assesses performance for you, finding crashes, exceptions, measuring resource usage, power consumption, etc. It then shows you a neat report of everything that it finds.

It’s a great performance tuner because it runs a deep performance analysis that includes checking response time and resource consumption (cpu, memory, data transfer, render, database, etc).

It then shows you a report with everything you should know about your app, its weaknesses, and how you can fix them.

Put an APM (application performance monitoring) system in place

APM refers to the monitoring and management of performance and availability of software applications. APM helps detect and diagnose deep-level application performance problems to maintain an expected level of service across the board.

It monitors two sets of performance metrics: those that have to do with the performance the user experiences (like average load times) and those that measure computational resources that the app uses for the load.

There are several companies that provide APM Management tools such as New Relic and AppDynamics.

Make your company’s culture performance-centric

As TechBeacon editor, Todd DeCapua, has stressed many times, performance is now everyone’s concern from the engineering department to the marketing department.

Organizations should get behind the attitude of testing early and testing often.

If all stakeholders support the vision of having high-performing apps, it will be easier to devise a plan and stick to it. It’s also important for everyone to be aware of the causes of slow performance so that issues can be detected and remedied sooner.

Performance Matters

Mobile app performance directly affects user retention rate, ratings, number of downloads, conversions, and ultimately, revenue.

If you commit to creating a high-quality app that meets or exceeds user performance expectations, your users will want to use it over and over again, elevating their perception of your brand and strengthening the relationship they have with it.

Have some more tips? Please leave me a comment!

Top comments (8)

Collapse
 
sofiapalamarchuk profile image
Sofia Palamarchuk

Thanks for sharing, Kalei!

Collapse
 
pjcalvo profile image
Pablo Calvo

Excelent article!

Collapse
 
kaleiwhite profile image
Kalei White

thanks Pablo!

Collapse
 
kaleiwhite profile image
Kalei White

Check out apptim here: apptim.com

Collapse
 
daedtech profile image
Erik Dietrich

Quick FYI for you: the in-article backlink to apptim 404s. Anyway, I looked at the homepage, and I was wondering if apptim is something you'd use to test performance for the mobile experience of simple websites. Or would that be kind of overkill, and it's really for performance testing full-blown apps.

Collapse
 
kaleiwhite profile image
Kalei White

Great catch! I just fixed the link.

Sure! Although it is possible to test mobile web apps with Apptim, you won't get the full value of the tool, as it captures a lot of performance data meant for native apps (Android and iOS). Interested to know what you think of it!

Thread Thread
 
daedtech profile image
Erik Dietrich

Sure, that makes sense, and is kind of what I assumed. My use case is a fairly lightweight/simple one. Our business creates content and handles content planning, often for SEO purposes, and one of the things I do is a quick review to look for potential negative ranking factors (including poor mobile performance). Right now that just involves Google Page Speed Insights, which is fine for purpose, but I'm always on the lookout for better/easier/more efficient options.

Anyway, I signed up and the windows zip file is downloading. I'll poke around -- thanks!

Thread Thread
 
kaleiwhite profile image
Kalei White

Yep, page speed tools like that are super helpful. Keep apptim in mind if you find yourself working on a mobile app :)