diff --git a/README.md b/README.md index 79b2518..1eea115 100644 --- a/README.md +++ b/README.md @@ -12,10 +12,12 @@ A light-weight android library that can be quickly integrated into any app to us - Support multiple analytical tools e.g(Firebase, Fabric, Mixpanel). - Annotations based. - 100% reflection free. +# Contributing: +If you'd like to contribute, please take a look at the [`Contributing`](https://github.com/Winfooz/WinAnalytics/wiki/Contributing) page on the Wiki. +# Example WinAnalytics: **Application class** -``` - +```kotlin @AnalyticsConfiguration( AnalyticsClient(type = AnalyticsTypes.FIREBASE, enabled=false), AnalyticsClient(type = AnalyticsTypes.FABRIC), @@ -30,10 +32,8 @@ class MyApplication : Application() { } ``` -# Example WinAnalytics: - **Model class** -```Java +```kotlin data class User( @Analytics( Event("Login"), @@ -70,7 +70,7 @@ data class Address( ``` **MainActivity** -``` +```kotlin private fun onHelloWorldClicked(view: View) { Analytics.getInstance(applicationContext).userAnalytics.loginEvent(user) } @@ -79,7 +79,7 @@ private fun onHelloWorldClicked(view: View) { # Example analytics from more than a place: **MainActivity** -``` +```kotlin @AnalyticsEmbedded var user: User? = null @@ -98,15 +98,20 @@ protected void onCreate(Bundle savedInstanceState) { # Download ```groovy +repositories { + maven { + url "https://dl.bintray.com/mnayef95/WinAnalytics" + } +} + dependencies { - implementation 'com.winfooz.winanalytics:annotations:1.0.0-beta' - implementation 'com.winfooz.winanalytics:winanalytics:1.0.0-beta' - kapt 'com.winfooz.winanalytics:compiler:1.0.0-beta' + implementation 'com.winfooz.winanalytics:winanalytics:1.0.3-beta' + kapt 'com.winfooz.winanalytics:compiler:1.0.3-beta' } ``` # Support annotations -``` +```kotlin @Analytics() @AnalyticsConfiguration() @AnalyticsEmbedded() diff --git a/WinAnalyticsCodeStyle.xml b/WinAnalyticsCodeStyle.xml new file mode 100644 index 0000000..424f07c --- /dev/null +++ b/WinAnalyticsCodeStyle.xml @@ -0,0 +1,172 @@ + + \ No newline at end of file diff --git a/annotations/build.gradle b/annotations/build.gradle index 06ce7ee..9ee0830 100644 --- a/annotations/build.gradle +++ b/annotations/build.gradle @@ -6,8 +6,4 @@ plugins { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 -dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.0" -} apply from: rootProject.file('deploy.gradle') \ No newline at end of file diff --git a/compiler/build.gradle b/compiler/build.gradle index cc40467..327f623 100644 --- a/compiler/build.gradle +++ b/compiler/build.gradle @@ -7,8 +7,6 @@ sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation project(':annotations') // Code generation library for kotlin. diff --git a/compiler/gradle.properties b/compiler/gradle.properties index d5ecaae..64766bf 100644 --- a/compiler/gradle.properties +++ b/compiler/gradle.properties @@ -3,4 +3,4 @@ POM_DESCRIPTION=For proccess annotations and generate code POM_BINTRAY_NAME=com.winfooz.winanalytics:compiler POM_ARTIFACT_ID=compiler POM_PACKAGING=jar -POM_VERSION=1.0.4-beta \ No newline at end of file +POM_VERSION=1.0.4-beta diff --git a/compiler/src/main/java/com/winfooz/winanalytics/compiler/types/AnalyticsType.kt b/compiler/src/main/java/com/winfooz/winanalytics/compiler/types/AnalyticsType.kt index 65ba9a0..5c684a7 100644 --- a/compiler/src/main/java/com/winfooz/winanalytics/compiler/types/AnalyticsType.kt +++ b/compiler/src/main/java/com/winfooz/winanalytics/compiler/types/AnalyticsType.kt @@ -55,7 +55,8 @@ class AnalyticsType( private val constructorBuilder: FunSpec.Builder by lazy { val funSpec = FunSpec.constructorBuilder() funSpec.addModifiers(KModifier.PUBLIC) - funSpec.addParameter(ParameterSpec.builder("val context", CONTEXT, KModifier.PRIVATE).build()) + funSpec.addParameter(ParameterSpec.builder("context", CONTEXT, KModifier.PRIVATE).build()) + typBuilder.addProperty(PropertySpec.builder("context", CONTEXT, KModifier.PRIVATE).initializer("context").build()) addPram(configuration.firebaseEnabled, funSpec, FIREBASE_PREFIX, FIREBASE_ANALYTICS) addPram(configuration.fabricEnabled, funSpec, FABRIC_PREFIX, FABRIC_ANALYTICS) addPram(configuration.mixPanelEnabled, funSpec, MIXPANEL_PREFIX, MIXPANEL_ANALYTICS) @@ -125,7 +126,8 @@ class AnalyticsType( */ private fun addPram(add: Boolean, funSpec: FunSpec.Builder, name: String, className: ClassName) { if (add) { - funSpec.addParameter("val ${name.toLowerCase()}", className, KModifier.PRIVATE) + typBuilder.addProperty(PropertySpec.builder(name.toLowerCase(), className, KModifier.PRIVATE).initializer(name.toLowerCase()).build()) + funSpec.addParameter(name.toLowerCase(), className, KModifier.PRIVATE) } } } \ No newline at end of file diff --git a/compiler/src/main/java/com/winfooz/winanalytics/compiler/types/ConfigurationType.kt b/compiler/src/main/java/com/winfooz/winanalytics/compiler/types/ConfigurationType.kt index 0213519..e86bfb6 100644 --- a/compiler/src/main/java/com/winfooz/winanalytics/compiler/types/ConfigurationType.kt +++ b/compiler/src/main/java/com/winfooz/winanalytics/compiler/types/ConfigurationType.kt @@ -45,7 +45,7 @@ class ConfigurationType(private val processingEnv: ProcessingEnvironment, private val constructorBuilder: FunSpec.Builder = FunSpec.constructorBuilder() .addModifiers(KModifier.PRIVATE) .addParameter(ParameterSpec.builder( - "val context", + "context", CONTEXT, KModifier.PRIVATE ).build()) @@ -68,6 +68,7 @@ class ConfigurationType(private val processingEnv: ProcessingEnvironment, * For generate Analytics class with singleton pattern */ override fun build() { + typBuilder.addProperty(PropertySpec.builder("context", CONTEXT, KModifier.PRIVATE).initializer("context").build()) typBuilder.primaryConstructor(constructorBuilder.build()) typBuilder.addType(singletonHolder.build()) val file = FileSpec.builder(pkg, CLASS_NAME) diff --git a/winanalytics/build.gradle b/winanalytics/build.gradle index 1af880f..7613bc4 100644 --- a/winanalytics/build.gradle +++ b/winanalytics/build.gradle @@ -32,6 +32,8 @@ android { dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.0" + implementation project(':annotations') + implementation 'com.google.firebase:firebase-core:16.0.4' implementation "com.mixpanel.android:mixpanel-android:5.4.1" implementation('com.crashlytics.sdk.android:crashlytics:2.9.5@aar') { diff --git a/winanalytics/gradle.properties b/winanalytics/gradle.properties index 39e8fb2..207cdf0 100644 --- a/winanalytics/gradle.properties +++ b/winanalytics/gradle.properties @@ -3,4 +3,4 @@ POM_DESCRIPTION=For log analytics to firebase,fabric,mixpanel etc... POM_BINTRAY_NAME=com.winfooz.winanalytics:winanalytics POM_ARTIFACT_ID=winanalytics POM_PACKAGING=jar -POM_VERSION=1.0.4-beta \ No newline at end of file +POM_VERSION=1.0.4-beta