Strong Skipping Mode — это режим, при котором Compose точно отслеживает изменения параметров composable-функций и пропускает рекомпозицию, если параметры не изменились и считаются Stable.
Как работает режим компилятора
👉 Если параметры функции Stable и равны предыдущим значениям (через Object.equals()), Compose пропускает рекомпозицию этого composable.
👉 Для Unstable типов происходит сравнение через проверку ссылки (вызов === в Kotlin), что минимизировать кол-во рекомпозиций
👉 Даже лямбды
(() -> Unit) считаются Stable, но если они захватывают нестабильные объекты, Compose не сможет пропустить рекомпозицию, потому что захваченные значения могут измениться.👉 При выключенном Strong Skipping режиме Compose реже пропускает рекомпозицию, даже если параметры формально Stable.
Почему это важно?
👉 Strong Skipping помогает избегать ненужных перерисовок и увеличивает производительность UI.
👉 Если вы передаёте в composable нестабильные параметры, skipping работать не будет — функция будет вызываться чаще.
Ключевые моменты:
👉 Лямбды по умолчанию Stable, но их захватываемые значения могут ломать skipping.
👉 Параметры типа SnapshotStateList, SnapshotStateMap, MutableState считаются Stable.
👉 Strong Skipping Mode по умолчанию включён с Kotlin 2.0.20, и его рекомендуется не отключать для современных проектов.
#compose #производительность