Skip to main content

Kotlin Apps

For Kotlin applications using Jetpack Compose or traditional Views:

1. Create Application Class

Create or update your Application class:
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

<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

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

<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>