Kotzilla SDK
The Kotzilla SDK integrates with your Kotlin application, using the Koin container to automatically capture technical data to help identify and resolve issues such as crashes, performance issues, dependency resolution inefficiencies, and memory leaks with minimal impact on app performance.
The SDK collects a variety of technical data, providing insights into your app’s structure and behavior. It gathers detailed information on Koin dependency graphs, component lifecycles, resolution times, performance metrics, and Android UI states.
What data does the Kotzilla SDK collect?
The SDK focuses on collecting non-sensitive, technical data necessary for diagnosing and optimizing your application
Here’s a breakdown of the data captured by the Kotzilla SDK
- Application structure data
- Definition Information: Captures the type, kind, and binding relationships of components, including child dependencies and their respective connections.
- Component tree view: For each session, the SDK records the entire component tree, allowing you to visualize the relationship between dependencies and how they evolve during the app’s lifecycle.
- Dynamic parts: Tracks injected parameters, scoped dependencies, and thread usage, giving you a detailed view of how dependencies are resolved across different threads.
- Version-specific data: Tracks data computation for each app version, enabling you to compare performance over time.
- Component statistics
- Creation statistics: Captures the number of times a dependency is created, the number of calls made, and the depth of dependency trees, helping identify excessive object creation or complex dependency chains.
- Performance metrics: Provides average creation and call times for each dependency, including both initial creation times and the time spent resolving already-created components.
- Type of definition: Identifies whether dependencies are singletons, factories, or other types, and analyzes their memory stability over time, helping spot inefficient usage.
- UI timeline: The SDK tracks the lifecycle of Activities, Fragments, and other UI components, providing a timeline of their creation and resolution.
- Code tracing: the Kotzilla SDK measures execution time for function calls, helping identify performance bottlenecks and optimize resource usage.
How is the data used?
Once the data is collected, it is securely transmitted to the Kotzilla Platform, where it is analyzed, aggregated and presented in an intuitive format through the Kotzilla Console. The console provides several tools and views to explore the data:
- Dashboard: Offers a high-level view of your app’s health, including crash rates, performance metrics, and dependency complexity.
- Timeline: Displays a chronological sequence of events for a user session, allowing you to trace dependency resolutions, lifecycle events, and delays.
- User sessions: Tracks user interactions to analyze session-specific data and pinpoint issues affecting individual user flows.
- Issues: Prioritizes and displays detected issues such as crashes, slow component initialization issues, or dependency resolution inefficiencies.
Authentication and security
The Kotzilla SDK ensures robust security and privacy for your app by using authentication and encryption protocols
- Authentication tokens and API Keys: Ensures secure, encrypted communication between the SDK and the Kotzilla cloud platform.
- HTTPS encryption: All data transmitted between your application and the Kotzilla Platform is encrypted via HTTPS, ensuring confidentiality and integrity.
The Kotzilla SDK is RGPD-compliant and does not collect personal or user-specific data. It focuses solely on technical data required for debugging and optimization, ensuring the privacy of your users.
Custom data collection
You can enrich your analysis by adding custom data, such as application-specific metrics, events, or session data. Adding business context is powerful to navigate through all logs, providing deeper insights and better traceability.
This can be configured through the SDK’s features and API for further granularity. See SDK features and API documentation for more details.