Skip to content

Trace the recomposition of a Composable with its cause without boilerplate code 😎.

License

Notifications You must be signed in to change notification settings

jisungbin/ComposeInvestigator

Repository files navigation

ComposeInvestigator

Trace the recomposition of a Composable with its cause without boilerplate code 😎.

This tool was initiated for personal learning and has not been proven necessary for production. However, it can perform the following tasks:

  • Reports if a Composable is skipped during recomposition.
  • Reports if the arguments of a Composable have changed and been recomposed. It can also compare the values before and after the change.
  • Reports if the state values inside a Composable have been modified. It can also compare the values before and after the change.
  • Retrieves the call stack leading up to the invocation of a Composable. This helps identify the specific Composable being recomposed when the same Composable is reused in multiple places.

(Read the Medium's introductory post)


Getting Started gradle-plugin-version

Just add the plugin to your module-level Gradle like this:

plugins {
  id 'land.sungbin.composeinvestigator' version '<version>'
}

Important

ComposeInvestigator is heavily dependent on the version of Compose Compiler, so the version of ComposeInvestigator follows the format [Compose Compiler Version - ComposeInvestigator Version].

In other words, you need to adjust the Compose Compiler version and Kotlin version to use ComposeInvestigator.

Snapshots of the development version are available in Sonatype's snapshots repository.

repositories {
  // ...
  maven {
    url 'https://s01.oss.sonatype.org/content/repositories/snapshots/'
  }
}

You don't need to use any APIs to get started. But if you're looking for a fancier experience, consider using the runtime API.

Comprehensive documentation for ComposeInvestigator is available on project website.

Preview

image