A versatile TV app developed in React Native, compatible with Android TV, Fire TV, tvOS, and Web. This sample project showcases best practices for TV app UI design and implementation.
- π± Multi-platform support: Android TV, Fire TV, tvOS, and web
- π¨ Customizable left-side drawer navigation (using Expo Drawer)
- πΌοΈ Grid layout for content selection
- π¦ΈββοΈ Dynamic hero image header that follows the focused card
- π¬ Detailed content screen
- π₯ Video player with react-native-video Thank you @moskalakamil
- π― Efficient focus management with React TV Space Navigation
- π§ Fully customizable screens and components
Before you begin, ensure you have the following installed:
- 
Clone the repository: git clone https://github.com/amazonappdev/react-native-multi-tv-app-sample.git
- 
Navigate to the project directory: cd react-native-multi-tv-app-sample
- 
Install dependencies: npm install --legacy-peer-deps
- 
Prebuild the native project optimized for TV: export EXPO_TV=1; npx expo prebuild
- Ensure you have an Android TV emulator set up or a physical device connected.
- Run npx expo run:android --device <Your Device or Emulator>to build and install the app.
- Make sure you have Xcode installed with tvOS Simulator.
- Run npx expo run:iosto build and install the app on the tvOS Simulator.
- 
Run npx expo start --webto start the app in your default web browser.
- 
Run npx expo export -p webif you want to build the app for web. After a successful build all the needed files for web will be in thedistdirectory
- Drawer Navigation: Modify ./components/CustomDrawerContent.tsxto customize the left-side menu.
- Content Grid: Adjust ./app/(drawer)/index.tsxto change the layout or style of the content cards.
- Detail Screen: Customize ./app/details.tsxfor different content details display options.
- Video Player: Enhance ./app/player.tsxto customize the Video Player Screen
Stay Tuned for more!
- Expo
- Expo Drawer
- React TV Space Navigation for Focus Management, Remote control mapping and content lists.
If you found a bug or want to suggest a new [feature/use case/sample], please file an issue.
If you have questions, comments, or need help with code, we're here to help:
- Join the Amazon Developer community
- on Twitter at @AmazonAppDev
- on Stack Overflow at the amazon-appstore tag
Sign up to stay updated with the developer newsletter.
This project is licensed under the MIT-0 License.
Happy coding! π We hope this sample helps you create amazing TV experiences across multiple platforms!
