SkillAgentSearch skills...

Analytiks

A lightweight Analytics library that logs events, identifies the user, and dispatches the data at one. 📊

Install / Use

/learn @aminekarimii/Analytiks
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<p align="center">📊 Analytiks</p>

<p align="center"> <strong>A unified Android analytics library that centralizes multiple analytics services</strong> </p> <p align="center"> <a href="https://github.com/aminekarimii/analytiks/actions"> <img alt="Build Status" src="https://github.com/aminekarimii/analytiks/workflows/Android%20CI/badge.svg"/> </a> <a href="https://maven-badges.herokuapp.com/maven-central/io.github.aminekarimii/analytiks"> <img alt="Maven Central" src="https://img.shields.io/maven-central/v/io.github.aminekarimii/analytiks"> </a> <a href="https://github.com/aminekarimii/analytiks/blob/main/LICENSE"> <img alt="License" src="https://img.shields.io/badge/License-Apache%202.0-blue.svg"> </a> </p> <p align="center"> <img src="https://user-images.githubusercontent.com/20410115/228402805-3309d17a-0bc5-4404-90f8-20c9b30e33a9.png" alt="Analytiks Banner" width="80%"> </p>

📋 Table of Contents


💭 Overview

Analytiks is a powerful Android library designed to simplify analytics integration by centralizing multiple analytics services into a single, unified interface. Instead of managing multiple SDKs and their different APIs, Analytiks provides a consistent way to track events, identify users, and manage analytics across your entire application.

Why Analytiks?

  • Single Implementation: Write once, use with multiple analytics providers
  • Modular Architecture: Add only the analytics services you need
  • Debug-Friendly: Built-in logging for development and testing
  • Lightweight: Minimal impact on your app's size and performance
  • Easy Migration: Switch between analytics providers without code changes
<p align="center"> <img src="https://user-images.githubusercontent.com/20410115/225161402-d3a7d24f-da0d-4360-abab-fe86c68f0214.png" alt="Library Architecture" width="70%"> </p>

✨ Key Features

  • 🔧 Easy Integration - Single API for multiple analytics services
  • 📦 Modular Design - Add only the providers you need
  • 🐛 Debug Mode - Console logging for development
  • 🚀 Performance Optimized - Minimal overhead and smart batching
  • 🔄 Provider Agnostic - Switch providers without changing your code
  • 📱 Real-time Monitoring - Built-in event viewer with AnalytiksVisor

Option 1: Using BOM (Recommended)

The BOM (Bill of Materials) automatically includes core modules and manages versions:

dependencies {
    // Import the BOM - automatically includes analytiks-core and analytiks
    implementation platform('io.github.aminekarimii:analytiks-bom:1.4.0')

    // Add addons as needed (without version numbers)
    implementation 'io.github.aminekarimii:analytiks-appsflyer'
    implementation 'io.github.aminekarimii:analytiks-addon-amplitude'
    implementation 'io.github.aminekarimii:analytiks-addon-googleanalytics'
    implementation 'io.github.aminekarimii:analytiks-addon-mixpanel'
    implementation 'io.github.aminekarimii:analytiks-addon-sentry'
    implementation 'io.github.aminekarimii:analytiks-addon-timber'
    implementation 'io.github.aminekarimii:analytiks-addon-segment'
}

Option 2: Manual Version Management

If you prefer to manage versions manually:

dependencies {
    // Core libraries
    implementation 'io.github.aminekarimii:analytiks:1.4.0'
    implementation 'io.github.aminekarimii:analytiks-core:1.4.0'

    // Analytics Providers (Add as needed)
    implementation 'io.github.aminekarimii:analytiks-addon-googleanalytics:1.4.0'
    implementation 'io.github.aminekarimii:analytiks-addon-mixpanel:1.4.0'
    implementation 'io.github.aminekarimii:analytiks-addon-segment:1.4.0'
    implementation 'io.github.aminekarimii:analytiks-addon-amplitude:1.4.0'
    implementation 'io.github.aminekarimii:analytiks-appsflyer:1.4.0'
    implementation 'io.github.aminekarimii:analytiks-addon-sentry:1.4.0'
    implementation 'io.github.aminekarimii:analytiks-addon-timber:1.4.0'
    implementation 'io.github.aminekarimii:analytiks-addon-appvisor:1.4.0'
}

Note: Check Maven Central for the latest version.


🚀 Quick Start

1. Initialize Analytiks

In your Activity or Application class:

class MainActivity : AppCompatActivity() {
    private lateinit var analytiks: Analytiks

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        
        // Build your analytics configuration
        analytiks = Analytiks.Builder()
            .addClient(GoogleAnalyticsClient()) // Firebase Analytics
            .addClient(MixpanelAnalyticsClient(token = "YOUR_MIXPANEL_TOKEN"))
            .addClient(
                SegmentAnalyticsClient(
                    token = "YOUR_SEGMENT_TOKEN",
                    flushIntervalInSeconds = 5,
                    trackApplicationLifecycleEvents = true
                )
            )
            .addClient(TimberAnalyticsClient()) // For debug logging
            .build()
    }
}

2. Initialize the Library

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    // ... configuration above
    
    // Initialize all configured analytics providers
    analytiks.initialize(applicationContext)
}

3. Start Tracking Events

// Track a simple event
analytiks.logEvent("user_signup")

// Track an event with properties
analytiks.logEvent(
    eventName = "purchase_completed",
    properties = mapOf(
        "product_id" to "12345",
        "price" to 29.99,
        "currency" to "USD"
    )
)

// Identify a user
analytiks.identify(userId = "user_12345")

// Set user properties
analytiks.setUserProperty("subscription_type", "premium")

// Send all queued events immediately
analytiks.pushAll()

🔧 Core Features

Event Tracking

// Simple event
analytiks.logEvent("button_clicked")

// Event with custom properties
analytiks.logEvent("video_played", mapOf(
    "video_id" to "abc123",
    "duration" to 120,
    "quality" to "HD"
))

User Management

// Identify user with custom ID
analytiks.identify("user_12345")

// Identify with auto-generated UUID
analytiks.identify()

// Set user properties
analytiks.setUserProperty("age", 25)
analytiks.setUserProperty("plan", "premium")

Data Management

// Force send all queued events
analytiks.flush()

// Reset user data and clear queue
analytiks.reset()

🗃 Supported Analytics SDKs

| Service | Status | Implementation Guide | Official Documentation | |---------|--------|---------------------|------------------------| | Google Analytics/Firebase | ✅ Available | Setup Guide | Firebase Docs | | Segment | ✅ Available | Setup Guide | Segment Docs | | Mixpanel | ✅ Available | Setup Guide | Mixpanel Docs | | Amplitude | ✅ Available | Setup Guide | Amplitude Docs | | AppsFlyer | ✅ Available | Setup Guide | AppsFlyer Docs | | Sentry | ✅ Available | Setup Guide | Sentry Docs | | Timber (Local Logging) | ✅ Available | Built-in | Timber GitHub | | Custom Analytics | ✅ Available | Create Custom Addon | - | | Flurry Analytics | 🚧 Coming Soon | - | - | | CleverTap | 🚧 Coming Soon | - | - | | MoEngage | 🚧 Coming Soon | - | - | | Adjust | 🚧 Coming Soon | - | - |

Request New Integrations

Can't find your analytics service? Open an issue with the service name and documentation link.


🔍 AnalytiksVisor - Event Monitoring

AnalytiksVisor provides real-time event monitoring and debugging capabilities, allowing you to see exactly what analytics events are being tracked in your application.

Features

  • 📊 Real-time Event Visualization - Monitor events as they happen
  • 🕐 Timestamp Tracking - Precise event timing information
  • 📋 Event Details - Complete event properties and metadata
  • 🚧 Coming Soon: Event sharing and push notifications

Setup

  1. Add the dependency:

Using BOM (Recommended):

dependencies {
    implementation platform('io.github.aminekarimii:analytiks-bom:1.4.0')
    implementation 'io.github.aminekarimii:analytiks-addon-appvisor'
}

Or with manual version:

implementation 'io.github.aminekarimii:analytiks-addon-appvisor:1.4.0'
  1. Initialize with interceptor:
analytiks = Analytiks.Builder()
    .addInterceptor(AppVisorActivity.initialize())
    .addClient(/* your analytics clients */)
    .build()
  1. Create app shortcut (optional):
class MyApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        AnalytiksVisor.createShortcut(this)
    }
}

Demo

<div align="center"> <video src="https://github.com/aminekarimii/analytiks/assets/20410115
View on GitHub
GitHub Stars80
CategoryData
Updated20d ago
Forks3

Languages

Kotlin

Security Score

100/100

Audited on Mar 19, 2026

No findings