The Android TV *home screen* displays recommended content using *channels* and
*programs*. Channels are displayed as individual rows on the home screen, with
cards that display all of the available programs for that channel.

Your app should have at least one channel. The first channel your
app creates becomes its [default channel](https://developer.android.com/training/tv/discovery/recommendations-channel#default-channel),
and Android TV displays that channel automatically on the home screen. Your app
can offer other channels, but the user must select and approve those channels
before they are added to the home screen.

If your app features TV shows, movies, or other video content, we recommend that
you support [video previews](https://developer.android.com/training/tv/discovery/preview-videos) and
integrate with the [Watch Next channel](https://developer.android.com/training/tv/discovery/recommendations-channel#watch-next).
The Watch Next channel is controlled by the Android system. Your app can add
user-related programs to this channel, such as programs that the user marked as
interesting, stopped watching in the middle, or that are related to the content
the user is watching (like the next episode in a series or next season of a
show).

## Ensure compatibility

The home screen displays recommendations two different ways depending on the
version of Android:

- In Android 8.0 (API level 26) and later, apps can show recommendations in one or more channels that appear on separate rows. One channel (the default channel) always appears. The user can discover and add the other channels to their home screen. Learn how to create [recommendation channels](https://developer.android.com/training/tv/discovery/recommendations-channel) on the home screen.
- Before Android 8.0, Android TV shows all recommendations in a single recommendations row that always appears on the screen. Learn how to create the [recommendation row](https://developer.android.com/training/tv/discovery/recommendations-row) on the home screen.

To be able to show recommendations on all versions of Android TV, your app
should implement both recommendation APIs. Test the current system API level and
use the appropriate API to build the recommendation row or channels.  

### Kotlin

```kotlin
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
  // Use the home screen recommendation channels API
} else {
  // Use the recommendations row API
}
```

### Java

```java
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
  // Use the home screen recommendation channels API
} else {
  // Use the recommendations row API
}
```

If your app was compiled using API level 25 or earlier, it can still run on
Android TV in level 26. The old recommendations behavior is forward-compatible,
but constrained:

- The recommendations row is automatically converted and appears as a new channel on the home screen.
- The programs on the converted channel respond to updates from your [recommendation service](https://developer.android.com/training/tv/discovery/recommendations-row#service), but the user cannot use the TV's UI to manipulate the programs on the channel (add/remove programs, copy programs to the Watch Next channel).
- If you update the app to API level 26, the converted channel still appears on TVs running API 26. The TV removes the converted channel from the screen the first time your app displays a channel created with the new API. This happens immediately if the app creates a [default channel](https://developer.android.com/training/tv/discovery/recommendations-channel#the_default_channel), or later when the user selects and adds any other channel created by your app.

| **Note:** This forward-compatible behavior is temporary, it will be removed sometime in the future. To ensure compatibility, the best practice is to implement both APIs, as described above.