{"id":18456386,"url":"https://github.com/nicosnicolaou16/samplefluttertvapp","last_synced_at":"2025-04-08T04:34:48.292Z","repository":{"id":206588001,"uuid":"717202212","full_name":"NicosNicolaou16/SampleFlutterTVApp","owner":"NicosNicolaou16","description":"This is a sample project that supports the Android TV OS app. It uses the BLoC architecture pattern, along with Dio for network management and Drift for database handling.","archived":false,"fork":false,"pushed_at":"2025-01-10T17:43:30.000Z","size":3614,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-23T06:41:22.764Z","etag":null,"topics":["android-tv","bloc-pattern","dio-network-manager","drift-database","flutter-tv"],"latest_commit_sha":null,"homepage":"https://medium.com/@nicosnicolaou/android-tv-application-jetpack-compose-and-flutter-f4decfa765c6","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NicosNicolaou16.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-10T19:50:21.000Z","updated_at":"2025-01-10T17:43:33.000Z","dependencies_parsed_at":"2023-12-01T20:31:54.380Z","dependency_job_id":"9145ea81-48be-422c-91b9-9214c619c06e","html_url":"https://github.com/NicosNicolaou16/SampleFlutterTVApp","commit_stats":null,"previous_names":["nicosnicolaou16/samplefluttertvapp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicosNicolaou16%2FSampleFlutterTVApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicosNicolaou16%2FSampleFlutterTVApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicosNicolaou16%2FSampleFlutterTVApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NicosNicolaou16%2FSampleFlutterTVApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NicosNicolaou16","download_url":"https://codeload.github.com/NicosNicolaou16/SampleFlutterTVApp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247779796,"owners_count":20994569,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android-tv","bloc-pattern","dio-network-manager","drift-database","flutter-tv"],"created_at":"2024-11-06T08:11:22.191Z","updated_at":"2025-04-08T04:34:48.275Z","avatar_url":"https://github.com/NicosNicolaou16.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sample Flutter TV App\n\nThis is a sample project that supports the Android TV OS app. It uses the BLoC architecture pattern,\nalong with Dio for network management and Drift for database handling.\n\n\u003e [!IMPORTANT]\n\u003e NOTE: EXAMPLE FOR ANDROID ONLY. \u003cbr /\u003e\n\n\u003ca title=\"simulator_image\"\u003e\u003cimg src=\"Screenshot_20231119_183026.png\" height=\"300\" width=\"500\"\u003e\u003c/a\u003e\n\n# The Project Contain the following technologies and libraries\n\n[Android TV OS](https://developer.android.com/tv) is a version of Android designed for smart TVs,\nproviding an optimized interface for streaming and apps. \u003cbr /\u003e\n[Bloc Patterns using single state](https://pub.dev/packages/flutter_bloc) along with repositories\nand services, separates business logic, data access, and UI by using streams to handle state and\nmanage data flow. ([Bloc Pattern Documentation](https://bloclibrary.dev/getting-started/)) \u003cbr /\u003e\n[Dio Network Manager](https://pub.dev/packages/dio) is responsible for making requests and\nretrieving data from the remote server. \u003cbr /\u003e\nDrift Database (SQL) \u003cbr /\u003e\n[Drift Database](https://drift.simonbinder.eu/docs/getting-started/) is responsible for saving the\nretrieved data from the remote server, querying data from the local database, and supporting offline\nfunctionality. ([Drift Database Documentation](https://pub.dev/packages/drift)) \u003cbr /\u003e\n[Cached Network Image](https://pub.dev/packages/cached_network_image) is a package that it is\nresponsible for loading the images and supports offline functionality.  \u003cbr /\u003e\n\n# Setup\n\n## Setup in Manifest\n\n```xml\n\n\u003cmanifest\u003e\n\n    \u003cuses-feature android:name=\"android.software.leanback\" android:required=\"false\" /\u003e\n\n    \u003cuses-feature android:name=\"android.hardware.touchscreen\" android:required=\"false\" /\u003e\n\n    \u003capplication android:banner=\"@mipmap/ic_launcher\"\u003e\n        \u003c!--other code here--\u003e\n        \u003cactivity\u003e\n            \u003c!--other code here--\u003e\n            \u003cintent-filter\u003e\n                \u003caction android:name=\"android.intent.action.MAIN\" /\u003e\n\n                \u003ccategory android:name=\"android.intent.category.LAUNCHER\" /\u003e\n                \u003ccategory android:name=\"android.intent.category.LEANBACK_LAUNCHER\" /\u003e\n            \u003c/intent-filter\u003e\n        \u003c/activity\u003e\n        \u003c!--other code here--\u003e\n    \u003c/application\u003e\n\u003c/manifest\u003e\n```\n\n\u003e [!IMPORTANT]  \n\u003e 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: \u003cbr /\u003e\n\n\u003e [!IMPORTANT]\n\u003e Similar project with (Kotlin Language) :point_right: [SampleAndroidTvApp](https://github.com/NicosNicolaou16/SampleAndroidTvApp) :point_left: \u003cbr /\u003e\n\n## Versioning\n\nFlutter SDK version: 3.27.1 \u003cbr /\u003e\nDart Version: 3.6.0 \u003cbr /\u003e\n\n# Feeds/Urls/End Point (parsing some data from response)\n\n## (Links References for Ends Points)\n\nhttps://github.com/r-spacex/SpaceX-API (GitHub) \u003cbr /\u003e\nhttps://docs.spacexdata.com/?version=latest (Postman) \u003cbr /\u003e\n\n# References\n\nhttps://mobikul.com/tv-app-using-flutter/ \u003cbr /\u003e\nhttps://stackoverflow.com/questions/69607355/how-to-create-stack-vertical-listview-and-horizontal-listview-in-flutter-draggab \u003cbr /\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicosnicolaou16%2Fsamplefluttertvapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnicosnicolaou16%2Fsamplefluttertvapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicosnicolaou16%2Fsamplefluttertvapp/lists"}