Разбор ошибок при работе с Compose приводящим к утечкам памяти. В итоге:
👉 Чаще используйте
DisposableEffect(owner) во избежании проблем с зануливанием слушателей👉 Никогда не храните
Composable-лямбды или UI-объекты во ViewModel или синглтонах. Вместо этого храните состояние (StateFlow) и события (SharedFlow)👉 Избегайте использования
GlobalScope и областей видимости всего приложения для работы, связанной с UI👉 Используйте
LaunchedEffect или viewModelScope в зависимости от того, к чьему жизненному циклу привязана задача👉 Добавляйте ключи к
remember. Если объект зависит от X, используйте remember(X)👉 Не захватывайте контекст
Activity в долгоживущие колбэки . Используйте rememberUpdatedState или перепроектируйте архитектуру так, чтобы UI-слой занимался UI-задачами. Актуально не только для Compose