View Full Version : Why do apps not work properly?

"Based on data gathered from over 1 billion mobile users, Crittercism has found that even though iOS 7.1 is Apple’s most stable release for apps yet (http://bgr.com/2014/03/17/ios-7-1-best-features-app-crashes/), the latest software still has a crash rate of 1.6%. On the other hand, Android versions KitKat, Ice Cream Sandwich and Jelly Bean all have crash rates of just 0.7%. Even Gingerbread appears to be more stable than any iOS version before 7.1. All in all, your apps are significantly less likely to crash on an Android device than on an iPhone, iPad or iPod touch."
I know nothing about programming but I am curious 1) what are the primary reasons apps crash and 2) why are apps released when it is apparent they do not work properly? It seems like Android apps would have more problems due to being installed on a variety of hardware but apparently this isn't the case. Also I have read that Apple has stricter standards for their apps but I've come across several iPad apps that don't work properly. If someone could explain in terms a non-tech person can understand I would appreciate it;

1) Apps crash because something that wasn’t foreseen by the developers happened. A specific sequence of events put the app in a state that it is not recoverable.
2) Because it is virtually impossible to foresee every case we test our app before release with basic and weird scenarios to find the limits and then fix the bugs found. Once we consider an app “good enough” (because it is impossible to deliver a bug free app), we can release it. The problem here relies in the definition of “good enough”. It is often balanced with marketing needs / will to make money / laziness of developer. Some people will have a definition of “good enough” more permissive than other.
About the iOS / Android stability. From the beginning Android was build to be an open ecosystem: third party developers could use the platform to build application. To allow that Android was based on a sandboxed model: every app would have its own private “room” live in so that other apps can’t disturb it and it can’t disturb any other app. On the other hand, iOS wasn’t originally created to be an open ecosystem. Everything was managed by Apple so that it was easier to ensure the integrity of all the parts and they didn’t need a robust isolation model for the apps. I think this is the reason why today we can still see a difference between Android and iOS in terms of stability. If an app is not behaving on iOS it can potentially impact the whole system, whereas on Android it will be contained to its sandbox.

Your 2. paragraph…
iOS apps are sandboxed as well and “multitasking” was supported from the beginning through the underlying BSD kernel.
I think the crashes have more to do with how iOS manages running apps more restrictively. For example, if an app takes too long to complete a “background task” or eats up too much memory, it gets a warning from the OS and will be suspended or killed after a short time. This, however, is almost never exposed to the user, as the app’s state is normally recovered when the user reactivates the app.
Android manages it’s apps differently, so a “crash” is more likely experienced directly by the user.

Oh, ok my bad. So every app is run with a different user and a different affected memory space?