A light-weight android library that can be quickly integrated into any app to use analytics tools.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
annotations Change organization name Oct 8, 2018
compiler Change organization name Oct 8, 2018
gradle/wrapper
sample
winanalytics Change organization name Oct 8, 2018
.gitignore Update versions Oct 7, 2018
LICENSE Create LICENSE Oct 8, 2018
README.md Update version Oct 8, 2018
build.gradle Update versions Oct 7, 2018
compile.sh Init Oct 7, 2018
gradle.properties Init Oct 7, 2018
gradlew Init Oct 7, 2018
gradlew.bat
settings.gradle Support jitpack Oct 7, 2018

README.md

WinAnalytics(Beta) library

A light-weight android library that can be quickly integrated into any app to use analytics tools.

  • Full Kotlin support.
  • Support multiple analytical tools e.g(Firebase, Fabric, Mixpanel).
  • Annotations based.
  • 100% reflection free.

Application class


@AnalyticsConfiguration(
        AnalyticsClient(type = AnalyticsTypes.FIREBASE, enabled=false),
        AnalyticsClient(type = AnalyticsTypes.FABRIC),
        AnalyticsClient(key = "mixpanelToken", type = AnalyticsTypes.MIXPANEL)
)
class MyApplication : Application() {

    override fun onCreate() {
        super.onCreate()
        Fabric.with(this, Crashlytics())
    }
}

Example WinAnalytics:

Model class

data class User(
        @Analytics(
                Event("Login"),
                Event("Logout")
        )
        val name: String,

        @Analytics(Event("Logout"))
        val email: String,

        @Analytics(Event("Login"))
        val phone: String,

        @Analytics(
                Event("Login"),
                Event("Logout")
        )
        val age: Int,

        @AnalyticsEmbedded
        val address: Address?
)

data class Address(
        @Analytics(Event("Login"))
        val address: String,

        @Analytics(Event("Login"))
        val latitude: String,

        @Analytics(Event("Login"))
        val longitude: String
)

MainActivity

private fun onHelloWorldClicked(view: View) {
    Analytics.getInstance(applicationContext).userAnalytics.loginEvent(user)
}

Example analytics from more than a place:

MainActivity

@AnalyticsEmbedded
var user: User? = null

@AnalyticsEmbedded
var address: Address? = null

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Analytics.getInstance(applicationContext).mainActivityAnalytics.loginEvent(this)
}

How do I get set up?

Project-level build.gradle (<project>/build.gradle):

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

App-level build.gradle (<project>/<app-module>/build.gradle):

implementation 'com.github.Winfooz.WinAnalytics:annotations:v1.0.3-beta'
implementation 'com.github.Winfooz.WinAnalytics:winanalytics:v1.0.3-beta'
kapt 'com.github.Winfooz.WinAnalytics:compiler:v1.0.3-beta'

Support annotations

@Analytics()
@AnalyticsConfiguration()
@AnalyticsEmbedded()
@AnalyticsTypes()
@WinAnalyticsClient()

License

WinAnalytics is released under the MIT license. See LICENSE for details.