Розробка додатку Android TV
Android TV і Google TV — це не одне й те саме. Google TV (Fire TV — окрема історія) — це надбудова над Android TV з іншою домашньою сторінкою та різними вимогами до контенту. Додаток, який проходить перевірку для Android TV, може поводитися неочікувано на Google TV через різниці в лаунчері. Це потрібно враховувати на етапі проектування.
Навігація D-pad і управління фокусом
Головна відмінність від мобільної розробки — користувач керує D-pad пультом. Жодного сенсорного екрана. Фокус переміщується між View через Android Focus Engine, і це працює передбачувано тільки якщо розмітка не надто складна.
Проблема RecyclerView: при вкладених горизонтальних RecyclerView всередині вертикального (типовий Netflix-паттерн), фокус часто губиться при переході між рядками. Допомагає користувацький LinearLayoutManager із переопреділеним onInterceptFocusSearch(). Без цього, коли користувач натискає «вниз», фокус може перестрибнути в кінець екрана замість наступного рядка.
Leanback Library. androidx.leanback:leanback — стандартний набір компонентів для Android TV: BrowseSupportFragment, RowsSupportFragment, PlaybackSupportFragment. Вони реалізують стандартний TV UX з коробки: горизонтальні рядки з заголовками, детальні екрани контенту, програвання з транспортними елементами керування. Leanback розуміє D-pad нативно.
Але Leanback застаріває. Jetpack Compose для TV (androidx.tv:tv-compose) активно розвивається з 2023 року. TvLazyRow, TvLazyColumn, Carousel — декларативні компоненти з вбудованим управлінням фокусом. Для нових проектів Compose TV переважний; для підтримки legacy — Leanback.
Відеопрогравач
ExoPlayer (тепер androidx.media3:media3-exoplayer) — стандарт для Android TV. Підтримує DASH, HLS, SmoothStreaming, DRM через DefaultDrmSessionManager (Widevine L1 на сертифікованих пристроях). Для TV критично правильно налаштувати TrackSelector: вибір відеодоріжки повинен враховувати розділення дисплея, а не просто вибирати максимальне — потік 4K на екрані 1080p марнує пропускну здатність.
DRM Widevine L1 вимагає сертифікованого пристрою. SHIELD TV, Chromecast з Google TV — L1. Більшість дешевих Android TV приставок — L3. Це впливає на максимальну роздільну здатність захищеного контенту (L3 обмежує до 540p). Перевіряємо рівень через MediaDrm.isCryptoSchemeSupported(WIDEVINE_UUID) + запит властивості безпеки.
Інтеграція Google TV / стрічки рекомендацій
Google TV показує персоналізовані рекомендації на домашній сторінці з підключених додатків. Щоб брати участь, імплементуйте TvContractCompat.Programs або новий API WatchNextPrograms через ContentProvider. Це окремі роботи: заповнення WatchNextPrograms при кожному програванні, оновлення прогресу перегляду, видалення завершених програм.
Fire TV використовує інший механізм — App-to-App Communication через Intent для глибоких посилань на контент.
Перевірка та сертифікація
Додаток для Android TV публікується в Google Play з <uses-feature android:name="android.software.leanback"/> і <uses-feature android:name="android.hardware.touchscreen" android:required="false"/>. Останнє є обов'язковим — без нього Play Store не покаже додаток на TV-пристроях.
Google перевіряє: навігація доступна з D-pad без сенсорного екрана, жодних елементів UI не вимагають дотику, додаток правильно обробляє KEYCODE_BACK і KEYCODE_DPAD_*.
Розклад
Інформаційний або медіа-додаток на Leanback: 5–9 тижнів. Повнофункціональний VOD-додаток з DRM, рекомендаціями та офлайн-завантаженням: 12–20 тижнів. Вартість розраховується індивідуально після аналізу вимог до контенту та монетизації.







