TV 앱 체크리스트
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
사용자는 일관되고 논리적이며 예측 가능한 TV 앱 환경을 즐깁니다.
사용자가 UI를 잃어버리거나 '재설정'하여 다시 시작하지 않고도 앱 내에서 그리고 Android TV 전체에서 탐색할 수 있어야 합니다. 사용자는 마법같은 경험을 선사하는 명확하고 다채로우며 기능적인 인터페이스를 즐깁니다. 이러한 생각을 염두에 두면 Android TV에 잘 어울리고 사용자가 기대하는 대로 작동하는 앱을 만들 수 있습니다.
이 체크리스트에서는 앱과 게임 개발의 주요 측면을 다루고 가이드라인을 제공하여 앱에서 가능한 한 최상의 환경을 제공할 수 있도록 합니다. 게임에만 관련된 추가 고려사항은 게임 섹션에서 다룹니다.
Android TV 앱이 Google Play를 통해 배포될 수 있는 기준에 관해서는 TV 앱 품질을 참고하세요.
TV 폼 팩터 지원
이 체크리스트 항목은 게임 및 앱에 적용됩니다.
-
매니페스트의
CATEGORY_LEANBACK_LAUNCHER
필터로 주요 TV 활동을 식별합니다.
-
앱에서 지원하는 각 언어의 홈 화면 배너를 다음과 같은 특성을 갖도록 제공합니다.
- 배너의 크기는 320x180px입니다.
- 배너 리소스는
drawables/xhdpi
디렉터리에 있습니다.
- 배너 이미지에는 앱을 식별하는 현지화된 텍스트가 포함됩니다.
-
앱에서 기기가 대기 모드로 전환되지 않도록 해야 하는지 고려하세요.
이는 미디어 재생 앱에 특히 적합합니다.
-
지원되지 않을 수 있는 하드웨어의 요구사항을 선언하지 마세요.
-
권한이 하드웨어 요구사항을 암시하지 않는지 확인합니다.
사용자 인터페이스 디자인
이 체크리스트 항목은 게임 및 앱에 적용됩니다.
검색 및 콘텐츠 탐색
이 체크리스트 항목은 게임 및 앱에 적용됩니다.
-
Android TV 글로벌 검색창에 앱의 검색결과를 제공합니다.
-
검색을 위한 TV별 데이터 필드를 제공합니다.
-
앱이 세부정보 화면에서 발견된 콘텐츠를 제공하여 사용자가 그 콘텐츠를 즉시 볼 수 있는지 확인합니다.
TV 홈 화면
이 체크리스트 항목은 홈 화면의 레이아웃 및 콘텐츠에 적용됩니다.
채널
- 채널의 콘텐츠를 나타내는 의미 있는 이름을 지정합니다. 앱 이름을 채널 이름으로 사용하지 마세요.
- 사용자와의 상호작용이 없으면 채널 이름을 변경하지 마세요.
- 각 채널에 연결된 아이콘을 포함합니다. 아이콘은 앱의 정확한 아이콘일 필요는 없습니다. 채널의 콘텐츠를 브랜드로 표시한 것일 수 있습니다.
- 각 채널을 고유하게 만들고 관심 목록 행의 기능을 모방해서는 안 됩니다.
예를 들어 사용자가 동영상에서 보다가 멈췄던 부분에서 계속 시청할 수 있는 채널은 채널의 유효한 사용이 아닙니다.
채널의 콘텐츠
- 채널의 각 프로그램은 단일 콘텐츠로 제한합니다. 프로그램에는 동영상 모음이 포함되어서는 안 됩니다.
- 프로모션 메시지나 광고에 프로그램을 사용하지 마세요.
- 각 프로그램에 적절한 설명을 포함하고 메타데이터를 올바르게 매핑합니다. 예를 들어 콘텐츠 등급은 제목이 예상되는 곳에 표시되어서는 안 됩니다.
- 프로그램 콘텐츠를 나타내는 미리보기 이미지를 자르거나 늘이지 마세요. 사용할 수 있는 가로세로 비율 중 하나에 맞아야 합니다.
- 사용자가 프로그램을 선택하는 즉시 재생을 시작합니다.
관심 목록
- 사용자가 어떤 식으로든 상호작용하지 않는 한 콘텐츠를 관심 목록 행에 추가하지 마세요. 예를 들어 사용자가 현재 시청하고 있는 시리즈의 다음 에피소드를 추가할 수는 있지만 사용자가 현재 시리즈를 완료할 때 관련은 됐지만 다른 시리즈를 추가해서는 안 됩니다.
- 관심 목록 콘텐츠를 기존 TV 프로그램, 영화, 이벤트로 제한합니다. 관심 목록 행에 클립을 추가하지 마세요.
재생 앱
이 체크리스트 항목은 미디어 재생을 실행하는 앱에 적용됩니다.
게임
이 체크리스트 항목은 게임에 적용됩니다.
-
게임이 홈 화면의 게임 섹션에 표시되도록 매니페스트에서
isGame
플래그를 설정합니다.
-
게임 컨트롤러 지원이 시작, 선택 또는 메뉴 버튼에 의존하지 않는지 확인합니다. 일부 컨트롤러에는 이러한 버튼이 없습니다.
-
특정 컨트롤러 브랜딩 없이 일반 게임패드 그래픽을 사용하여 게임 버튼 매핑을 표시합니다.
-
이더넷 및 Wi-Fi 연결을 모두 확인합니다.
-
사용자에게 앱을 종료하는 깔끔한 방법을 제공합니다.
Android TV에 배포
Android TV에 배포하는 방법을 알아보려면 Google Play에 TV 앱을 게시하기 위한 자세한 가이드를 참고하세요.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(UTC)
[null,null,["최종 업데이트: 2025-07-27(UTC)"],[],[],null,["# TV apps checklists\n\nUsers enjoy the TV app experience when it is consistent, logical, and predictable.\nThey should be able to navigate within your app and throughout Android TV without getting lost or\nhaving to \"reset\" the UI and start over. Users appreciate clear, colorful, and functional interfaces\nthat make the experience magical. With these ideas in mind, you can create an app that fits nicely\nin Android TV and performs as users expect.\n\n\nThese checklists cover the main aspects of development for both apps and games\nto help ensure that your app provides the best possible experience. Additional considerations\nfor games only are covered in the [Games](#games) section.\n\n\nFor the criteria that qualify an Android TV app to be distributed through Google Play, see\n[TV app quality](/docs/quality-guidelines/tv-app-quality).\n\nTV form factor support\n----------------------\n\nThese checklist items apply to games and apps.\n\n- Identify the [main TV activity](/training/tv/get-started/create#tv-activity) with the [CATEGORY_LEANBACK_LAUNCHER](/reference/android/content/Intent#CATEGORY_LEANBACK_LAUNCHER) filter in the manifest.\n- Provide a [home screen banner](/training/tv/get-started/create#banner) for each language supported by your app, with the following characteristics:\n - Banner measures 320x180 px.\n - Banner resource is in the `drawables/xhdpi` directory.\n - Banner image includes localized text to identify the app.\n- Consider whether your app needs to prevent the device from entering [Ambient Mode](/training/tv/playback/ambient-mode). This is particularly relevant for media [playback apps](#playback-apps).\n- Don't [declare a requirement](/training/tv/get-started/hardware#declare-hardware-requirements) for hardware that might be unsupported.\n- Make sure your [permissions](/training/tv/get-started/hardware#hardware-permissions) don't imply hardware requirements.\n\nUser interface design\n---------------------\n\nThese checklist items apply to games and apps.\n\n- Specify activities with landscape orientation by setting `android:`[screenOrientation](/guide/topics/manifest/activity-element#screen)`=\"landscape\"`.\n- Provide appropriate [layout resources](/training/tv/playback/leanback/layouts#structure) for landscape mode.\n- Make sure that [text and controls](/training/tv/playback/leanback/layouts#visibility) are large enough to be visible from a distance.\n- Provide [high-resolution bitmaps and icons](/training/tv/playback/leanback/layouts#density-resources) for HDTV screens.\n- Make sure your icons and logo conform to Android TV specifications.\n- Allow for [overscan](/training/tv/playback/leanback/layouts#overscan) in your layout.\n- When actively playing user-initiated media playback, prevent the device from entering [Ambient Mode](/training/tv/playback/ambient-mode).\n- Make sure every UI element works with both D-pad and game controllers. See [TV navigation](/training/tv/get-started/navigation) and [Handle TV hardware](/training/tv/get-started/hardware#controllers).\n- Change the [background image](/training/tv/playback/leanback/browse#background) as users browse through content.\n- Customize the [background color](/training/tv/playback/leanback/card) to match your branding in Leanback fragments.\n- Make sure that your UI does not require a touchscreen. See [Touchscreen](/training/tv/get-started/hardware#no-touchscreen) and [Declare touchscreen not required](/training/tv/get-started/create#no-touchscreen).\n- Follow the [guidelines for effective advertising](/training/tv/playback/leanback/layouts#advertising).\n- To guide the user through a series of decisions, use the Leanback library's [guided step API](/training/tv/playback/leanback/guided-step).\n\nSearch and content discovery\n----------------------------\n\nThese checklist items apply to games and apps.\n\n- Provide [search results](/training/tv/discovery/searchable#provide) from your app in the Android TV global search box.\n- Provide TV-specific [data fields](/training/tv/discovery/searchable#columns) for search.\n- Make sure your app presents discovered content in a [details screen](/training/tv/discovery/searchable#details) that lets the user start watching the content immediately.\n\nTV home screen\n--------------\n\n\nThese checklist items apply to the layout and content of the [home screen](/training/tv/discovery/recommendations-channel).\n\n### Channels\n\n- Provide a meaningful name that represents the channel's content. Don't use your app's name as a channel name.\n- Don't change the channel name unless there is some interaction with the user.\n- Include an associated icon for each channel. The icon doesn't need to be your app's exact icon; it can be a branded representation of the content in the channel.\n- Make each channel unique, and don't mimic the functionality of the Play Next row. For example, letting users continue watching where they left off in a video is not a valid use for a channel.\n\n### Content in channels\n\n- Limit each program in a channel to a single piece of content. A program must not contain a collection of videos.\n- Don't use programs for promotional messages or ads.\n- Include a suitable description for each program, and map its metadata correctly. For example, the content rating must not appear where the title is expected.\n- Don't crop or stretch preview images representing program content. They must fit one of the available [aspect ratios](/training/tv/discovery/preview-videos).\n- Start playing a program as soon as the user selects it.\n\n### Play Next\n\n- Don't add content to the Play Next row unless the user has been interacting with it some way. For example, you can add the next episode in a series that the user is currently watching, but don't add a related but different series when the user completes the current series.\n- Limit Play Next content to traditional TV shows, movies, or events. Don't add clips to the Play Next row.\n\nPlayback apps\n-------------\n\nThese checklist items apply to apps that perform media playback.\n\n- [Register a media session](/guide/topics/media-apps/working-with-a-media-session) to inform the platform of media playback state and to let playback controls be delegated to the app.\n- Set the [`FLAG_KEEP_SCREEN_ON`](/reference/android/view/WindowManager.LayoutParams#FLAG_KEEP_SCREEN_ON) flag while video is playing on the screen to [prevent the\n device from entering standby or Ambient Mode during playback](/training/tv/playback/ambient-mode#preventing-ambient-mode).\n- Validate that media commands accurately expose metadata and control playback using [Media Controller Test](https://github.com/googlesamples/android-media-controller) and the [Media Session\n Validator](https://developers.google.com/cast/docs/android_tv_receiver/mediasession_validator).\n- Comply with the [Ambient mode-related quality\n guidelines.](/docs/quality-guidelines/tv-app-quality#ambient-mode) Ambient Mode keeps users quietly entertained between watch sessions and prevents screen burn in.\n- Profile your app's memory and make sure to check [`ActivityManager.isLowRamDevice()`](/reference/android/app/ActivityManager#isLowRamDevice()) for discovering low-RAM devices. For those devices, you must follow the requirements in the [Optimize memory usage guidelines](/training/tv/playback/memory).\n\nGames\n-----\n\nThese checklist items apply to games.\n\n- Set the `isGame` flag in the manifest so that your game appears in the games section of the [home screen](/training/tv/games#Launcher).\n- Make sure [game controller\n support](/training/tv/games#control) doesn't depend on the Start, Select, or Menu buttons. Not all controllers have these buttons.\n- Use a generic gamepad graphic, without specific controller branding, to show [game button mappings](/training/tv/games#control).\n- Check for both ethernet and Wi-Fi [connectivity](/training/basics/network-ops/reading-network-state).\n- Provide users with a clean way to [exit](/training/tv/games#exit) your app.\n\nDistribute to Android TV\n------------------------\n\n\nTo learn how to distribute to Android TV, see the\n[detailed guide for publishing TV apps on Google\nPlay](/training/tv/publishing/distribute)."]]