Сначала зафиксируйте SLO и зависимости приложения, затем подготовьте отказоустойчивость самого сервиса и данных; перенос в Kubernetes не гарантирует 99,9%.
Основные проблемы — suspend-вызов из onClick, побочные эффекты в теле composable, небезопасный !! и неполные ключи эффектов. Их нужно исправить до косметического рефакторинга.
Для обычной активации TV-карточки используйте onClick фокусируемого компонента. Для специальных кнопок пульта подойдут onKeyEvent и onPreviewKeyEvent с проверкой клавиши и типа события.
Проверьте GPU, overdraw, сложные эффекты, стоимость layout и конфигурацию сборки. Отсутствие лишних рекомпозиций ещё не означает, что весь кадр укладывается в бюджет.
Сравнивайте одинаковый сценарий и release-сборки на одном устройстве. Затем разложите кадр на composition, layout, draw и работу GPU, вместо предположения, что Compose медленнее сам по себе.
Храните состояние и выполняющуюся Job во ViewModel. Повторные клики во время ожидания игнорируйте, задержку делайте через delay, а после завершения обновляйте текст.
Используйте Layout Inspector со счётчиками рекомпозиций и пропусков, а для стоимости работы — composition tracing в системной трассе. Одного количества вызовов недостаточно.
Для обычного действия используйте Button или clickable; для специальных жестов — combinedClickable либо pointerInput. Нажатия клавиш обрабатываются через onKeyEvent/onPreviewKeyEvent.