Categories: Mobile Apps
As mobile app developers we know that app users have high expectations of their apps. Slow-loading apps or apps that take more than a second to respond to user input are on the fast-track to being uninstalled. An app that freezes or crashes won’t get a second chance: more than half of all users will simply bin it.
Apps aren’t infallible, but they shouldn’t be fragile either. Let’s take a look at some of the key reasons apps crash – and what we can do about them.
Crash issue #1: memory issues
We’ve all been guilty of browsing the web with 20 tabs open. Over time, your computer slows down and a reboot is in order. The same is true with mobile apps. Apps that chew up a lot of memory resources can slow things to a drag – or a crash. Some apps archive huge amounts of data, while others spin a bunch of threads at once, draining a device’s memory resources. While the app is usually the culprit, users who have lots of apps running at once can experience performance issues. Mobile app developers should acknowledge that this is typical usage behaviour, and design apps that can coexist with other apps running concurrently.
Crash issue #2: updates everywhere
Software is always a work in progress. Just like a house or a car, it needs regular maintenance to keep it in tip-top shape. Mobile app developers can help ensure that new updates won’t conflict with existing parts of the system. But not everything is under their control. Updates to APIs and operating systems can affect how an app performs. Third-party frameworks in particular can be a problem, and can add an unwanted element of “surprise” to your app. Some update-related crashes can also be attributed partly to the user. An app might have been updated to work seamlessly with new OS and third-party updates, but if a user fails to download the latest version, they may experience problems.
Crash issue 3: network issues
Using mobile apps while on the go means toggling between wifi and mobile data. Connections drop out while in tunnels, lifts or while switching between towers. An app waiting on a response to information submitted while on a wifi connection won’t be able to get the information it needs now that you’re on 4G. This can result in pauses, information loss or scrambled packets. Built-in network switching has helped mitigate network-related issues, but instability and memory loss when switching between networks is still a problem. This one’s out of the hands of mobile app developers, but building in connectivity warnings and notifications can help manage user expectations.
Crash issue 3: insufficient testing
All mobile app developers test their code for usability, functionality, interoperability, performance and edge cases before pushing it live. But it’s never possible to test for every possible issue. While iPhone apps are a little easier, trying to test across Android devices and versions is time-consuming and therefore costly. Simulators can help, but they won’t catch everything. Effective testing requires a balance between the manual and the automated – and what your budget can handle – and is ideally carried on even after deployment.
Apps aren’t perfect, but we can optimize them. Addressing the issues that lead to app crashes will go a long way towards getting the thumbs up from users – and will lead to better performance overall.