https://github.com/garena/dev-alert-android
This lightweight library provides visual alerts to developers and QA when an issue happens during development/testing phase.
https://github.com/garena/dev-alert-android
android android-development android-library
Last synced: 12 months ago
JSON representation
This lightweight library provides visual alerts to developers and QA when an issue happens during development/testing phase.
- Host: GitHub
- URL: https://github.com/garena/dev-alert-android
- Owner: garena
- License: apache-2.0
- Created: 2017-02-27T03:18:56.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-09-01T02:47:55.000Z (almost 9 years ago)
- Last Synced: 2024-11-29T08:38:10.344Z (over 1 year ago)
- Topics: android, android-development, android-library
- Language: Java
- Size: 104 KB
- Stars: 78
- Watchers: 6
- Forks: 12
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# 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.
```java
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:
```java
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:
```java
// 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:`
```java
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.