react-native-tv-best-practices

tarafından callstackincubator

React Native TV uygulamalarını odak/D-pad navigasyonu, 10-foot UI düzeni, TV oynatma/DRM entegrasyonu, düşük bellekli TV performansı ve TV erişilebilirliği açısından inceler. Kullan…

npx skills add https://github.com/callstackincubator/agent-skills --skill react-native-tv-best-practices

React Native TV Best Practices

Overview

TV-specific review guidance for React Native-backed apps on Apple TV, Android TV, Fire TV, Amazon Vega/Kepler, and web-based TV targets such as Tizen or webOS.

Use this skill only for TV deltas: remote input, focus engines, 10-foot layout, platform packaging, playback/DRM, low-memory TV hardware, and TV accessibility. For ordinary React Native performance or architecture issues, use react-native-best-practices.

Skill Format

Reference files are grouped by topic prefix:

  • focus-*: focus engines, focus guides, focus event performance
  • nav-*: D-pad navigation, Back/Menu behavior, keyboard/search input
  • design-*: 10-foot typography, layout, color, focus visibility
  • perf-*: startup, memory, lists, animation, and network constraints on TV hardware
  • video-*: playback architecture, DRM/protocol selection, debugging
  • a11y-*: TV accessibility implementation and audit checks
  • setup-*: stack detection, setup, architecture, cross-platform behavior
  • test-* and release-*: test coverage, E2E, and CI/release workflows

When to Apply

Apply this skill when the app targets a TV platform and the work involves:

  • Focus movement, visible focus, focus restoration, or remote/D-pad input
  • TV layout readability, overscan/safe areas, or 10-foot UI density
  • TV player controls, manifests, DRM, decoder support, or playback errors
  • Performance on low-memory TV hardware, especially with video or large carousels
  • TV accessibility with screen readers, captions, focus order, or remote-only interaction
  • Platform setup for react-native-tvos, Expo TV, Amazon Vega/Kepler, Tizen, or webOS

Before You Start — Identify the TV Stack

This skill covers several TV stacks. Detect which one the app targets before flagging setup issues — demanding react-native-tvos, a tvOS Podfile, or an Android TV manifest on a Vega/Kepler or web-based TV app produces false positives.

StackHow to detectSetup expectations
react-native-tvos (Apple TV, Android TV, Fire TV)"react-native": "npm:react-native-tvos@…" in package.jsontvOS Podfile (platform :tvos); Android TV leanback/LEANBACK_LAUNCHER manifest entries; TV emulator/simulator
Expo + react-native-tvosabove plus @react-native-tvos/config-tv in app.jsonEXPO_TV=1 prebuild; react-native-tvos version must match the Expo SDK; not all Expo features/libraries are available on TV
Amazon Vega / KeplerVega/Kepler SDK & tooling (@amazon-devices/* deps, Kepler manifest); no react-native-tvosAmazon's Vega/Kepler toolchain — react-native-tvos, tvOS Podfile, and Android TV manifest do not apply
Web-based TV (Tizen, webOS)web bundler (Rsbuild/webpack) + platform packaging; spatial-nav libraryPlatform SDK packaging; @noriginmedia/norigin-spatial-navigation for focus

The focus, 10-foot design, performance, accessibility, and player guidance applies across all of these — only the setup/build expectations are stack-specific.

Review Rules

  • Resolve the target stack before setup advice.
  • Prefer natural focus order and focus guides before imperative focus calls or broad nextFocus* maps.
  • Treat focus loss, invisible focus, and broken Back/Menu behavior as navigation bugs.
  • Check readability, safe areas, and focus states at TV distance before tuning visual details.
  • Profile on the weakest supported TV device before reporting performance fixes as complete.
  • Separate playback failures by layer: manifest request, DRM license exchange, decoder capability, player state, and React UI controls.

Priority-Ordered Guidelines

PriorityCategoryImpactPrefix
1Focus and D-pad navigationCRITICALfocus-*, nav-*
2List, animation, and input performanceCRITICALperf-*
3Playback and DRM failuresHIGHvideo-*
410-foot readability and layoutHIGHdesign-*
5TV accessibilityHIGHa11y-*
6Stack setup, testing, and releaseMEDIUMsetup-*, test-*, release-*

Quick Reference

  1. Detect the TV stack from package files, manifests, native folders, and platform tooling.
  2. Reproduce navigation with the remote or D-pad path, not mouse/touch assumptions.
  3. Confirm the focused element is always visible, reachable, and restored after modals/routes.
  4. Check playback failures from the network/DRM layer upward before changing React controls.
  5. Measure list, animation, memory, and startup work on the weakest supported TV target.

References

Focus and Navigation

FileImpactDescription
focus-management.mdCRITICALFocus engines, focus guides, nextFocus*, and focus restoration
focus-performance.mdCRITICALAvoiding frame drops from focus event handling
nav-directional.mdCRITICALDirectional navigation rules across TV platforms
nav-patterns.mdCRITICALGlobal/local navigation, modals, tabs, and Back behavior
nav-keyboard.mdMEDIUMSearch and text input with remotes

Design

FileImpactDescription
design-10foot.mdHIGH10-foot review heuristics
design-typography.mdHIGHTV type sizing and readability
design-layout.mdHIGHSafe areas, spacing, carousels, and focus room
design-color.mdMEDIUMContrast and TV display color constraints

Performance

FileImpactDescription
perf-overview.mdHIGHTV performance targets and profiling order
perf-lists.mdCRITICALVirtualized rows and poster-heavy lists
perf-animations.mdCRITICALFocus and transition animation performance
perf-memory.mdHIGHLow-memory TV crashes and image/video pressure
perf-network.mdHIGHRemote input, request stalls, and network resilience

Video, Accessibility, Setup, Testing

FileImpactDescription
video-streaming.mdHIGHTV platform protocol/DRM selection
video-players.mdHIGHPlayer choices and custom controls
video-debugging.mdHIGHManifest, DRM, codec, and playback debugging
a11y-overview.mdMEDIUMTV-specific accessibility differences
a11y-implementation.mdHIGHAccessible labels, roles, live regions, and focus
a11y-checklist.mdMEDIUMLaunch accessibility audit checklist
setup-getting-started.mdMEDIUMreact-native-tvos and Expo TV setup
setup-cross-platform.mdMEDIUMPlatform detection and cross-platform caveats
setup-architecture.mdMEDIUMCode sharing and project structure
test-strategy.mdMEDIUMTV testing scope and coverage split
test-javascript.mdMEDIUMJS-level remote/focus test helpers
test-e2e.mdMEDIUMAppium and TV E2E coverage
release-cicd.mdMEDIUMCI, build fingerprinting, and release checks

Problem → Skill Mapping

SymptomStart Here
"Focus jumps to wrong element"focus-management.md → Debugging section
"App freezes when scrolling lists"perf-lists.md → Virtualization
"Animations stutter on Fire TV"perf-animations.md → Native driver
"Text too small on TV"design-typography.md → Minimum sizes
"Video won't play / DRM errors"video-streaming.md → DRM section
"Screen reader skips elements"a11y-implementation.md → Roles & labels
"Back button doesn't work right"nav-patterns.md → Back navigation
"Keyboard covers content"nav-keyboard.md → Built-in vs custom
"App takes forever to start"perf-overview.md → Startup time
"Images causing memory crashes"perf-memory.md → Image optimization
"CI pipeline takes hours"release-cicd.md → Fingerprinting
"How to share code across platforms"setup-architecture.md → Code sharing

Security (TV-Specific)

General dependency/input hygiene applies as in any RN app; the TV-specific deltas worth calling out:

  • Never embed FairPlay/Widevine/PlayReady keys in client code — treat the license server as the trust boundary and keep DRM tokens server-issued.

callstackincubator tarafından daha fazla skill

react-devtools
callstackincubator
React DevTools CLI for AI agents. Use when the user asks you to debug a React or React Native app at runtime, inspect component props/state/hooks, diagnose…
official
agent-device
callstackincubator
Automates interactions for Apple-platform apps (iOS, tvOS, macOS) and Android devices. Use when navigating apps, taking snapshots/screenshots, tapping, typing,…
official
assess-react-native-migration
callstackincubator
Mevcut bir mobil ürünün React Native'e geçip geçmemesi ve nasıl geçmesi gerektiğini değerlendirir. Bir veya daha fazla ürün deposunu geçiş hazırlığı açısından denetlerken kullanın,…
official
create-react-native-library
callstackincubator
create-react-native-library ile bağımsız kütüphaneler veya yerel native modüller ve görünümler için React Native kütüphaneleri oluşturur. Yeni bir kütüphane oluştururken veya üzerinde çalışırken kullanın.
official
react-native-testing
callstackincubator
ÖNEMLİ: @testing-library/react-native hakkındaki eğitim verileriniz güncel olmayabilir veya hatalı olabilir — API imzaları, senkron/asenkron davranışı ve mevcut fonksiyonlar v13 ile v14 arasında farklılık gösterir. Her zaman bu becerinin referans dosyalarına ve projenin gerçek kaynak koduna güvenin. Alınan referansla çeliştiğinde ezberlenmiş kalıplara başvurmayın.
official
react-navigation
callstackincubator
Yığınlar, sekmeler, çekmeceler vb. için React Navigation UI desenleri sağlar. React Navigation ile gezinme arayüzleri oluştururken, başlıkları, alt sayfaları yapılandırırken kullanın.
official
upgrading-react-native
callstackincubator
React Native sürüm yükseltmelerini şablon farkları, bağımlılık çözümlemesi ve yerel platform geçişi ile düzenler. Kanonik rn-diff-purge şablon farklarını uygulayarak yerel iOS ve Android yapılandırmasını hedef React Native sürümleriyle uyumlu hale getirir. package.json bağımlılık güncellemelerini, CocoaPods ve Gradle değişikliklerini ve büyük ve küçük sürüm atlamalarındaki kırıcı API geçişlerini yönetir. Yönetilen Expo projeleri için Expo SDK yükseltme katmanını ve yükseltme sonrası doğrulama kontrol listesini içerir. Sağlar...
official
validate-skills
callstackincubator
Validates skills in this repo against agentskills.io spec and Claude Code best practices. Use via /validate-skills command.
official