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.
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.
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.
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!