Repository navigation
v1.0.1
馃殌 Features
-
Introduce
TrackScreenOncecomposable for reliable screen tracking- New helper composable that wraps tracking calls in
LaunchedEffect(Unit) - Guarantees single execution even during multiple recompositions
- Includes comprehensive instrumented tests to verify behavior
- New helper composable that wraps tracking calls in
-
Introduce
TrackScreenHelperfor ASM-injected code- Simplifies ASM bytecode generation for Activity/Fragment tracking
- Replaces ~50 lines of complex bytecode with a simple static method call
- Handles parameter collection from
TrackedScreenParamsProvider - Reduces stack size requirements and improves maintainability
馃殰 Refactoring
-
Use
TrackScreenOncefor Composable screen tracking- ASM bytecode injection now calls
TrackScreenOnce()instead of direct tracking - Prevents duplicate events on recomposition
- ASM bytecode injection now calls
-
Simplify tracking method injection with a helper class
- For Activities/Fragments: Now injects call to
TrackScreenHelper.trackScreen() - Removed complex inline parameter collection bytecode
- For Activities/Fragments: Now injects call to
-
Remove unused variables and code cleanup
- Removed unused variables in
AnalyticsClassVisitorFactory - Removed unused class properties in
AnalyticsClassVisitor
- Removed unused variables in
-
Relocate
TrackingAnnotationInfoand removeAnnotationScanner- Extracted
TrackingAnnotationInfointo its own file for better separation of concerns
- Extracted
馃摎 Documentation
- Add extensive KDoc documentation to
AnalyticsClassVisitorFactory- Documented all public and internal APIs
- Explained the two-pass transformation strategy
- Added detailed documentation for all visitor classes and helper methods