> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zixflow.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Quick Start

> Initialize the SDK and send your first event with Android.

### Kotlin Apps

For Kotlin applications using Jetpack Compose or traditional Views:

#### 1. Create Application Class

Create or update your `Application` class:

```kotlin theme={null}
import android.app.Application
import com.zixflow.sdk.Zixflow
import com.zixflow.sdk.ZixflowConfigBuilder
import com.zixflow.sdk.addModule
import com.zixflow.messaginginapp.MessagingInAppModuleConfig
import com.zixflow.messaginginapp.ModuleMessagingInApp
import com.zixflow.messagingpush.ModuleMessagingPushFCM
import com.zixflow.location.ModuleLocation

class MainApplication : Application() {

    override fun onCreate() {
        super.onCreate()

        // Initialize Zixflow SDK
        val builder = ZixflowConfigBuilder(
            applicationContext = this,
            apiKey = "YOUR_API_KEY"
        )
            .autoTrackDeviceAttributes(true)
            .autoTrackActivityScreens(true)
            .trackApplicationLifecycleEvents(true)
            .logLevel(ZixflowLogLevel.DEBUG)

            // Add push notifications module (optional)
            .addModule(ModuleMessagingPushFCM())

            // Add in-app messaging module (optional)
            .addModule(
                ModuleMessagingInApp(
                    config = MessagingInAppModuleConfig()
                )
            )

            // Add location tracking module (optional)
            .addModule(ModuleLocation())

        Zixflow.initialize(builder.build())
    }
}
```

#### 2. Register Application in AndroidManifest.xml

```xml theme={null}
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- Required permissions -->
    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:name=".MainApplication"
        android:label="@string/app_name">
        <!-- Your activities -->
    </application>
</manifest>
```

#### 3. Replace Configuration Values

* **YOUR\_API\_KEY**: Your Zixflow API key (from Zixflow dashboard)

***

### Java Apps

For Java-based applications:

#### 1. Create Application Class

```java theme={null}
import android.app.Application;
import com.zixflow.sdk.Zixflow;
import com.zixflow.sdk.ZixflowConfig;
import com.zixflow.sdk.ZixflowConfigBuilder;
import com.zixflow.sdk.ZixflowLogLevel;

public class MainApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        // Configure and initialize Zixflow SDK
        ZixflowConfig config = new ZixflowConfigBuilder(
            this,  // applicationContext
            "YOUR_API_KEY"
        )
            .autoTrackDeviceAttributes(true)
            .autoTrackActivityScreens(true)
            .trackApplicationLifecycleEvents(true)
            .logLevel(ZixflowLogLevel.DEBUG)
            .build();

        Zixflow.initialize(config);
    }
}
```

#### 2. Register in AndroidManifest.xml

```xml theme={null}
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:name=".MainApplication"
        android:label="@string/app_name">
        <!-- Your activities -->
    </application>
</manifest>
```

***
