tgoop.com/kotlin_adept/107
Last Update:
Представьте, что у вас есть список карточек, и на каждой из них отображается информация, которая обновляется в реальном времени.
Как правило, логикой обновления карточек занимается ViewModel экрана, однако это не всегда удобно. Что, если у каждой карточки будет собственный компонент логики, который будет подписываться на данные и самостоятельно изменять своё состояние?
Проблема здесь в том, что необходимо отменять подписку и освобождать ресурсы, если карточка больше не видна на экране.
Поэтому можно создать собственный тип навигации для использования с LazyList, который корректно управляет жизненным циклом компонентов:
Таким образом, получилось декомпозировать логику и избавиться от бойлерплейта, связанного с отменой подписок.
Пример и реализацию кастомного механизма навигации можно посмотреть здесь
За решение спасибо моему коллеге Евгению Мельцайкину