amsterdatech / snitch

Android SOLID analytics tracker and event dispatcher

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Snitch Analytics Tracker

This library demonstrates how you could decouple analytics libraries from your business logic code, effectively allowing you to:

  • Add & remove analytics services quickly
  • Add & remove events quickly
  • Change event names and parameters according to the required kit

Quick Start Guide

Add To Gradle

Add library to your gradle module

Kotlin Implementation Example

Initiate analytics and send events

//init tracker
snitch(this) {
    http {
        url = BuildConfig.EVENT_STREAM
    }

    log {
        enable = true
        level = Log.VERBOSE
    }
}

//custom event
snitch(this).track {
   name("ProductPosDetails_view")
        .put("item_id", 424242L)
        .put("item_name", "")
        .put("price", "")
        .put("percentage", 10.0)
        .put("time_spent", Calendar.getInstance())
}

//screen event
snitch(this).screen {
    screenName(MainActivity::class.java.simpleName.snakeCase())
}

SDK used as references

Improvements

  • Implementation of common tracker like Firebase, Facebook, Mixpanel, ComScore and such
  • Room for Database and removing SqliteOpenHelper
  • WorkManager for background deferrable jobs and removing Alarms
  • Coroutines for Async Code and removing executors service
  • Koin/Dagger as DI instead of service locator/factory

References

About

Android SOLID analytics tracker and event dispatcher


Languages

Language:Kotlin 99.4%Language:Java 0.6%