Do you need a TV lab for Smart TV development?
Thinking of diving head first into Smart TV development as your New Years’ resolution? One of the first things that you’ll quickly run into is having to test your application to make sure it works everywhere. But do you actually need TVs for that? Let’s take a look!
Different TV brands
Starting off, it’s good to understand just how many different brands of TVs are out there. Because what you might not realise is that Smart (and Connected) TV development isn’t like mobile or web development at all. Sure, there are similarities, but the biggest difference is with the sheer amount of TV platforms out there. While for web you would typically target Safari, Chrome and Firefox, there are about 20 different TV platforms to develop for. Samsung has its own operating system called Tizen, LG has WebOS, Philips is using a mix of Titan OS, Whale OS and Android TV, then there’s Hisense with VIDAA, Vizio has its own thing called Smartcast… You get the picture, there is a lot to cover. If you want a decent overview of the different platforms to target, I can refer you to my ‘State of Smart and Connected TV’ blog that covers most of the platforms you’ll come across in your TV development journey:
New year, new TVs
Now that we’ve established a base with the different types of operating systems, let’s go a layer deeper. Every year you see new TVs being released, right? In fact, you’ll have seen many of those announced at CES a couple of weeks ago. Regardless, new year means new television models, means new versions of operating systems. Yep, new models actually get a completely new version of the operating system they run.
Taking a look at Samsung Tizen, which was introduced in 2015, we’re talking about 10 years of new models being released in the market. And wouldn’t you know it, each new model has a different version of Tizen. All with its own browser version, API support, and of course also different hardware powering it all. Let’s have a look at the website of Samsung, specifically their information about the browser version used:
Okay, that paints a pretty clear picture. Different web engine versions, the thing you will mainly interact with through your web-based Smart TV app. It means you’ll have to test your application across all those different browser versions to spot if it’s all working as expected. Because, yes, TVs from the same manufacturer also have subtle differences.
What about hardware
We’ve just covered different years and different OS versions having different browser implementations and APIs. However, we’ve only just started taking apart this onion, because yes, there’s more! Think about when you’re heading into a hardware store to buy a new TV. First you’ll see those shiny OLED or QD-OLED models, right? The big fancy ones, which do also come with a hefty price tag. Only when you get to the back of the store, you’ll see the smaller models, maybe with a simple LED screen, with an equally smaller price tag. And it’s not just the screen that’s different, there is more.
A television is of course just a simple computer with a big screen. But all the bits and bobs cost something too, a motherboard, CPU, anything you need to run a computer will be in there. And when you get to the smaller, what we often call ‘low end’ models, you’ll see that those hardware differences start having an impact. The CPU or GPU might not be as powerful as in the big OLED models, or there might not be as much RAM available. You get the picture, right?
All of those hardware differences have impact on how users in the end perceive your application. Suddenly your user interface might not behave as smooth on one device as it does on the other. Let alone the fact that both the application and video might not start as quickly, or have a lower quality because the hardware cannot properly deal with certain codecs. Not to mention that debugging hardware- and software-specific issues is something you can really only do on real devices. Another point in the bucket for requiring real televisions to test with.
Emulators and simulators
If you’re coming from the mobile or even the web world, you might be used to emulators being available to solve your testing problems. Both iOS and Android have a great set of tools available to run your app in different OS versions via a simulator. Okay, so looking at Android TV and tvOS, that is then a feasible solution. However, not entirely. Yes, your user interface and simple functionality will be testable on different versions. The problem here mainly comes with specific video playback. DRM is often not available in emulators and requires specific hardware implementations, let alone the use of specific hardware decoding, so you will still need real devices to cover your video testing.
In that same spirit, several operating systems have an emulator available. As with the Android TV and tvOS emulators though, they come with similar limitations. Here are some emulators/simulators you might be able to use:
- Samsung Tizen: https://developer.samsung.com/smarttv/develop/getting-started/using-sdk/tv-emulator.html
- LG WebOS: https://webostv.developer.lge.com/develop/tools/simulator-installation
- Android TV: https://developer.android.com/training/tv/get-started/create#run-on-a-virtual-device
- tvOS: https://developer.apple.com/documentation/xcode/interacting-with-your-app-in-the-tvos-simulator
For the keen eyes among us, you might notice that this list is rather small. That is the last reason you will need some form of a TV lab for your Smart TV development. Emulators simply aren’t available for all platforms. Most platforms don’t actually have an emulator available officially, and will point you to getting real devices to test functionality. While there might be some community efforts (e.g. for Roku: https://github.com/lvcabral/brs-desktop) to try and close that gap, a lot of the TV platforms simply don’t have a reliable way to both test and debug applications with other than real devices.
You might say, “But what about a tool like BrowserStack or SauceLabs to simulate the browser?”. And you’d be right in using some of that to your advantage. Getting access to different browser versions that way will be great in testing some of your user interface and styling, as most of the browser versions and web engine implementations will be similar or even exactly the same. But then getting back to our hardware discussion again, for some of the key points you simply cannot rely on emulation and will still need a real device. Sadly there is no way around that.
Do you need a TV lab for Smart TV development?
Getting back to our original question, if you in fact need a TV lab, I would say the answer is: yes. But it’s a nuanced ‘yes’. You can rely on emulators and even just your regular webbrowser for a lot of your testing. Standard styling, the user interface and some part of the user experience will behave exactly the same on real devices compared to emulators. However, when it comes to the specifics of video playback and the connection with real TV hardware, you’ll still need access to those real devices. In a similar fashion, you’ll often end up having to debug device-specific problems, which as the word suggests, require access to the device.
Hoping this hasn’t scared you off too much! I can admit starting out your TV development journey can be a bit daunting at first. Take it from me though, it’s great fun once you get into it! Do let me know if you have any other questions, you can reach me here on Medium or via my LinkedIn: https://www.linkedin.com/in/matthijs-langendijk/. Best of luck!
PS. interested in what our lab looks like? Here is a picture!


