How it all started…
I once worked at an agency that took on an Android TV project.
At the time, it seemed like a fairly reasonable task. We already had a solid Android starter. The assumption was that we could reuse most of it, rely on Leanback for the TV specifics, and let design adjust the user experience as the product evolved.
That assumption turned out to be wrong.
Within the first few weeks, the project started to feel unstable in a way that was hard to explain at first. We would fix one issue, ship a build, and then immediately discover new problems that made the app feel broken again.
Every week brought a different kind of failure. Focus would get lost and menus would open seemingly at random. Text that looked fine in mockups was unreadable from the couch. Screens were overloaded with text and interactive elements. Startup and loading times felt unacceptably slow.
At first, it was tempting to treat these as unrelated bugs. Each one looked fixable in isolation.
They were not isolated at all.
They were all symptoms of the same underlying mistake. We were building a TV app while thinking like mobile developers.
A TV app is not a mobile app on a larger screen. The way users interact with it is different. The environment it lives in is different. The hardware is different. Even the development workflow has different failure modes.
... continue reading