Join CTO Moataz Soliman as he explores the potential impact poor performance can have on your bottom line. 👉 Register Today

ebook icon

App Performance

General

A Guide to Mobile App Stability

Apps face a huge challenge to become relevant and popular. The sheer number of available apps serving billions of users makes it impossible for every app will be successful. According to a report by Qualitest, 88% of app users will abandon apps based on bugs and glitches. One of the biggest challenges an app has to overcome to be successful is stability. Making sure that your users have a smooth and stable experience might not guarantee success. But an unstable app will definitely guarantee an app’s failure. This guide will discuss mobile app stability, how to measure it, and how to improve it.

What is mobile app stability

Stability is in essence how reliable your app is. If an app is behaving the way that it should then it’s considered stable. App stability it is commonly associated with crashes. If your app crashed, it means that it suffered a fatal error, but a single crash does not mean that your app is unstable. It’s virtually impossible for an app never to crash given all of the variables in play. However, if your app crashes often, then it is not considered stable.

When building and testing a robust and stable app, it’s important to measure and monitor your app’s stability to make sure it’s performing well for your users.

How to measure mobile app stability

When it comes to measuring stability itself, there are a couple of different ways to look at it. App stability is basically how often your app doesn’t crash. The most common way to asses how often your app is not crashing is per session. This is measured by the formula:

(1-(Number of crash occurrences / total number of sessions)) * 100

The resulting percentage is the calculation of your crash-free sessions. This is one of the various metrics you can measure to determine your app’s stability. You could, for example, measure the number of users that experienced a crash. Often times a particular device could cause a lot of crashed sessions and could inflate the number of crashed sessions. In this case, the formula would be:

(1-(Number of users that experienced a crash / total number of users)) * 100

Stability is also a recency metric. If your app crashed over a year ago, it doesn’t make much sense that a solved issue be calculated in your current stability metrics. Adding time variables depending on how often you want to measure your stability and the number of sessions you have will help give an accurate picture. If you have a huge number of sessions and users, then you might want to measure stability daily This will help you catch upticks in issues quickly instead of after they snowball. The fewer sessions and users you have, you could consider measuring weekly or even monthly. The equations will look like this instead:

(1-(Number of crash occurrences past 24 hours / total number of sessions past 24 hours)) * 100

(1-(Number of crash occurrences past week / total number of sessions a past week)) * 100

Benchmarking your mobile app stability score

After determining what your crash-free rate is, it’s important to benchmark this number. This is how you determine your app’s stability level. There isn’t a particular number since every app is considerably different. And with the improvements every year in QA and apps it becomes even more difficult. In 2017, Qualitrix published an acceptable target of crash-free rates for mobile apps.

  • App crash-free users > 99 %
  • App crash-free sessions > 99.9 %

As a general metric of stability, this gives an acceptable range that your app shouldn’t fall below. However, your goal should always be to improve against yourself and get the best stability possible based on your own prior data. Now let’s take a look at ways to improve app stability.

Factors affecting mobile app stability

Resource management

It’s only normal for developers to want to build lightning-fast, great-looking apps. Sometimes the pursuit of that means severe resource mismanagement, like using up too much memory as a direct result of running too many threads. Another common mistake is developers assuming all of the device’s memory is devoted just to their app. In reality, most of it is already used up by other apps. Ultimately, when the device running your app is using up all of its memory and your app needs more, a crash will occur.

The same goes for CPU usage. Managing how processing intensive your app is in order to avoid consuming too much CPUs power is key to keeping your app from crashing.

Error and interruption handling

Not every error should spell doom for your mobile app. Unexpected behavior, interruptions, and errors are bound to happen, and sometimes they can be anticipated. Users will behave in unexpected ways, and no matter how stable your app is, they can cause it to hang or crash. Unforeseen issues with your app can be caused by unexpected user behavior. Users might enter an invalid parameter in a field or stop a file transfer abruptly. So it’s important to always keep in mind that unexpected circumstances can occur and you should handle errors and issues accordingly.

Device differences

Not all devices are created equal — not just across operating systems, but even between different generations of the same device. Device specs improve at an exponential pace, and a device from two years ago might not be able to handle the resources required by your app today. Testing on a wide range and age of devices and OEMs will go a long way to making sure your app doesn’t experience unforeseen issues.

Network issues

A perk of the job can sometimes be a curse in disguise. When developing your mobile app, you’re probably enjoying doing so with the comfort of high-speed internet and WiFi. The reality of the situation is that most users will not have such stable connectivity while using your app. A lot of users will be reliant on mobile network data. That means that your users will likely experience constant connection speed changes as well as frequent drops in connection. If your app is dependent on a large portion of network resources, then connection drops and slow internet will cause a lot of disturbances in your app. These network issues need to be handled in development in order to avoid crashes and stalls.

Inadequate testing

Without a doubt, the biggest and most important reason your mobile app might crash has to do with the quality of testing. You need to subject your mobile app to testing constantly and correctly. It isn’t enough to just test your app, it needs to be tested in different environments. This includes trying out different devices, different orientations, resolutions, and networks. The more you try to break your app internally and solve issues that appear, the less likely they are to happen out in the wild. You can avoid all of these top reasons for app crashes with proper planning and testing.

How to improve mobile app stability

Continuous testing

It’s essential to perform thorough testing of the entire app experience. It’s easy to get lost in the development cycle and start testing feature by feature as they’re developed. However, testing the whole app experience daily is much more effective. Understanding what the end-user will be experiencing gives you important insights and exposes you to issues that won’t be seen from the developer side.

Crash reporting

More importantly, when a crash occurs, you need to know about it before hearing about it from negative reviews or emails. Using a tool to track your app’s crashes in real-time goes a long way to help you manage testing and address issues before they impact more of your users.

Learn more:

Instabug empowers mobile teams to maintain industry-leading apps with mobile-focused, user-centric stability and performance monitoring.

Visit our sandbox or book a demo to see how Instabug can help your app

Seeing is Believing, Start Your 14-Day Free Trial

In less than a minute, integrate the Instabug SDK for iOS, Android, React Native, Xamarin, Cordova, Flutter, and Unity mobile apps