1"use strict";(self.webpackChunkrenative_docs=self.webpackChunkrenative_docs||[]).push([[576],{6334:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>l,contentTitle:()=>t,default:()=>h,frontMatter:()=>d,metadata:()=>o,toc:()=>c});var i=r(4848),s=r(8453);const d={id:"firetv",title:"FireTV Platform",sidebar_label:"FireTV",original_id:"firetv"},t=void 0,o={id:"platforms/firetv",title:"FireTV Platform",description:"- Latest Android project",source:"@site/docs/platforms/firetv.md",sourceDirName:"platforms",slug:"/platforms/firetv",permalink:"/docs/platforms/firetv",draft:!1,unlisted:!1,editUrl:"https://github.com/facebook/docusaurus/edit/main/website/docs/platforms/firetv.md",tags:[],version:"current",frontMatter:{id:"firetv",title:"FireTV Platform",sidebar_label:"FireTV",original_id:"firetv"},sidebar:"referencesSidebar",previous:{title:"Firefox TV",permalink:"/docs/platforms/firefoxtv"},next:{title:"iOS",permalink:"/docs/platforms/ios"}},l={},c=[{value:"File Extension Support",id:"file-extension-support",level:2},{value:"Requirements",id:"requirements",level:2},{value:"Project Configuration",id:"project-configuration",level:2},{value:"Run on Simulator",id:"run-on-simulator",level:2},{value:"Run on Device",id:"run-on-device",level:2},{value:"Deploy on Device",id:"deploy-on-device",level:2},{value:"Android X support",id:"android-x-support",level:2},{value:"Hermes support",id:"hermes-support",level:2},{value:"Advanced",id:"advanced",level:2},{value:"Android X support",id:"android-x-support-1",level:2},{value:"Hermes support",id:"hermes-support-1",level:2},{value:"App Config",id:"app-config",level:2}];function a(e){const n={a:"a",code:"code",h2:"h2",hr:"hr",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("table",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("img",{src:"https://img.shields.io/badge/Mac-yes-brightgreen.svg"}),(0,i.jsx)("img",{src:"https://img.shields.io/badge/Windows-yes-brightgreen.svg"}),(0,i.jsx)("img",{src:"https://img.shields.io/badge/Linux-yes-brightgreen.svg"}),(0,i.jsx)("img",{src:"https://img.shields.io/badge/HostMode-n/a-lightgrey.svg"})]})})}),"\n",(0,i.jsx)("img",{className:"platform-image",src:"/img/rnv_firetv.gif",height:"250"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Latest Android project"}),"\n",(0,i.jsx)(n.li,{children:"Kotlin Support"}),"\n",(0,i.jsx)(n.li,{children:"Support for Gradle 4.9"}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"file-extension-support",children:"File Extension Support"}),"\n",(0,i.jsx)(n.p,{children:"Extenstions are defined via engines. Engines with firetv support:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"../engines/engine-rn#extensions",children:"@rnv/engine-rn"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"../engines/engine-rn-tvos#extensions",children:"@rnv/engine-rn-tvos"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"requirements",children:"Requirements"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://developer.android.com/studio/index.html",children:"Android Studio"})," for Android development"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://developer.android.com/sdk/",children:"Android SDK"})," ",(0,i.jsx)(n.code,{children:"23.0.1"})," or newer for Android development"]}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"project-configuration",children:"Project Configuration"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Feature"}),(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"Version"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Gradle"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:(0,i.jsx)(n.code,{children:"4.10.1"})})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Android Gradle"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:(0,i.jsx)(n.code,{children:"3.3.1"})})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Kotlin"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:(0,i.jsx)(n.code,{children:"1.3.20"})})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Target SDK"}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:(0,i.jsx)(n.code,{children:"27"})})]})]})]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"run-on-simulator",children:"Run on Simulator"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"rnv run -p firetv\n"})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"run-on-device",children:"Run on Device"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"rnv run -p firetv -d\n"})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"deploy-on-device",children:"Deploy on Device"}),"\n",(0,i.jsxs)(n.p,{children:["This will run production version on your device (not connected to metro bundler)\nYou can configure each ",(0,i.jsx)(n.code,{children:"buildScheme"})," ie ",(0,i.jsx)(n.code,{children:"-s release"})," in your config file ",(0,i.jsx)(n.code,{children:"./appConfigs/<YOUR_APP_CONFIG>/renative.json"})]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"rnv run -p firetv -s release -d\n"})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"android-x-support",children:"Android X support"}),"\n",(0,i.jsx)(n.p,{children:"androidX is enabled by default"}),"\n",(0,i.jsx)(n.p,{children:"make sure you have this piece of script in package.json"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:'"scripts" : {\n "postinstall": "jetify"\n}\n'})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"hermes-support",children:"Hermes support"}),"\n",(0,i.jsxs)(n.p,{children:["Hermes can be enabled or disabled
1with ",(0,i.jsx)(n.code,{children:'"reactNativeEngine": "hermes"'})," prop in ",(0,i.jsx)(n.code,{children:"renative.json:platforms.android.reactNativeEngine"}),"\nor ",(0,i.jsx)(n.code,{children:"renative.json:platforms.android.buildSchemes.[SCHEME].reactNativeEngine"})]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"advanced",children:"Advanced"}),"\n",(0,i.jsx)(n.p,{children:"Clean and Re-build platform project"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"rnv run -p firetv -r\n"})}),"\n",(0,i.jsx)(n.p,{children:"Launch specific emulator:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"rnv target launch -p firetv -t Android_TV_720p_API_22\n"})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"android-x-support-1",children:"Android X support"}),"\n",(0,i.jsx)(n.p,{children:"androidX is enabled by default"}),"\n",(0,i.jsx)(n.p,{children:"make sure you have this piece of script in package.json"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:'"scripts" : {\n "postinstall": "jetify"\n}\n'})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"hermes-support-1",children:"Hermes support"}),"\n",(0,i.jsxs)(n.p,{children:["Hermes can be enabled or disabled with ",(0,i.jsx)(n.code,{children:'"reactNativeEngine": "hermes"'})," prop in ",(0,i.jsx)(n.code,{children:"renative.json:platforms.android.reactNativeEngine"}),"\nor ",(0,i.jsx)(n.code,{children:"renative.json:platforms.android.buildSchemes.[SCHEME].reactNativeEngine"})]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"app-config",children:"App Config"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"/docs/api/schemas/rnv.project#android-props",children:"see: Android based config"})})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>t,x:()=>o});var i=r(6540);const s={},d=i.createContext(s);function t(e){const n=i.useContext(d);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:t(e.components),i.createElement(d.Provider,{value:n},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.