01 — Context
An operator offers a premium on-demand video channel on its Android TV set-top boxes, with purchases, subscriptions and parental controls. The first version was built cross-platform and is being rebuilt natively.
02 — Challenge
TV apps need remote-control (D-pad) navigation, fast loading on modest hardware and secure device-based sign-in. Purchases and adult-content controls had to be protected by PINs.
03 — Approach
A backend editors can arrange
A Go backend in vertical slices (auth by one-time code, content, banners and carousels, recommendations, search, purchases, subscriptions, orders, metrics), with a page-composition system so editors can arrange home-screen components.
Sign-in without a keyboard
Device identity comes from the box's hardware identifiers, so viewers sign in without typing passwords on a remote.
From cross-platform to native
The first client was cross-platform with custom native modules for focus-centred scrolling and device identity. It is now being rebuilt in native Kotlin with TV-specific UI components and a native media player.
A planned migration
A written migration plan includes a parity matrix and a full API contract document.
04 — Outcome
The service runs on the operator's set-top boxes, and the native rebuild was judged feasible and low-risk on the platform side.

