As you may be aware, we develop various app and services for different platforms and languages. The main platforms being Windows and/or Linuux, Android and web services, with the main languages being C++, C#, PHP, Javascript, Java. We obviously want to make our apps and services as robust as possible, and to do that we rely on monitoring crashes, but we stumbled upon a problem. Many crash monitors can be complex, can easily become unwildly, only supports a various technology type or platform, so can be hard to keep track of any issues. We therefore over the past year or so, we've been working on a new project called CritiMon.

The main purpose of CritiMon, is, well monitor crashes, unlike most of the crash platforms we've looked at, they only show you unhandled exceptions that cause your app to forcefully close, but hang on, the app or service might throw an error which it shouldn't but is being caught by an exception handler so the app doesn't unexpectedly crash on the user, but we're not necessarily going to know that happened, apart from relying on our users to tell us. This wasn't good enough, sure we really appreciate our users spending the time to let us know about issues so we can solve it, but we want to be a little more proactive, and solve issues far sooner before lots of users are affected. This is where CritiMon comes in.

CritiMon allows you to capture crashes and errors, whether they are unhandled which would force you app to close, as well as the errors that you handle within try/catch blocks.

Currently, CritiMon only supports Java for Android but we plan on implementing many different languages. The main ones will be the ones that we use as mentioned above:

  • C+
  • PHP
  • C#
  • Javascript

However, you'll be able to request other languages that we can then implement later as well.

As CritiMon currently only supports Android, that's where we'll start to show you how it works and what the crash monitoring looks like.

For each language, we will provide an SDK that you include in to your project, these SDKs will be open source so you can make sure we're not doing anything untoward to give you greater peace of mind.

First of all, you need to register your application with CritiMon. This will provide you with an app key, and when you register to CritiMon you will be provided with an API key. Both of these will be required to initialise the SDK.

app_registration

Now that you've registered the app, you can initialise the CritiMon SDK within your application. For android, this is done as:

CritiMon.Initialise(<app_id>, <api_key>);

That's it, that's all you need to do (in each Activities onCreate method) At this point when the app launches it initialises and will send any crashes to your account, whether its a handled or an unhandled exception. Not only that but it will tell you how many users initialise per a day, per a week and per a month as well as telling you the percentage increase/decrease of users initialising within your app.

This is our first dev post about CritiMon, and we will continue to post new content as often as we can (we will aim for at least one a month).

Don't forget, if you haven't already, you can register your interest and get early access to CritiMon by visiting https://critimon.boardiesitsolutions.com.

Also we'd love to hear your feedback, after all, we're not just releasing this for us, we're releasing for everyone to use, so please let us know about any features you'd like to see, or if you have any question. Either submit your suggestions or qustions to the comments section here, or email us at [email protected].

In the next post, we will be writing about registering your applications with the platform, as well as a unique feature that will be available.