Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jisungbin/ComposeInvestigator
Trace the recomposition of a Composable with its cause without boilerplate code 😎.
https://github.com/jisungbin/ComposeInvestigator
compose-compiler-plugin compose-runtime kotlin-compiler-plugin
Last synced: 9 days ago
JSON representation
Trace the recomposition of a Composable with its cause without boilerplate code 😎.
- Host: GitHub
- URL: https://github.com/jisungbin/ComposeInvestigator
- Owner: jisungbin
- License: apache-2.0
- Created: 2023-10-11T16:52:30.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-04T06:48:18.000Z (12 days ago)
- Last Synced: 2024-11-04T07:25:53.926Z (12 days ago)
- Topics: compose-compiler-plugin, compose-runtime, kotlin-compiler-plugin
- Language: Kotlin
- Homepage: https://jisungbin.github.io/ComposeInvestigator/
- Size: 1010 KB
- Stars: 285
- Watchers: 3
- Forks: 7
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- awesome-list - jisungbin/ComposeInvestigator - Trace the recomposition of a Composable with its cause without boilerplate code 😎. (Kotlin)
README
## 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)*](https://jisungbin.medium.com/tracing-recompositions-without-boilerplate-code-e9800db1419e)
*Next release schedule: Released when Kotlin 2.1.0 is stable*
---
### Getting Started ![gradle-plugin-version](https://img.shields.io/maven-central/v/in.sungb.composeinvestigator/composeinvestigator-gradle-plugin?style=flat-square)
Just add the plugin to your module-level Gradle like this:
```groovy
plugins {
id 'in.sungb.composeinvestigator' version ''
}
```> [!IMPORTANT]
>
> ComposeInvestigator is heavily dependent on the Kotlin version. So the version of
> ComposeInvestigator follows the format `[Kotlin Version - ComposeInvestigator Version]`.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](https://jisungbin.github.io/ComposeInvestigator).### Preview
![image](https://github.com/jisungbin/ComposeInvestigator/assets/40740128/98991bd9-97f2-47a7-9cc9-6f9cd1cda0e3)
### License
```
Copyright 2024 Ji SungbinLicensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License athttps://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```