Ответ
Да, у меня был опыт адаптации Flutter-приложения под Smart TV (платформы на основе webOS и Android TV). Основная задача — перестроить интерфейс и логику навигации для управления с пульта ДУ (D-pad).
Ключевые аспекты разработки для TV на Flutter:
- Управление фокусом: Виджеты должны получать и терять фокус. Используется
FocusNodeи виджеты вродеFocusилиRawKeyboardListener.Focus( autofocus: true, onKey: (node, event) { if (event.logicalKey == LogicalKeyboardKey.arrowRight) { // Обработка перемещения фокуса вправо return KeyEventResult.handled; } return KeyEventResult.ignored; }, child: Card( color: _hasFocus ? Colors.blue : Colors.grey, child: // ... ), ) - UI/UX для большого экрана: Крупные, контрастные элементы, увеличенные отступы, минимизация текстовых блоков. Важно продумывать «сетку» фокусируемых элементов.
- Навигация: Стандартные жесты не работают, навигация строится на кнопках «Назад», «Домой», «Ввод» с пульта.
- Ограничения: Многие популярные пакеты (для камеры, геолокации) могут не поддерживать TV-платформы. Часто требуется писать каналы связи с нативным слоем или искать альтернативы.
В одном из проектов мы использовали пакет flutter_tv для базовой реализации навигации и фокуса, а также кастомизировали рендеринг для обеспечения плавной анимации на TV-чипсетах.