https://github.com/nicosnicolaou16/sampleandroidtvapp
The project is a test implementation that uses Jetpack Compose for an Android TV OS app. It includes API requests to fetch a dynamic list, integrates Hilt for Dependency Injection, and utilizes Room Database for local data storage.
https://github.com/nicosnicolaou16/sampleandroidtvapp
android-application android-tv android-tv-app compose-android jetpack-compose mvvm repository-pattern room-database
Last synced: 10 months ago
JSON representation
The project is a test implementation that uses Jetpack Compose for an Android TV OS app. It includes API requests to fetch a dynamic list, integrates Hilt for Dependency Injection, and utilizes Room Database for local data storage.
- Host: GitHub
- URL: https://github.com/nicosnicolaou16/sampleandroidtvapp
- Owner: NicosNicolaou16
- Created: 2023-11-03T08:26:23.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-05T00:22:52.000Z (about 1 year ago)
- Last Synced: 2025-03-23T06:41:22.781Z (11 months ago)
- Topics: android-application, android-tv, android-tv-app, compose-android, jetpack-compose, mvvm, repository-pattern, room-database
- Language: Kotlin
- Homepage: https://medium.com/@nicosnicolaou/android-tv-application-jetpack-compose-and-flutter-f4decfa765c6
- Size: 1.95 MB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Sample Android TV App
The project is a test implementation that uses Jetpack Compose for an Android TV OS app. It includes
API requests to fetch a dynamic list, integrates Hilt for Dependency Injection, and utilizes Room
Database for local data storage.
# The Project Contain the following technologies
[Android TV OS]()https://developer.android.com/tv is a version of Android designed for smart TVs,
providing an optimized interface for streaming and apps.
The programming language is the [Kotlin](https://kotlinlang.org/docs/getting-started.html), it is a
modern, JVM-based programming language that is concise, safe, and interoperable with Java.
[Kotlin Coroutines](https://kotlinlang.org/docs/coroutines-overview.html) is used for asynchronous
tasks.
[Kotlin KTX](https://developer.android.com/kotlin/ktx) is a collection of Kotlin extensions that
offer more concise and expressive code for working with Android APIs and libraries.
The UI is build using [Jetpack Compose](https://developer.android.com/develop/ui/compose).
[Retrofit](https://square.github.io/retrofit/) is responsible for making requests and retrieving
data from the remote server. ([Repository](https://github.com/square/retrofit))
[Hilt Dependencies Injection](https://developer.android.com/training/dependency-injection/hilt-android)
is an Android library that simplifies dependency injection by using annotations to automatically
manage and provide dependencies across components, built on top of
Dagger. ([Documentation](https://dagger.dev/hilt/))
[Room Database](https://developer.android.com/training/data-storage/room) is responsible for saving
the retrieved data from the remote server, querying data from the local database, and supporting
offline functionality.
[MVVM](https://developer.android.com/topic/architecture#recommended-app-arch) with repository is an
architecture where the Repository manages data sources (e.g., network, database), the ViewModel
processes the data for the UI, and the View displays the UI, ensuring a clear separation of
concerns.
[KSP](https://developer.android.com/build/migrate-to-ksp) ("Kotlin Symbol Processing") is a tool for
efficient annotation processing in Kotlin, providing faster code generation and symbol manipulation
compared to KAPT. [Repository](https://github.com/google/ksp)
[R8](https://developer.android.com/build/shrink-code) enabled, is a code shrinker and obfuscator for
Android that optimizes and reduces the size of APKs by removing unused code and resources, while
also obfuscating the remaining code to improve security.
# Setup
## Setup in Manifest
```xml
```
> [!IMPORTANT]
> Check my article for the setup :point_right: [Android TV Application (Setup for Jetpack Compose and Flutter)- Medium](https://medium.com/@nicosnicolaou/android-tv-application-jetpack-compose-and-flutter-f4decfa765c6) :point_left:
> [!IMPORTANT]
> Similar project with (Dart Language) :point_right: [SampleFlutterTVApp](https://github.com/NicosNicolaou16/SampleFlutterTVApp) :point_left:
#Versioning
Target SDK version: 35
Minimum SDK version: 28
Kotlin version: 2.1.0
Gradle version: 8.7.3
# Feeds/Urls/End Point (parsing some data from response)
## (Links References for Ends Points)
https://github.com/r-spacex/SpaceX-API (GitHub)
https://docs.spacexdata.com/?version=latest (Postman)
# References/Tutorials Follow/For Manifest Setup
https://developer.android.com/training/tv/playback/compose
https://developer.android.com/jetpack/compose/touch-input/focus/react-to-focus
https://stackoverflow.com/questions/76281554/android-jetpack-compose-tv-focus-restoring
