Modern users are constantly changing. And they expect the same from their mobile devices. But regardless of the technology, one thing never changes:
Applications always have to be fast and available.
According to various surveys, three seconds is the longest most end-users are willing to wait for a web application to load before growing frustrated and switching to a competitor. These high expectations are becoming increasingly relevant to mobile web and mobile apps.
Applications that load slowly or even fail to load face rejection. On top of that, many users will not only uninstall the app but also share their frustration directly by posting negative comments in social media channels.
Who are my customers: Are we investing in the right geographical market? What devices are actually used? © Compuware APM
It’s not uncommon for apps to be criticised as “horribly slow” on Apple’s App Store. Out of 38,000 reviews for Facebook’s old version of the iPhone application, more than 21,000 customers gave the application just one star. Users repeatedly complained that the app crashes, is slow or is constantly loading.
“Mobile apps live and die by their ratings in an app store … when the rating suffers, customer adoption suffers,”
says Margo Visitacion at Forrester.
This may be the reason why 80 percent of branded iPhone, Android and Blackberry applications fail to achieve 1,000 downloads. Poor mobile application performance directly impacts customer acquisition and retention. So what can you do to ensure your mobile app performance is as strong as it can possibly be?
There are a few reasons why badly rated apps are dismissed: crashes, bugs, poor performance and usability problems. These are exactly the areas that should be focused on during the development and testing of an app. It’s helpful to know the answers to the following questions:
- Who are my customers?
- How do my customers use the application?
- Are my customers experiencing functional problems?
- Are my customers experiencing bad performance?
Vendors can avoid an early launch failure if they focus on these criteria before developing the first app. It is advisable to concentrate on individual essential features and functions in the app first, to ensure they function smoothly. Speed and efficiency are the biggest factors when it comes to surviving in the market. It is usually wise to develop and roll-out only the most important elements of an app at first. By closely involving the end-user, functions can be updated and subsequently improved.
Any changes within the market will require a quick response – proving how important it is to develop apps in small, easily implementable steps. The same applies to PC software.
Most performance pitfalls can be avoided during the app development stage. Applications should never be an end unto themselves, but should simplify mobile functionality. A smart design, attention to detail on key essential functions, as well as responsiveness and 100% availability are critical to success.
The long-term performance of an app is currently not being taken as seriously as it should be during the production stage. This is in spite of the fact that cloud applications are not manageable without APM due the dependency of third parties. Modern APM solutions show which applications and infrastructure components are used on which devices and, in particular, how the end-users experience the real applications.
Modern APM solutions show which features are used on which platforms © Compuware APM
Problems experienced by the end-user can only be solved in a fast and targeted manner if the performance issues are tracked down to a code level across all layers of the application architecture.
Testing mobile apps
Before starting the process of testing mobile applications, you should establish whether we’re dealing with a mobile web or a native application. In the mobile native context, we still need to determine whether we have a pure native application or an embedded browser that’s being used to display web content. In this case, all known web development testing and optimisation methods need to be applied to the mobile application. There are various reasons to use hybrid applications like these.
It might be to make a downloadable app available quickly from a mobile website or to incorporate content that changes rapidly, such as promotions or competitions.
To make sure an app is running smoothly and quickly, it’s essential to measure its performance with an appropriate tool. Modern Application Performance Management (APM) tools can help to optimise apps already in development and continue to monitor them in production.
APM solutions give us insights into which applications most frequently accessed, with which kind of device, which infrastructure components are being used and which issues might be affecting the end-user’s experience.
Which crashes (including full crash reports) happen on which mobile devices? © S&S Media
Example: Finding a Runtastic app bug
Let’s take an issue recently experienced by Runtastic, a popular sports app with over 75 million downloads. The developers encountered a certain user that was complaining about too high a speed – nothing to do with the responsiveness of the app, but the average workout speed that the app calculated. After a one hour biking session, the app showed that he had covered a distance of 490 km – which would be a world record! After a short brainstorming session, the developers came up with the following three potential root causes for this bug:
- Bad GPS coordinates
- Problems with the calculation of the distance in the app code
- Incorrect values delivered to the app from the operating system
The recorded GPS coordinates could not have been the problem because they matched the route the user took. So the developers decided to build a unit test into the app that allowed them to check the result of the device’s calculation using a known distance between two coordinates. Whenever the result differed from the true sample, they used Compuware APM’s free mobile app monitoring tool to report the error. This allowed the team to check whether the issue was a single user problem or not and which devices/operating systems were impacted.
The first guess was that the device itself had an impact on the calculation. But since the error events were evenly distributed across several manufacturers, a particular device could not be the cause. However, grouping them by operating system quickly exposed the cause of the problem.
It turns out that some of the devices running Android 4.1 have a bug relating to the calculation of the “distance to” interface. For the Runtastic team, this unfortunately meant that they couldn’t do anything about it, as this interface is provided by the operating system. But to limit the problem, they can suggest that users upgrade their operating system when experiencing this problem.
To improve the user’s experience for mobile native apps, you sometimes have to run the unit test in production. This is the only way to check variety of devices and operating systems find the cause of the problem. Sometimes for app developers, you can improve the user’s experience by simply being aware of the problem – even if you can’t fix it.
Feature image: vector mobile phone with interface screens infographic design via Shutterstock / copyright: totallyPic.com