Skip to content

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.

It also depends slightly on the Compose Runtime and Compose Animation versions. The last tested versions are both 1.6.3.

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