{"repo":"himattm/dejavu","free":true,"listed":false,"github":"https://github.com/himattm/dejavu","clone":"git clone https://github.com/himattm/dejavu.git","description":"A lightweight framework for tracking and asserting against Jetpack Compose recompositions.","language":"Kotlin","stars":191,"topics":["android","compose-testing","jetpack-compose","kotlin","recomposition"],"license":"Apache-2.0","category":"mobile-apps","readme_excerpt":"Dejavu Wait... didn't we just compose this? Featured In Full Documentation Guard your Compose UI efficiency. Catch recomposition regressions before your users. The Problem Compose's recomposition behavior is an implicit contract — composables should recompose when their inputs change and stay stable otherwise. But that contract breaks silently, and today's options for catching it are limited: - Layout Inspector — manual, requires a running app, can't automate, can't run in CI - Manual tracking code — SideEffect counters, LaunchedEffect logging, wrapper composables; invasive, doesn't scale, and ships in your production code - Neither gives you a testable, automatable contract you can enforce on every PR What Dejavu Does Dejavu is a test-only library that turns recomposition behavior into assertions. Tag your composables with standard Modifier.testTag() , write expectations against recomposition counts, and get structured diagnostics when something changes — whether from a teammate, a library upgrade, an AI agent rewriting your UI code, or a refactor that silently destabilizes a lambda. - Zero production code changes — just Modifier.testTag() - One-line test setup — createRecompositionTrackingRule() - Rich diagnostics — source location, recomposition timeline, parameter diffs, causality analysis - Per-instance tracking — multiple instances of the same composable get independent counters Quick Start 1. Add dependency 2. Write a test createRecompositionTrackingRule wraps createAn","default_branch":null,"files":null,"tree":[],"storefront":"/r/himattm","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/himattm/dejavu/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}