С большим опозданием, но все же опубликовал исходный код с доклада.
Там самые разные компиляторные плагины, такие как:
- подсветка рекомпозиций
- логирование причин рекомпозиций
- удаление вызовов функции sourceInformation
- генерация/удаление/отображение testTag
- анализ стабильности параметров composable функций
Все компиляторные плагины подключаются к проекту как gradle plugin. Можно все по отдельности, а можно вместе - так удобнее настраивать.
В проверках стабильности параметров поддержаны самые последние обновления Compose Compiler, а именно возможность задавать в файле классы, которые надо пропустить в проверках. Подробнее писали тут.
Кроме этого есть ещё idea plugin.Правда в виде jar, так как получил отказ при попытке публикации в JetBrains Marketplace.
Он умеет отображать какие testTag будут сгенерированы компиляторным плагином, а так же проверять стабильность параметров функций и отображать ошибку в редакторе кода. Конечно, не на 100%, как это в компиляторном плагине сделано, но, думаю, в большинстве случаев правильно.
Ну и получил несколько просьб по поводу detekt правила для проверки параметров функций. Его тоже добавил. И там же есть возможность исключать классы, которые не нужно проверять.
Если будут проблемы или вопросы - пишите. Попробуем решить)
github.com/VKCOM/vkompose
Там самые разные компиляторные плагины, такие как:
- подсветка рекомпозиций
- логирование причин рекомпозиций
- удаление вызовов функции sourceInformation
- генерация/удаление/отображение testTag
- анализ стабильности параметров composable функций
Все компиляторные плагины подключаются к проекту как gradle plugin. Можно все по отдельности, а можно вместе - так удобнее настраивать.
В проверках стабильности параметров поддержаны самые последние обновления Compose Compiler, а именно возможность задавать в файле классы, которые надо пропустить в проверках. Подробнее писали тут.
Кроме этого есть ещё idea plugin.
Он умеет отображать какие testTag будут сгенерированы компиляторным плагином, а так же проверять стабильность параметров функций и отображать ошибку в редакторе кода. Конечно, не на 100%, как это в компиляторном плагине сделано, но, думаю, в большинстве случаев правильно.
Ну и получил несколько просьб по поводу detekt правила для проверки параметров функций. Его тоже добавил. И там же есть возможность исключать классы, которые не нужно проверять.
Если будут проблемы или вопросы - пишите. Попробуем решить)
github.com/VKCOM/vkompose
🔥28
Полуночные Зарисовки
Организация компонентов в Jetpack Compose
Telegraph
Организация компонентов в Jetpack Compose: Еще один вариант
Полная версия тут 5. Хранить данные в Modifier Чуть позже, просматривая различные репозитории в GitHub, наткнулся на ещё один вариант реализации компонентов, вдохновленный внутренней реализацией Modifier. В этом репозитории дизайн система довольно скудная…
🔥9
Подлодка
Тут относительно недавно был сезон про оптимизации UI. О своих впечатлениях и о том, что интересного подчерпнул, написал в чате @devex_and_dpe
Podlodka Android Crew #11
Тут относительно недавно был сезон про оптимизации UI. О своих впечатлениях и о том, что интересного подчерпнул, написал в чате @devex_and_dpe
Podlodka Android Crew #11
Telegram
Askhar Aydarov in Developer Experience & Developer Productivity Engineering
Podlodka Android Crew #11
🔥12👍3
Полуночные Зарисовки
Организация компонентов в Jetpack Compose
Telegraph
Организация компонентов в Jetpack Compose: Работа над ошибками
В посте про организацию компонентов в Jetpack Compose показывал вариант с типизированными слотами, которые представляют собой State и позволяют реализовать "умную" рекомпозицию функции в отдельных слотах за счет donut-hole skipping. Рекомендую ознакомиться…
🔥13👍2
Для истории
Доклад: Компиляторные плагины: модификация и анализ Сompose
Пост: Невошедшее. Mobuis. Frontend Plugin
Код: vkompose
Эксперт: @LionZXY :)
Доклад: Компиляторные плагины: модификация и анализ Сompose
Пост: Невошедшее. Mobuis. Frontend Plugin
Код: vkompose
Эксперт: @LionZXY :)
YouTube
Асхар Айдаров — Компиляторные плагины: модификация и анализ Сompose
Подробнее о конференции Mobius: https://jrg.su/ojGU3B
— —
В процессе внедрения Jetpack Compose в большой проект Асхар столкнулся с множеством нюансов, но про многое уже написано и рассказано. В докладе он рассказывает, как в команде использовали компиляторные…
— —
В процессе внедрения Jetpack Compose в большой проект Асхар столкнулся с множеством нюансов, но про многое уже написано и рассказано. В докладе он рассказывает, как в команде использовали компиляторные…
🔥22❤3