What I hate about developing for Smart TV

About 6 years ago I took my first babysteps into the world of SmartTV development, when I joined 24i as an intern. Really only knowing Netflix at the time, I had no idea of this massive and interesting world of development that lies behind the apps we now love to use on a day to day basis. But it’s not all been fun and games. Developing for SmartTV can be very frustrating at times, and there are a lot of things that could be improved for the ecosystem to become more approachable. In this blog I take a look at some of the aspects of my day to day job, things that make it both very frustrating and sometimes interesting at the same time.

Please update

Precisely that is what’s lacking on the side of SmartTVs. As an example, let’s look at Samsung (Tizen) and LG (WebOS). Each year they boast about awesome new models during CES and other conferences. Showing new amazing technology about video playback, HDR, OLED, 4/8K, you name it. Older models on the other hand… well, sadly it doesn’t often happen that they get this new tech. No new video tech, no updates to the browser to support newer development standards. Security updates happen, but not as often, and not as long as you would want them to.

Example: TV that hasn’t been updated for a long time ;)

The reality we live in here, is that televisions degrade very quick, because of the lack of updates. Each year, Samsung and LG launch a new version of their respective operating systems. New year, new version. However, the new version doesn’t actually get pushed to older devices. So you’re not actually getting support for the newer features on televisions that many of your customers have. The result? Your only options are either omit the new functionality all together, or attempt to use it on models it is actually available. And you’ll quickly realise that time flies pretty fast, leaving you with years of devices that you somehow have to maintain. Without being able to use the technology you know exists. A prime example is the new LG app from FuboTV, as announced for LG WebOS. The device years it’s available for? 2018–2021…

A foot note is very needed on this topic. Have you thought about the environmental impact of this? By not providing updates, it means televisions eventually become irrellevant. The earlier updates are stopped, the quicker they degrade. Meaning they need to be replaced much quicker, even though everything about the TV still works fine. It’s just that the soft and firmware running on it, doesn’t get updates anymore. And that’s precicely why a lot of people oppose using SmartTVs, rather opting for dongles offering similar functionality. The TV remains there for the screen, the dongle takes care of the rest. So, dear manufacturers, for the love of everything that’s nice, please update your televisions! People don’t like it in phones and they don’t like it in TVs either. Think of the environment, and update!

The famous XKCD: standards

https://xkcd.com/927/

Web-standards are awesome, if they are implemented correctly. We know exactly what we can expect, the documentation is available, and in most cases we already understand the specific behaviour of the code from having used it for regular websites before. On SmartTVs? Not so much. Yes, standards are implemented, but often only to a certain extend. Manufacturers often choose to support only a part of the standard. Whether it’s omitting certain CSS features, certain JavaScript or other tech-related, it’s all ever so slightly different (and often not so slightly) depending on both the manufacturer, as well as the year the TV was released in.

The effect of this is that you’re fighting a constant battle with your knowledge about development, and whether it’s applicable on the device you’re developing for. Standards have always been the promise for solving this, but that really only works if the standard is actually followed. Combine the lack of updates, with the loose interpretation of standards, and you’re in for an interesting time with a lot of surprises. You definitely need to have multiple TVs to test your functionality on, and enough understanding and debugging possibilities to try and find why things are sometimes not working as expected.

What is going wrong?

Yes, some manufacturers do it better than others. Yes, there are tools out there that you can use for development, and on many occasions they provide you with some good information when you’re debugging some interesting issue. But the moment your bug becomes difficult, you are often very limited. Whether it’s not being able to see all network traffic, not being able to place breakpoints, or not having to access to some of the deeper internals that you need for debugging (e.g. video playback issues); there are many limiting factors that, on other devices, could be and are often a lot better set up.

Another downside of this, is that you often really have to surrender to the tools available out there already. Unless you have an interest in building your own remote debugger, there’s really no other option. You can’t really add any plugins like React or Vue framework-debuggers as you would for regular browsers, because televisions are simply not open to this. It’s a big black box and you’ll just have to deal with the hand that’s given to you.

Not development, but equally annoying

Like Android and Apple, you have app stores on televisions. Samsung has one, LG has one, other manufacturers have one. They are all different, and they all require specific documentation of the application. But that’s not the problem. I’m more than fine providing them with access to the app if it requires credentials, and giving a full complete document with the functionality that the app has. But for the love of, why does testing/submission need to take a MONTH or LONGER before my new app or even update can go live?

This is by far the thing that’s most often overlooked during development of your app. You have to get it live somehow, and the only way of doing so, is submitting it to the various app stores out there. Sadly the manufacturers take unexplainably long, seemingly to test every single feature that’s in your app. And often end up declining the app for really silly reasons, sometimes even because they have the opinion that a feature should work differently. It’s certainly not as easy as it is on Android and Apple, where it can take a day or sometimes even less. I get that quality is important, I really do, that’s what I strive for as well. But there needs to be a balance between testing every single pixel, and making sure the general app flows work as expected.

Silver linings

Next to that, if you like puzzles, this is definitely the industry for you. As you can tell, you don’t always get the right puzzle pieces from the tools that you have available, at least not immediately. So being able to do complex problem solving, slowly getting closer to a solution, can be really fun. Yes, it can certainly get frustrating too, but any development can be frustrating, if you’re not able to solve a problem after a long day of hard work.

Life is slowly getting a bit better, too. The world of SmartTV has actually become a lot better in the recent years. Yes, we’re still dealing with very infrequent updates. Yes, standards are still not fully implemented. But on the other hand, manufacturers are actually getting better at supporting latest standards. For example, being able to use EME/MSE for video playback and DRM, is one of the most important features that has become available on televisions starting around 2017. Sadly not earlier, otherwise development would have been a lot easier if you require DRM, for example. But things are looking up, and who knows, in about 5 years from now we might be able to use all the tech that’s now already available on the evergreen browsers like Firefox, Safari and Chrome.

Balance

So what you really should be looking for is: balance. Both as a developer, and as anyone else in the industry. Development can be hard if you aim to provide your app to as many years of a TV-brand as possible, as you can read. It can be a costly and time consuming process, if you’re starting out new and without any prior knowledge. So seeking that balance between supporting older devices (where you know you can reach plenty of users), and choosing newer technology and televisions, is very important. In both cases however, you’ll make users very happy with your app. And in the end that’s what it’s all about.

--

--

Developer from the Netherlands. Working as a Solution Architect at Triple. www.linkedin.com/in/matthijs-langendijk/

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store