Skip to content

Kotzilla SDK 2.0.4 — KMP Observability with iOS Crash Reporting

The Kotzilla SDK 2.0.4 introduces a major update to the Kotzilla SDK, a monitoring and crash reporting toolkit designed for Kotlin developers building Kotlin Multiplatform (KMP) applications, using Koin for dependency injection.

What Is the Kotzilla SDK?

The Kotzilla SDK is a performance monitoring and crash reporting solution built specifically for Kotlin and Koin-based applications.

Unlike traditional APM tools that treat each platform separately, the SDK integrates directly into your Kotlin codebase and dependency injection setup. This allows you to observe runtime behavior such as:

  • Application startup performance
  • Dependency resolution timing
  • UI rendering delays
  • Cross-platform crash diagnostics

For Kotlin Multiplatform teams, this now means using a single SDK rather than separate monitoring tools for each platform.

Unified Monitoring for Kotlin Multiplatform Targets

Kotzilla SDK 2.0.4 expands monitoring support across the most common KMP environments. You can now initialize monitoring once and capture runtime signals across:

  • Android
  • iOS
  • Desktop (JVM)
  • JavaScript (Browser & Node.js)
  • WebAssembly (Browser & Node.js)

This unified approach reduces platform-specific configuration and aligns monitoring with the shared Kotlin architecture layer — a key requirement for modern KMP apps.

iOS Crash Reporting (Beta) for KMP Apps

A major addition in this release is automatic iOS crash reporting, currently in beta.

Crashes are captured using PLCrashReporter embedded directly into the SDK. You can enable readable stack traces with dSYM symbolication by running:

./gradlew setupKotzillaXcode

This setup prevents Debug/Release dSYM conflicts using UUID-based caching, ensuring symbolicated stack traces remain accurate across build configurations.

For KMP teams, this enables unified crash monitoring without needing separate iOS-only tooling.

Expanded Compose Multiplatform Support

SDK 2.0.4 introduces experimental monitoring support for additional Compose Multiplatform targets.

Desktop (JVM)

Compose Desktop applications now support crash reporting and event tracking. Teams building shared UI across mobile and desktop can now consistently monitor runtime behavior.

Mapping file support for obfuscated JVM builds is not yet available.

JavaScript (Browser & Node.js)

Compose Multiplatform JavaScript targets are supported. Browser environments store crash data in localStorage, preventing diagnostic loss during page reloads or unexpected closures.

Source map support for minified builds is still pending.

WebAssembly (WASM)

WebAssembly targets are supported for browser and Node.js environments, enabling monitoring for Compose Multiplatform apps compiled to WASM.

As with JS targets, source map support is not yet available.

A New Unified Initialization API: monitoring()

One of the biggest developer experience improvements in SDK 2.0.4 is the new monitoring() API.

Generated automatically by the Kotzilla Gradle plugin, this function reads configuration from kotzilla.json and provides a single initialization entry point for all platforms:

import io.kotzilla.generated.monitoring

startKoin {
monitoring()
}

Key benefits include:

  • Compile-time configuration validation
  • Automatic API key obfuscation (XOR + Base64)
  • Consistent initialization across Android, iOS, JVM, JS, Native, and WASM

The older analytics() API remains available on Android for backward compatibility, but monitoring() is now the recommended default for KMP projects.

Simplified Setup for Kotlin Developers

SDK 2.0.4 focuses heavily on reducing setup complexity.

Automatic dependency injection
SDK dependencies are now added automatically. If you prefer manual control, you can disable this behavior:

kotzilla { autoAddDependencies = false }

Built-in ProGuard/R8 rules
Required obfuscation rules are included by default, eliminating manual configuration.

Compose instrumentation enabled by default
Compose monitoring is now active out of the box, improving visibility into UI performance without additional setup.

API key obfuscation by default
Generated configuration files now protect API keys automatically.

Fail-fast configuration validation
Builds fail immediately if the API key is missing, replacing silent runtime failures with actionable build-time feedback.

Koin 4.x Required

SDK 2.0.x requires Koin 4.x or higher. Projects currently using Koin 3.x must upgrade before adopting this version.

Compatibility Overview

Dependency Supported Versions (SDK 2.0.x)
Kotlin 2.1.0 – 2.3.0
AGP 8.4.0 – 8.13.0
Gradle 8.6 – 9.3
Koin 4.0.4+
Compose Navigation 2.9.1

AGP 9.0.0 and Navigation 3 are not supported yet.

Bug Fixes and Stability Improvements

SDK 2.0.4 includes several reliability updates:

  • Fixed API 21 crash caused by forEach usage in the Compose SDK
  • Reduced network traffic to improve performance efficiency
  • Improved reliability of Android mapping file and iOS dSYM uploads

What This Means for Kotlin Multiplatform Developers

SDK 2.0.4 represents a shift toward unified observability in Kotlin Multiplatform projects. Instead of managing separate monitoring solutions for each platform, you can now integrate one SDK directly into your shared Kotlin architecture.

For teams using Koin and Compose Multiplatform, this reduces integration overhead while improving visibility into real-world performance and crash behavior across the entire application lifecycle.

About the Author: This article was written by Miguel Valdes-Faura from the Kotzilla team. Kotzilla provides AI-powered performance monitoring for Koin-based Android applications, trusted by leading companies like Canal+, TotalEnergies, Worldline, Volkswagen, and Литрес to speed up issue resolution and reduce downtime. Follow us for more insights on Android development best practices and performance optimization strategies.