{"id":227059,"date":"2024-06-01T17:09:26","date_gmt":"2024-06-01T17:09:26","guid":{"rendered":"https:\/\/michigandigitalnews.com\/index.php\/2024\/06\/01\/everything-you-need-to-know-about-google-tv-and-android-tv-os\/"},"modified":"2025-06-25T17:18:09","modified_gmt":"2025-06-25T17:18:09","slug":"everything-you-need-to-know-about-google-tv-and-android-tv-os","status":"publish","type":"post","link":"https:\/\/michigandigitalnews.com\/index.php\/2024\/06\/01\/everything-you-need-to-know-about-google-tv-and-android-tv-os\/","title":{"rendered":"Everything you need to know about Google TV and Android TV OS"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<p>\nOver the past year, we\u2019ve seen significant growth of Android TV OS, reaching 220 million monthly active devices with a 47% year-over-year increase. This incredible engagement would not be possible without our dedicated developer community. A massive thank you for your contributions.\n<\/p>\n<p>We\u2019re bringing Android 14 to TV! The next generation of Android provides improvements in performance, sustainability, accessibility, and multitasking to help you build engaging apps for TVs.\n<\/p>\n<div id=\"\">\n<div style=\"background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;\">\n<pre style=\"line-height: 125%; margin: 0px;\"><span style=\"font-family: courier;\">hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE)<\/span><\/pre>\n<\/div>\n<p><\/p>\n<div class=\"separator\" style=\"clear: both;\"><a href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhiWgdcT9a2f68V5VTUzFcu0ndIWSCCT3swQ5DST-Byaq5VVovpd1M1FWAIQd8Kly1NiV0vX22pdnxsF1ULWig_t4Bau9W6A8BrRZ5K056MD1S6610M1jwcOTz4ULEGPoxtdTeHpXoz22URADmsHosCzvgerCWLyIue7IQi9cTUH0MOuYX_0xZ-V-jYMk8\/s1600\/image4.png\" style=\"display: block; padding: 1em 0px; text-align: center;\"><img fetchpriority=\"high\" decoding=\"async\" alt=\"\" border=\"0\" data-original-height=\"689\" data-original-width=\"1560\" height=\"283\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhiWgdcT9a2f68V5VTUzFcu0ndIWSCCT3swQ5DST-Byaq5VVovpd1M1FWAIQd8Kly1NiV0vX22pdnxsF1ULWig_t4Bau9W6A8BrRZ5K056MD1S6610M1jwcOTz4ULEGPoxtdTeHpXoz22URADmsHosCzvgerCWLyIue7IQi9cTUH0MOuYX_0xZ-V-jYMk8\/w640-h283\/image4.png\" width=\"640\"\/><\/a><\/div>\n<p>\nFor additional details, consult the updated <a href=\"https:\/\/developer.android.com\/docs\/quality-guidelines\/tv-app-quality\" target=\"_blank\" rel=\"noopener\">Android TV app quality guidelines<\/a> and the <a href=\"https:\/\/developer.android.com\/tv\/release\/14\" target=\"_blank\" rel=\"noopener\">Android 14 for TV release notes<\/a>.<\/p>\n<h3>Compose for TV<\/h3>\n<div class=\"separator\" style=\"clear: both;\"><a href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg4JrC0NJhhBlB7i9PvW9JCDVZlIiYSa4OUYdjyd7xKq_RKWO057N2jjbpPbqz4yNUVz0T4eeHWYzk_FnLTnfmz5euhOV0V5PGJ-4bs3XfJOf_E8WhRsHmh3Zu9vvMYJDYkvlsBNQE6NUAiHlA2fyhFn7WqCH-lE1Ut-wEjdq-rGDZobZiYi9VgVfij4Rs\/s1600\/image1.png\" style=\"display: block; padding: 1em 0px; text-align: center;\"><img decoding=\"async\" alt=\"\" border=\"0\" data-original-height=\"434\" data-original-width=\"1102\" height=\"126\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg4JrC0NJhhBlB7i9PvW9JCDVZlIiYSa4OUYdjyd7xKq_RKWO057N2jjbpPbqz4yNUVz0T4eeHWYzk_FnLTnfmz5euhOV0V5PGJ-4bs3XfJOf_E8WhRsHmh3Zu9vvMYJDYkvlsBNQE6NUAiHlA2fyhFn7WqCH-lE1Ut-wEjdq-rGDZobZiYi9VgVfij4Rs\/w320-h126\/image1.png\" width=\"320\"\/><\/a><\/div>\n<p>\nCompose for TV is now available in <a href=\"https:\/\/developer.android.com\/jetpack\/androidx\/releases\/tv\" target=\"_blank\" rel=\"noopener\">1.0.0-beta01<\/a>. We\u2019ve updated the developer tools in Android Studio to include a new project wizard to give you a running start with Compose for TV.\n<\/p>\n<p>Here are just a few ways Compose makes it easier to build apps for TV:<\/p>\n<ul>\n<ul>\n<li><strong>Dedicated components for TV apps.<\/strong> Explore these components in our design guide or in practice by using our new <a href=\"https:\/\/github.com\/android\/tv-samples\/tree\/main\/TvMaterialCatalog\" target=\"_blank\" rel=\"noopener\">TV Material Catalog app<\/a>. Since the previous alpha release, we\u2019ve added lists, navigation, chips, and settings screens.\n<\/li>\n<li><strong>Improved input support and performance.<\/strong> We\u2019ve worked hard to address focus issues and ensure that the UI appears and animates smoothly.\n<\/li>\n<li><strong>Ease of implementation and extensive styling.<\/strong> Add components to your app and customize them with minimal code.\n<\/li>\n<li><strong>Broad form-factor support.<\/strong> Reuse business logic from your phone, tablet, or foldable app to render a TV UI with changes that can be as small as simply adding a <span style=\"color: #0d904f; font-family: courier;\"><a href=\"https:\/\/developer.android.com\/reference\/androidx\/lifecycle\/ViewModel\" target=\"_blank\" rel=\"noopener\">ViewModel<\/a><\/span>.<\/li>\n<\/ul>\n<\/ul>\n<p>\nBeta01 makes two big changes from alpha10:\n<\/p>\n<ul>\n<ul>\n<li>Several components have graduated from experimental.\n<\/li>\n<li>The <span style=\"color: #0d904f; font-family: courier;\">ImmersiveList<\/span> composable has been removed from the androidx-tv-material package.<\/li>\n<\/ul>\n<\/ul>\n<p>\n<span style=\"color: #0d904f; font-family: courier;\"><a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/tv\/material3\/package-summary#Carousel%28kotlin.Int,androidx.compose.ui.Modifier,androidx.tv.material3.CarouselState,kotlin.Long,androidx.compose.animation.ContentTransform,androidx.compose.animation.ContentTransform,kotlin.Function1,kotlin.Function2\" target=\"_blank\" rel=\"noopener\">Carousel<\/a><\/span> and chip components, such as <span style=\"color: #0d904f; font-family: courier;\"><a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/tv\/material3\/package-summary#FilterChip%28kotlin.Boolean,kotlin.Function0,androidx.compose.ui.Modifier,kotlin.Boolean,kotlin.Function0,kotlin.Function0,kotlin.Function0,androidx.tv.material3.SelectableChipShape,androidx.tv.material3.SelectableChipColors,androidx.tv.material3.SelectableChipScale,androidx.tv.material3.SelectableChipBorder,androidx.tv.material3.SelectableChipGlow,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function0\" target=\"_blank\" rel=\"noopener\">FilterChip<\/a><\/span>, are still experimental, so you\u2019ll want to keep the <span style=\"color: #0d904f; font-family: courier;\">@ExperimentalTvMaterial3Api<\/span> annotation if you are using these components in your app. For all other components, you can now remove the <span style=\"color: #0d904f; font-family: courier;\">@ExperimentalTvMaterial3Api<\/span> annotation, since these APIs are now available in beta. <\/p>\n<p>\nWe heard your feedback about the variety in the data types that represent content, which made it difficult to design a component in such a way that it would result in less code. If you are using the <span style=\"color: #0d904f; font-family: courier;\">ImmersiveList<\/span> composable from the alpha release, replace it with a custom implementation of an <a href=\"https:\/\/developer.android.com\/design\/ui\/tv\/guides\/components\/immersive-list\" target=\"_blank\" rel=\"noopener\">immersive list<\/a>. While <span style=\"color: #0d904f; font-family: courier;\">ImmersiveList<\/span> is no longer part of Compose for TV, you can create an immersive list with just a few lines of code:<\/p>\n<div style=\"background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;\">\n<pre style=\"line-height: 125%; margin: 0px;\"><span style=\"font-family: courier;\">@Composable\n<span style=\"color: green; font-weight: bold;\">fun<\/span> <span style=\"color: blue;\">SampleImmersiveList<\/span>() {\n    <span style=\"color: green; font-weight: bold;\">val<\/span> selectedMovie = remember { mutableStateOf<movie>(<span style=\"color: green; font-weight: bold;\">null<\/span>) }\n\n\n    <span style=\"color: #408080; font-style: italic;\">\/\/ Container<\/span>\n    Box(\n        modifier = Modifier\n            .fillMaxWidth()\n            .height(<span style=\"color: #666666;\">400.d<\/span>p)\n    ) {\n        <span style=\"color: #408080; font-style: italic;\">\/\/ Background<\/span>\n        Box(\n            modifier = Modifier\n                .fillMaxWidth()\n                .aspectRatio(<span style=\"color: #666666;\">20f<\/span> \/ <span style=\"color: #666666;\">7<\/span>)\n                .background(selectedMovie.background)\n        ) {}\n\n\n        <span style=\"color: #408080; font-style: italic;\">\/\/ Rows<\/span>\n        LazyRow(\n            modifier = Modifier.align(Alignment.BottomEnd),\n            ...\n        ) {\n            items(movies) { movie -&gt;\n                MyMovieCard(\n                    modifier = Modifier\n                        .onFocusChanged {\n                            <span style=\"color: green; font-weight: bold;\">if<\/span> (it.hasFocus) {\n                                selectedMovie.value = movie\n                            }\n                        },\n                    ...\n                ) {}\n            }\n        }\n    }\n}<\/movie><\/span>\n<\/pre>\n<\/div>\n<p>\nA complete snippet is available in the <a href=\"https:\/\/cs.android.com\/androidx\/platform\/frameworks\/support\/+\/androidx-main:tv\/samples\/src\/main\/java\/androidx\/tv\/samples\/ImmersiveListSamples.kt\" target=\"_blank\" rel=\"noopener\">immersive list sample<\/a>.\n<\/p>\n<p>\nAlso consult the comprehensive list of changes in the <a href=\"https:\/\/developer.android.com\/jetpack\/androidx\/releases\/tv?_gl=1*8pwl3b*_up*MQ..*_ga*MTE5MTA0MzcwMy4xNzE1MTkzNTM1*_ga_6HH9YJMN9M*MTcxNTE5MzUzNS4xLjAuMTcxNTE5MzUzNS4wLjAuMA..#tv-material_version_10_2\" target=\"_blank\" rel=\"noopener\">release notes<\/a> to migrate any renamed or moved components.\n<\/p>\n<h3>Migrate from the Leanback UI toolkit<\/h3>\n<p>We recommend following <a href=\"https:\/\/developer.android.com\/training\/tv\/playback\/leanback\/migrate-to-compose\" target=\"_blank\" rel=\"noopener\">our step-by-step migration guide<\/a> to switch from Leanback to Compose for Android TV.<\/p>\n<h3>Resources<\/h3>\n<div class=\"separator\" style=\"clear: both;\"><a href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEi2mlHVDuOXICIxn1tWc4DkXlyJi0s-j00t_xC-kY7n-p2h96PpgoYiUMicHODhfYHLIvHYOyXcxp1KaUTwZpUkLzyJ-197mjtaZaSmMangqYn4AA06bWiQxBKCnPSxVFc22ayPl8Mrmk-awQ3gE1zsfXxHsHGUs5UYS0bjQTbKQvicUgNqwUzjLZ8P3CI\/s1600\/image3.png\" style=\"display: block; padding: 1em 0px; text-align: center;\"><img decoding=\"async\" alt=\"\" border=\"0\" data-original-height=\"1072\" data-original-width=\"1105\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEi2mlHVDuOXICIxn1tWc4DkXlyJi0s-j00t_xC-kY7n-p2h96PpgoYiUMicHODhfYHLIvHYOyXcxp1KaUTwZpUkLzyJ-197mjtaZaSmMangqYn4AA06bWiQxBKCnPSxVFc22ayPl8Mrmk-awQ3gE1zsfXxHsHGUs5UYS0bjQTbKQvicUgNqwUzjLZ8P3CI\/s1600\/image3.png\"\/><\/a><\/div>\n<p>\nWhether you\u2019re new to Compose or are in the process of migrating to Compose already, our large collection of resources are here to help you learn best practices for building TV UIs with the modern Android development toolkit, Jetpack Compose:\n<\/p>\n<p>Engage with the active Android <a href=\"https:\/\/stackoverflow.com\/questions\/tagged\/android-jetpack-compose-tv\" target=\"_blank\" rel=\"noopener\">developer community on Stack Overflow<\/a> for any bugs you encounter, or submit the bugs through <a href=\"https:\/\/developer.android.com\/jetpack\/androidx\/releases\/tv#feedback\" target=\"_blank\" rel=\"noopener\">our public bug tracker<\/a>.<\/p>\n<p>Thank you for your continued support of Android TV OS. We can\u2019t wait to see what you\u2019ll do on Google TV with the Android 14 TV OS!<\/p>\n<\/div>\n<p>[ad_2]<br \/>\n<br \/><a href=\"http:\/\/android-developers.googleblog.com\/2024\/05\/android-14-and-compose-on-tv.html\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] Over the past year, we\u2019ve seen significant growth of Android TV OS, reaching 220 million monthly active devices with a 47% year-over-year increase. This<\/p>\n","protected":false},"author":1,"featured_media":227060,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[146],"tags":[],"_links":{"self":[{"href":"https:\/\/michigandigitalnews.com\/index.php\/wp-json\/wp\/v2\/posts\/227059"}],"collection":[{"href":"https:\/\/michigandigitalnews.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/michigandigitalnews.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/michigandigitalnews.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/michigandigitalnews.com\/index.php\/wp-json\/wp\/v2\/comments?post=227059"}],"version-history":[{"count":0,"href":"https:\/\/michigandigitalnews.com\/index.php\/wp-json\/wp\/v2\/posts\/227059\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/michigandigitalnews.com\/index.php\/wp-json\/wp\/v2\/media\/227060"}],"wp:attachment":[{"href":"https:\/\/michigandigitalnews.com\/index.php\/wp-json\/wp\/v2\/media?parent=227059"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/michigandigitalnews.com\/index.php\/wp-json\/wp\/v2\/categories?post=227059"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/michigandigitalnews.com\/index.php\/wp-json\/wp\/v2\/tags?post=227059"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}