Skip to content

v1.2.0

Choose a tag to compare

@mezentsev mezentsev released this 26 Dec 10:16

Release Changelog

Major Plugin Architecture Refactoring

This release introduces a breaking change that separates profiler plugins into lightweight core functionality and optional UI components.


Breaking Changes

Core vs UI Plugin Split

Plugins are now split into:

  • Non-UI plugins - profiling with optional reporter callbacks
  • UI plugins

Migration Example:

// Before
Demeter.init(
    DemeterInitializer(
        context = this,
        plugins = listOf(TracerDemeterPlugin(), InjectDemeterPlugin())
    )
)

// After (with UI)
Demeter.init(
    UiDemeterInitializer(
        context = this,
        uiPlugins = listOf(TracerUiDemeterPlugin(), InjectUiDemeterPlugin())
    )
)

// After (no-UI)
Demeter.init(
    DemeterInitializer(
        plugins = listOf(
            TracerDemeterPlugin(reporter = { payload -> /* handle */ })
        )
    )
)

New Dependencies

implementation("com.yandex.demeter:profiler-tracer-ui-plugin:1.2.0")
implementation("com.yandex.demeter:profiler-inject-ui-plugin:1.2.0")
implementation("com.yandex.demeter:profiler-compose-ui-plugin:1.2.0")