В UI собирают через lifecycleScope/repeatOnLifecycle или Compose collectAsStateWithLifecycle, чтобы не слушать в фоне.
Разбор
repeatOnLifecycle(STARTED) предотвращает утечки и лишнюю работу.
- Не collect в
GlobalScope.
- StateFlow + Compose — естественная пара.
- События навигации — отдельный канал/SharedFlow с осторожностью.
Итог
Подписка должна следовать lifecycle, иначе батарея и краши.