The situation
Endeavor Streaming streams live sport on more than fifteen platforms, with customers that include UFC Fight Pass, WNBA League Pass and NWSL. On Apple TV and Android TV, people select and open items with a remote control, not by touch.
What made it hard?
Playback had to stay stable on the TV apps during live 4K streams of over two hours. On a remote-controlled interface it always had to be clear which item the viewer had selected.
What was I responsible for?
- I built the remote-control selection and navigation for Apple TV (tvOS) and Android TV.
- For long 4K streams, I worked around the limits of the devices' built-in video players.
- We built the mobile, web and TV versions in a single Nx codebase.
Key decisions
Alternative
The original link between the JavaScript code and the native parts
Choice
A pilot of the new architecture (Fabric/JSI) on complex animation paths
Consequence
About 30% less UI-thread blocking in the animations I measured.
Alternative
The devices' built-in video players
Choice
I worked around their limits for long 4K broadcasts
Consequence
Stable playback on the TV apps through live 4K sessions of more than two hours.
Results
- The platform's peak traffic exceeded 500,000 concurrent viewers.
- In the animations I measured, the interface thread was blocked about 30% less.
When this matters to you
- If your software handles video or live data, or runs on several kinds of device, I start from its performance at the design stage.