Skip to content

Commit

Permalink
Merge pull request #25 from aminekarimii/aminekarimii-patch-update-re…
Browse files Browse the repository at this point in the history
…adme

Update README.md
  • Loading branch information
aminekarimii committed Apr 30, 2023
2 parents 9788f80 + 78dd5e5 commit 55da950
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 24 deletions.
58 changes: 34 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
# Analytiks
[![Release](https://jitpack.io/v/jitpack/android-example.svg)](https://jitpack.io/#jitpack/android-example)
![Group 54 (1)](https://user-images.githubusercontent.com/20410115/228402805-3309d17a-0bc5-4404-90f8-20c9b30e33a9.png)
# <p align="center"> 📊Analytiks</p>
<p align="center">
<a href="https://github.com/skydoves/PowerSpinner/actions"><img alt="Build Status" src="https://github.com/aminekarimii/analytiks/workflows/Android%20CI/badge.svg"/></a>
<a href="https://jitpack.io/#aminekarimii/Analytiks"><img alt="JitPack version" src="https://jitpack.io/v/aminekarimii/Analytiks.svg"/></a>
</p>

## Description
![Analytiks cover illustration](https://user-images.githubusercontent.com/20410115/228402805-3309d17a-0bc5-4404-90f8-20c9b30e33a9.png)

## ✏️ Description
An android library that centralizes analytics services in one place can be a useful tool for developers who want to track the usage and performance of their app.
Should be easy as it sounds, a single implementation to start with the base analytics core features, and then you can add each analytic service separately (to preserve library size).
Should be easy as it sounds, a single implementation to start with the base analytics core features, and then you can add each analytics service separately (to preserve library size).
A debug analytics mode that can log the same properties in the debug console.

![Scheme of the library logic](https://user-images.githubusercontent.com/20410115/225161402-d3a7d24f-da0d-4360-abab-fe86c68f0214.png)
Expand All @@ -16,17 +20,20 @@ allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
}
```
and in your app level ```build.gradle``` file, add:
```gradle
dependencies {
implementation 'com.analytiks:core:{analytiks-version}'
implementation 'com.github.aminekarimii.analytiks:analytiks:{LATEST-VERSION}'
// You can add each addon separately as following:
implementation 'com.analytiks.addon:analytiks-firebase:{analytiks-version}' // Optional Firebase Analytics addon
implementation 'com.analytiks.addon:analytiks-amplitude:{analytiks-version}' // Optional Amplitude addon
// Add any other optional addons here
implementation 'com.github.aminekarimii.analytiks:analytiks-googleanalytics:{LATEST-VERSION}' // Optional Firebase Analytics addon
implementation 'com.github.aminekarimii.analytiks:analytiks-segment:{LATEST-VERSION}' // Optional Segment addon
// Add any other optional addons here using this pattern:
// com.github.aminekarimii.analytiks:analytiks-<ADDON-NAME>:<LATEST-VERSION>
}
```

Expand Down Expand Up @@ -58,28 +65,31 @@ analytiks.logEvent("your_event_name")
analytiks.pushAll()
```

## Features [🚧 wip]
## 🪄 Features [🚧 wip]
The list of features provided by the library
- **Initialization:** `init` Initialize the "analytiks" library, along with its sub-libraries, during the initialization process.
- **Log event:** `event` send/save an event with a name and an optional set of properties.
- **Identify user:** `identify` Identify the current user by the given id or a random uuid in case of an empty one.
- **Set user property:** `setUserProperty` Sets a key value property to the identified user.
- **Reset:** `reset` the plugins and remove the default users configuration.
- **Flush events** `flush` send the recorded local data to the service servers on call.
- **Flush events** `pushAll` send the recorded local data to the service servers on call.

## Supported analytics SDKs
## 🗃 Supported analytics SDKs
Here's a list of the most known Analytic services that we will supoort in our library.
- [x] Google/Firebase Analytics
- [x] Segment
- [x] Mixpanel
- [ ] Flurry Analytics
- [ ] Amplitude
- [ ] App Annie
- [ ] Localytics
- [ ] AppsFlyer
- [ ] Sensor Tower
- [ ] Onesignal
- [x] Timber - For local event logging
| Service | Status | Implementation | Official documentation |
| --------- | ------------- | -------------- | ------------ |
| Google/Firebase Analytics || - | <a href="https://firebase.google.com/docs/analytics/get-started?platform=android">Firebase Analytics doc</a> |
| Segment || - | <a href="https://segment.com/docs/connections/sources/catalog/libraries/mobile/kotlin-android/" >Segment doc</a> |
| Mixpanel || - | <a href="https://developer.mixpanel.com/docs/android">Mixpanel doc</a> |
| Flurry Analytics | 🚧 | - | - |
| Amplitude | 🚧 | - | - |
| App Annie | 🚧 | - | - |
| Localytics | 🚧 | - | - |
| AppsFlyer | 🚧 | - | - |
| Sensor Tower | 🚧 | - | - |
| Onesignal | 🚧 | - | - |
| Timber - For local event logging || - | <a href="https://github.com/JakeWharton/timber">Timber Github</a> |
| Your Custom Addon || - | <a href="https://github.com/aminekarimii/analytiks/tree/aminekarimii-patch-update-readme/analytiks-core">Instructions</a> |

➕ Can't find your service? [open an issue](https://github.com/aminekarimii/analytiks/issues/new) with the name and the direct documentation link in the comment section.

Expand Down
11 changes: 11 additions & 0 deletions analytiks-core/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Core Analytiks
## Create your custom Addon
1. Create a new kotlin file, and create a new class
2. Implement ```CoreAddon``` interface
3. Extend your analytics addon with the available features:

| Extention | Features |
| --------- | ------------- |
| **EventsExtension** | Provides support for custom event tracking via ```logEvent``` method. |
| **UserProfileExtension** | Optional extension interface that can be implemented by analytics clients to provide support for user profile tracking. it provides three extensions: ```identify```, ```setUserProperty```, and ```setUserPropertyOnce```.
| **AnalyticsDataTransmitterExtension** | Interface for handling the communication with the analytics server. There is one single method right now, ```pushAll``` |

0 comments on commit 55da950

Please sign in to comment.