Compose stabilityConfigurationPath 🌚

Compose stabilityConfigurationPath 🌚



Что за зверь? 😼

В compose-compiler 1.5.4 добавили новую фичу stabilityConfigurationPath, которая позволяет самому описать какие-то классы и они будут считаться compose компилятором как Stable.

2 недели спустя: релиз 1.5.5 c багфиксом https://android-review.googlesource.com/c/platform/frameworks/support/+/2823752


Погнали тестить

Где может быть полезно?
Например, для third-party классов в библиотеках, в которых вы не можете повесить аннотацию @Stable 🌚

Рассмотрим пример интеграции Google Maps в compose проект, там часто приходится работать с LatLng моделькой

Допустим есть функция

Если запустить метрики, то будет такая картина


Чтобы пофиксить, можно сделать класс обертку со @Stable аннотацией

Если запустим метрики, то функция станет skippable, а параметр stable.

Используем конфиг

С новым подходом можно выкинуть класс обертку и в отдельном файле указать класс или package, который должен быть стабильным.

  1. создаем конфиг файл в проекте

2. Указываем нужный класс

3. В рутовом build.gradle.kts добавляем compiler аргумент и пробрасываем путь к конфигу

Все, теперь compose считает, что этот класс является стабильным 🌚



Report Page