Live-viewing apps have some unique design challenges that set them apart from other tvOS apps. As you design your app, focus on the content and creating fun, fluid interactions that encourage immersion in the live-viewing experience.
Highlight Live Content
Above all, your app should elevate and prioritize live content. In every screen, draw people's attention to live content and make sure they can distinguish it from video-on-demand (VOD) content at a glance.
Put live content in the first tab of your app. People come to your app to watch TV, so you want to minimize the interval between starting your app and playing content. When live content is in the first tab, people don't have to tap more than once to start viewing it.
Let people tap once — or not at all — to start playback. For example, you might display a focused "Watch Now" button on top of featured or recently viewed live content. When people tap this button, it immediately disappears and playback begins, replacing your app's UI with a fullscreen, immersive viewing experience. You might also choose to dismiss your app UI after a few seconds of inactivity and automatically start playback, so that people don't even have to tap once.
Make sure live content looks and feels live. People should never have trouble distinguishing live content from VOD content. Although simply playing live content is the best way to make it feel live, you can also help people recognize live content by marking it in some way. For example, you might display other channels in a collection row titled "Live" and give each item a visual indicator — such as a badge, symbol, or sash — that identifies it as live.
Indicate the progress of currently playing live content. People need to know where they'll land when they jump into in-progress live content. You can use a progress bar or other indicator to show people how much content remains.
Give people additional actions and viewing alternatives. In addition to playback, which should always be the primary action, make it easy for people to record, restart, and perform other actions that you support. Display these actions in the same order throughout your app — for example, Watch, Start Over, Record, and Favorite. Also, if the currently playing content is playing again at other times, show this information so that people can schedule their viewing.
Prefer images over text to help people interact with your app. Encourage people to stay immersed in the live-viewing experience by minimizing onscreen text and instead supplying visual ways to browse, navigate, and make choices. Whenever possible, limit the amount of text displayed until people request more information about something. For example, you might let people browse through thumbnails of available content, revealing descriptive information only when they focus on a thumbnail.
Consider using a content footer for browsing channels during playback. A content footer lets people browse without taking them out of the live playback experience. If you decide to use a content footer, you should:
- Give it a subtle treatment, such as a darkening, to keep text legible and help all items remain visually distinct from the content playing behind it.
- Make it easy for people to identify the thumbnail that represents the currently playing content by, for example, badging the thumbnail or tinting its progress bar.
- Match the categories in the content footer to those in your electronic program guide (for related guidance, see Provide a Great EPG Experience).
- Design a simple, predictable way for people to invoke and dismiss the content footer — for example, if swiping up invokes the footer, people would expect swiping down to dismiss it.
Use standard tvOS gestures. In particular, support left and right edge swipes to let people browse by channel. When people rest a finger on the remote's touch surface, the system hints that they can either change channels or scrub. To change channels, people simply begin swiping left or right; in response, the system automatically removes the scrubber hint. To scrub, people click first and then swipe to move the scrubber; when this happens, the system automatically removes the channel-changing hint.
Avoid responding to taps during live video playback. Sometimes people tap without meaning to, so it's best to avoid annoying them by interrupting playback. Prefer letting people swipe or click to perform actions during fullscreen video playback because these gestures tend to be more intentional.
Provide instant visual feedback when people change channels. Immediately showing a feedback screen after a channel change is essential for two reasons. First, people need confirmation that they've arrived at the channel they want. Second, showing a feedback screen gives the streaming content some time to load.
Match audio to the current context. When people start playing live content, they expect the audio to match even if they switch to browsing while the content plays in the background. However, when people navigate away from the live tab in your app, they leave the live-viewing context, so audio should stop.
Provide a Great EPG Experience
Live-viewing apps typically provide an electronic program guide (EPG) that contains information about scheduled programming. Follow these guidelines to give people a great EPG experience that integrates well with your live-viewing app.
Rethink the EPG. For best results, don't just replicate your existing EPG experience; instead, design a streamlined EPG-browsing experience specifically for your tvOS app.
Prominently display current information and make it easy to return to playback. When people first open the EPG, the current program, channel, and time should be easy to spot. After people finish browsing the EPG, a single press on the remote's Menu button should instantly return them to the current channel.
Make browsing the EPG effortless. A typical EPG contains a lot of information, so it's important to help people page, scroll, or jump through it easily. For example, people should be able to scroll as fast or as slow as they want by swiping up or down on the edge of the remote (to learn more, see Swipe).
Consider giving people a shortcut to their favorite content. People tend to interact repeatedly with a small handful of channels, so it can be a good idea to provide a "My Channels" or "Favorites" group that enables quick access to the most frequently watched content.
Group content into familiar categories to help people find it more easily. For example, you might use categories like "Movies," "TV Shows," "Kids," "Sports," and "Popular." If your app includes a content footer, organize content thumbnails using the same categories used in the EPG.
Let people browse the EPG without leaving their current content. For example, you can continue playing content in a picture-in-picture (PiP) mode or in the background while people browse the EPG.
Supporting Cloud DVR
If you support digital video recording in the cloud, follow these guidelines to provide a great recording experience in your live-viewing app.
Let people start and stop recording from the info panel. While live-streaming, people should be able to reveal the info panel to start recording immediately.
Offer a record button for any future program in a view that provides details about the content. Also, give people the option to record just that program or all future episodes.
Help people personalize the recording experience. Let people specify precisely what they want to record, such as only the current episode, only new episodes, or only games that involve specific teams.
Allow playback and other content-specific actions within your cloud DVR area. When people open a view that displays content details in your cloud DVR section, they should be able to play or delete content and, if applicable, adjust recording settings.
Consider offering a control that lets people manage cloud DVR settings. For example, you might let people purge recordings they've already watched or content that's older than a certain number of days. Ideally, help people avoid running out of space by letting them set up automatic storage management, which overwrites the oldest or already viewed content.