Git Product home page Git Product logo

dev-alert-android's Introduction

DevAlert

This lightweight library provides visual alerts to developers and QA when an issue happens during development/testing phase.

In traditional android development, when an issue occurs, we use logs to dump the unexpected state or exception trace. Printing to logcat is not enough at times as:

  • Logs can be overlooked by developers if we are not constantly monitoring.
  • Logs maybe on a remote device which is inaccessible.

Using this library, you can provide visual warning to the developer/ QA when something goes wrong on your test or internal builds so that critical issues can be highlighted as and when they happen.

Example

In the example below, the ParseException may occur only for some specific response from server and is not always reproducible.

try {
    Data data = parser.parse(response.body().json());
} catch(ParseException ex) {
    Log.d(TAG, ex);
    DevAlert.reportError(TAG, "Response data is corrupt", ex);
}

While development or testing, when the issue happens, even if the developer/QA is not actively looking or monitoring the log for this issue, will get instantly notified.

How to Use

Add the dependency in build.gradle:

dependencies {
    ...
    ...
    compile 'com.garena.devalert:dev-alert:0.1.2'
}

Initialise the library in the Application class:

public class SampleApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        DevAlert.init(this, BuildConfig.DEBUG);
    }
}

Report errors or warning from anywhere in the app:

// report error
DevAlert.reportError(TAG, message, exception);

// report warning
DevAlert.reportWarning(TAG, message, exception);

Other Possible Use-Cases

  1. Report exceptions from background threads without crashing the app.

  2. If you are building a library or SDK, you can provide better feedback to other developers who are going to use it. (If you have worked with React-Native, it provides a similar functionality.)

  3. Create custom rules for the health check of your app and visually alert the developer/QA when these rules are violated. For example: database calls on UI thread or adding heavy code in onCreate.

Advance Usage

You can configure the library to show selective errors or warnings use the DevAlertConfig:

DevAlertConfig config = new DevAlertConfig.Builder()
      .showErrors(true)
      .showWarnings(false) // hide warnings
      .ignoredTags(Arrays.asList("MODULE_A", "MODULE_B")) // hide these tags
      .build();
DevAlert.init(getApplication(), isDevMode, config);

More Info

Here is an informal blog post https://engineering.garena.com/introducing-devalert-garena-open-source/ which lists some scenarios in which we have used this library to improve our product.

dev-alert-android's People

Contributors

amulyakhare avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.