Posted on

dejavu

A lightweight framework for tracking and asserting against Jetpack Compose recompositions.

https://dejavu.mmckenna.me

https://github.com/himattm/dejavu

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

Posted on

Kotlin Explorer

Kotlin Explorer — это настольный инструмент для быстрого изучения дизассемблированного кода на Kotlin.

Он позволяет быстро и удобно дизассемблировать Kotlin-код в:

  • байткод Java,
  • байткод Android DEX,
  • ассемблер Android OAT (AOT-компиляция).

Как использовать

После запуска Kotlin Explorer введите корректный Kotlin-код в левую панель, затем нажмите Build > Build & Disassemble или используйте Cmd-Shift-D (macOS) / Ctrl-Shift-D (Linux и Windows).

По умолчанию:

  • средняя панель покажет DEX-байткод Android,
  • правая панель — нативный ассемблер, полученный в результате предварительной компиляции (AOT).
    Видимость панелей настраивается через меню View.

Возможности

  • Build > Optimize with R8 — включает оптимизации R8. Может повлиять на отображение номеров строк исходного кода в байткоде и DEX.
  • View > Sync Lines — синхронизация текущей строки между исходным кодом, байткодом и DEX. Для корректной работы может потребоваться отключение R8.
  • View > Presentation Mode — увеличивает размер шрифта для презентаций.
  • Build > Build on Startup — автоматическая компиляция при запуске приложения.
  • Build > Run — компиляция и локальный запуск Kotlin-кода. Результаты отображаются в логах.
  • Нажатие на команду перехода (jump instruction) показывает стрелку к целевой инструкции.
  • Отображается количество инструкций и ветвлений на метод.
  • Клик по инструкции или регистру подсвечивает все их вхождения.
  • Встроенная документация по aarch64 (ARM 64-bit). Включается через View > Show Logs & Documentation.

https://github.com/romainguy/kotlin-explorer