All Projects → garena → dev-alert-android

garena / dev-alert-android

Licence: Apache-2.0 License
This lightweight library provides visual alerts to developers and QA when an issue happens during development/testing phase.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to dev-alert-android

NYTimesMostPopularArticles
A simple app to hit the NY Times Most Popular Articles API and show a list of articles, that shows details when items on the list are tapped (a typical master/detail app), also user able to browse/ add articles to favorite list that implements MVVM architecture using Dagger2, Retrofit, Coroutines, LiveData, RoomDatabase, Database Debugging, Data…
Stars: ✭ 38 (-51.28%)
Mutual labels:  android-development
Cofi
Simple coffee timer
Stars: ✭ 18 (-76.92%)
Mutual labels:  android-development
Foodspace
Foodspace is an app made using Flutter and Firebase, where people can register and start exploring wide categories of restaurants present in their cities and also check the reviews and feedback for a specific restaurant. There is also a 'likes section' where all the restaurants liked by the user are displayed.
Stars: ✭ 73 (-6.41%)
Mutual labels:  android-development
nestedRecycler
A sample tutorial android app to implement Nested Recycler View easily using Kotlin
Stars: ✭ 61 (-21.79%)
Mutual labels:  android-development
recycler-adapter
RecyclerView-driven declarative UIs
Stars: ✭ 124 (+58.97%)
Mutual labels:  android-development
AndroidEssentialLibraries
👻 Android Essential Libraries - A couple of the Android Libraries to use in your Projects 🛠
Stars: ✭ 203 (+160.26%)
Mutual labels:  android-development
android-online-course
Android Online Course
Stars: ✭ 22 (-71.79%)
Mutual labels:  android-development
AndroidDevTools
收集整理Android开发所需的Android SDK、开发中用到的工具、Android开发教程、Android设计规范,免费的设计素材等。
Stars: ✭ 7,284 (+9238.46%)
Mutual labels:  android-development
android-tableview-kotlin
Android's missing TableView component.
Stars: ✭ 40 (-48.72%)
Mutual labels:  android-development
AndroidBatteryStats
Displays all battery stats of an Android device using broadcast receiver.
Stars: ✭ 20 (-74.36%)
Mutual labels:  android-development
safe-android-fragments
[DEPRECATED] The goal of this example is to show you a way to prevent the fragment state loss and consequently avoid potential crashes of your app using kotlin extensions and android support library (version up to 26.0.0).
Stars: ✭ 15 (-80.77%)
Mutual labels:  android-development
Retromock
Java library for mocking responses in a Retrofit service.
Stars: ✭ 48 (-38.46%)
Mutual labels:  android-development
FireFiles
Powerful Android File Manager for everything that runs on Android OS (Android TV, Android Watch, Mobile, etc)
Stars: ✭ 37 (-52.56%)
Mutual labels:  android-development
androidCourseKotlin
Android Course in Kotlin
Stars: ✭ 19 (-75.64%)
Mutual labels:  android-development
android toolchain
Issue tracking repo for Swift toolchain for Android.
Stars: ✭ 24 (-69.23%)
Mutual labels:  android-development
fullscreenintentexample
Full-Screen Intent Notification Android Example
Stars: ✭ 39 (-50%)
Mutual labels:  android-development
android-developer-nanodegree-by-google
Projects for Udacity Android Developer Nanodegree - Sandwich Club, Popular Movies, Baking App (WIP), Build It Bigger, Make Your App Material, and Go Ubiquitous
Stars: ✭ 14 (-82.05%)
Mutual labels:  android-development
Android-Diagonal-Cut-View
learnyandroid.blogspot.com/2017/11/create-diagonal-cut-view-in-android.html
Stars: ✭ 14 (-82.05%)
Mutual labels:  android-development
SPYZIER-APP
Android spying app and Parental controller app.
Stars: ✭ 156 (+100%)
Mutual labels:  android-development
Reside-Menu
By applying viewpager animation you can also make AMAZING Reside Menu's
Stars: ✭ 72 (-7.69%)
Mutual labels:  android-development

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].