Month: October 2011

Mobile bug tracking with BugSense

BugSenseToday I’m gonna talk about a new service I discovered yesterday, bugsense. This free tool is used to report crash of your mobile applications (iPhone, Android, Google AppEngine, BlackBerry or Windows Phone 7) and send to the developer a notification, then a web tracking system will help you to know what is needed to fix. You’ll ask me, why this tool is free? The business model (according to the FAQ) is that some future features will be available only with a premium account.

Let’s talk about features.

analytics

From your interface, your dashboard, you can track the number of exceptions raised by your applications every days, weeks, months. You can also track the list of bug you already fixed and the pending list.

image_103

As you can see, for an exception, you can see the stack trace, and a lot of information concerning the device, like the OS version, the country, the application version, the application name… A bug has two states, Unresolved and resolved. It allows you to track, filter and sort easily what you have to do for the next release of your application.

image_104

You can also invite other developers of your team to track the bugs in the same dashboard.

How to implement it into your applications.

It is very very easy! Do you know NuGet? Just install the package BugSense for Windows Phone into your project.

nuget

You’ve first to initialize the service by providing the application handled and your API Key (This key is given when you create a new application on the BugSense dashboard). Update the constructor of the class App.

/// <summary> /// Constructor for the Application object. /// </summary> public App()
{
    // Define the instance of BugSense
    BugSenseHandler.Instance.Init(this, API_KEY);

    // Global handler for uncaught exceptions.
    BugSenseHandler.Instance.UnhandledException += Instance_UnhandledException;
}

Then we have to modify the way to raise unhandled exception raised by your application. You can remove the line UnhandledException += Application_UnhandledException; from the constructor, and we will create our own handler.

// Code to execute on Unhandled Exceptions private void Instance_UnhandledException(object sender, BugSenseUnhandledExceptionEventArgs e)
{
    // Use BugSense to report the exception
    BugSenseHandler.HandleError(e.ExceptionObject);

    if (System.Diagnostics.Debugger.IsAttached)
    {
        // An unhandled exception has occurred; break into the debugger
        System.Diagnostics.Debugger.Break();
    }
}

popup-wp7

So now, when a unhandled exception is raise in your application, this popup is displayed. When the user click OK, a report is sent to your dashboard, and an email is sent to your mailbox (if you activated the notification). You can, of course, customize the popup and the error message.

So, if you want to try the service BugSense for free, check it out http://www.bugsense.com/