Android TV and Fire TV together

Android TV vs Fire TV: what changes for one app

Teams reaching for both Android TV and Fire TV usually ask the same question first: how much of this is genuinely one app. From shipping the same products to both, my answer is most of it, with a few places where the platforms actually diverge.

What stays the same

Fire OS is Amazon's own build of the operating system, and Amazon's developer documentation describes it as built on a fork of the Android Open Source Project, so most Android code runs on it unchanged. Google makes a similar point: a TV app uses the same structure as a phone or tablet app. The UI layer, the playback stack and the business logic you already have are a starting point on both, not a rewrite.

What changes: platform services

The gap opens at the services layer. Amazon's own guidance is direct: most apps that work on Android also work on Fire TV, and the only difference it names is services: Fire TV apps must use Amazon's services instead of Google's. I isolate that layer behind an interface so the rest of the app does not care which platform it runs on.

What changes: distribution

Android TV and Google TV apps go through Google Play, which has its own TV rules: Google's documentation is explicit that an app must declare it does not require a touchscreen and include a leanback launcher entry, or it will not appear in Google Play on TV devices. Fire TV apps go through the Amazon Appstore instead, where Amazon states a submitted app has to pass Amazon's own tests before it publishes. Two stores, two review paths, two listings to keep current.

What to test: devices and input

Fire TV devices are Amazon's own hardware, and Amazon's device documentation lists models running Fire OS 6 through Fire OS 8, so a Fire TV build gets tested across those versions. The input is the same on both platforms: Google's TV guidance says TV apps must always support a D-pad remote control, because TVs have no touchscreen.

How I set up one codebase for both

At FreeCast, FreeCast Watch shipped on both Google Play and the Amazon Appstore. Claro TV+ was a greenfield app built for Android TV and Fire OS together, with a Kotlin Multiplatform data layer that the webOS and Tizen clients shared too. The pattern I use: keep the Google-specific and Amazon-specific pieces behind their own module, build the UI and playback layer once, and let that module be the only part that knows which store it ships to.

Questions teams ask before shipping to both

Can one codebase really target both Android TV and Fire TV?
Yes. FreeCast Watch shipped on both Google Play and the Amazon Appstore, and Claro TV+ was built for Android TV and Fire OS together.
What is the biggest platform difference to plan for?
Services. Amazon's own documentation says Fire TV apps must use Amazon's services instead of Google's, so every feature built on Google services needs its own implementation behind a shared interface.
Do Google Play and the Amazon Appstore review apps the same way?
No. Google Play has its own Android TV rules around touchscreen declarations and the leanback launcher, and Amazon states that every submitted app must pass Amazon's own tests before it publishes.
Is Fire OS really Android underneath?
According to Amazon's own developer documentation, yes: Fire OS is built as a fork of the Android Open Source Project, which is why most existing Android code carries over.

Talk about a cross-platform build

Get in touch about your app.

Reach me on LinkedIn, or read the full role history in my CV.