A modern test implementation for Android TV OS using Jetpack Compose. This project demonstrates how to handle leanback navigation, remote API integration, and local data persistence.
Important
Check out the full setup guide here:
👉 Android TV Application Setup (Compose & Flutter) - Medium 👈
Important
Similar project (Dart/Flutter version):
👉 SampleFlutterTVApp 👈
- Android TV OS: Optimized interface specifically for smart TVs and streaming devices.
- Jetpack Compose for TV: Modern toolkit for building native TV UIs with focus-aware components.
- Hilt DI: Dependency injection for clean, testable architecture.
- Room Database: Local caching and offline support.
- Retrofit: Type-safe HTTP client for fetching SpaceX API data.
- Kotlin Coroutines: Asynchronous task management.
- MVVM Architecture: Separation of concerns using Repositories and ViewModels.
- KSP: Efficient annotation processing for faster build times.
To support Android TV, you must declare that a touchscreen is not required and specify the Leanback launcher.
<manifest>
<uses-feature android:name="android.software.leanback" android:required="false" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
<application android:banner="@mipmap/ic_launcher">
<!--other code here-->
<activity>
<!--other code here-->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
</activity>
<!--other code here-->
</application>
</manifest>- Target SDK: 36
- Minimum SDK: 29
- Kotlin Version: 2.3.20
- Gradle Version: 9.1.0
This project parses data from the following endpoints:
- Source: SpaceX-API (GitHub)
- Documentation: Postman Docs
If you find this project useful, please give it a star! View Stargazers on GitHub
This project is a test implementation. Feedback, bug reports, and feature requests are welcome! Please feel free to open an issue or submit a pull request.
