As our team is growing and becoming more and more experienced we introduce a “column” to share insights from our experts. So, today’s insight is from Tom, head of mobile, sharing some thoughts on bug fixing tools:
When I started working at indoo.rs we were already using BugSense, which seemed pretty nice to me and so I didn’t really question its existence. A few months later we started rolling out our iOS SDK / app publicly and I didn’t hesitate to continue the tradition on another platform, so we now used BugSense on both Android and iOS. A few crashes later we were facing a problem: we weren’t able to desymbolicate (i.e. make the stacktrace readable again) manually. BugSense urged us to upgrade to a paid plan, which includes automatic desymbolication on their server. 20$ per month was a bit too much when the only benefit (for me) was automatic desymbolication. I was willing to desymbolicate the one or two crashes a week manually on my PC.
The colleague assigned with the task of desymbolicating the crashes reported by BugSense eventually came to the conclusion that this doesn’t seem to be possible. In fact, the stacktraces reported where… confusing, to say the least (I don’t have an example at hand unfortunately because they store the data only for 7 days). My colleague’s solution was easy: switch to Crittercism.
I hesitated to do the switch, because I’d never heard of Crittercism before. Anyway, we went for it and I had the pleasure to integrate the Crittercism SDK in our Android SDK / app. A few minutes later (literally!) everything was ready for the first bug report. What was shown to me on the Crittercism dashboard was stunning: detailed information about all running threads when the crash occured, memory usage, battery level, disk space, sdcard space, all kinds of information about the device, network requests (!!) and the best feature a bug reporter could ever have: logcat (only on Android; optional opt-in feature). Seriously, this is just amazing.
Having all this information at hand, fixing bugs might actually be a task to have fun with.
On BugSense we have… well, there is actually nothing BugSense offers Crittercism doesn’t (information-wise). One thing I like about BugSense though: their pricing model is much more forgiving. For my app, OpenDocument Reader, I’m still able to use a Free-plan, although we have hundreds of thousands of active users. With Crittercism we’d be forced to upgrade to a paid plan already, because their plans are priced by “monthly active users”. The free plan, for example, only allows 30k such monthly active users.
TLDR; Crittercism offers so much more insight into what was going on while the user experienced a crash, but if your app is “too popular” you will be forced to upgrade to a paid plan.
Found this useful? Then follow Tom’s blog and learn from the experience of a true Javaianer here.