An app is a complex piece of software that depends on many other complex pieces of software to work correctly. Even if one of these has a subtle programming error, the entire app will crash.
In Hermit, we strive to reduce our crash rate to effectively zero, but this is virtually impossible, so we try to make it as low as possible.
Device Diversity: With tens and thousands of random Android phones all over the world, each running a custom unverified build of Android, code that works well on 99.9% of devices will unexpectedly crash on 1 or 2 devices (usually from the same manufacturer).
Dependencies: Hermit depends on other software such as Google Play Services, which crashes way more than the core Hermit code. Since we did not write that code, we have no ability to fix it, even if we wanted to.
Rendering Library: For displaying Web pages, Hermit uses the Android WebView component from Google. This component also crashes way more than the rest of the Hermit app. Again, we cannot fix this.
Device Constraints: Other apps running at the same time on the phone may cause resource competition, which leaves Hermit no option but to quit unexpectedly.
Despite all these, we try our very best to make Hermit crash as little as possible.
We do several things to detect and fix crashes.
Detection: Google Play & Analytics provide us crash logs whenever the app crashes on your phone. We appreciate you taking the time to report these. Note that these crash reports don’t include your email address, so if you want us to reply to you, please type in your email address manually in the Text Description field when sending a bug report.
Analysis: We regularly look at these crash reports, especially to see if there are repeated patterns.
Fixes: If we find that a particular bug was caused by Hermit itself, those are the easiest ones: you will typically see the fix in the immediate next version.
Mitigation: If the crash involved another component, then we try everything possible to mitigate the impact of the crash. This includes detecting invalid conditions and writing code defensively to guard against them.
– ¯\_(ツ)_/¯: For some crashes in Google libraries and tools, we really have no option but to shrug and say sorry! All we can say is, please keep reporting these issues, and we hope Google will address them in the next update.