Four things I hate about developing for Smart TV...and a few things that I don’t!
The latest sales and viewing figures from around the world confirm what we at 24i have known for over a decade: watching streaming video on Smart TVs is a game changer and increasingly popular with consumers. Our team of experts and our test lab of big screen devices keep OTT services, broadcasters and Pay TV operators on-screen in living rooms around the world. But getting the user experience right on a Smart TV is a very different story to web development, as 24i’s Matthijs Langendijk explains in his latest blog post:
I’ve been developing apps for SmartTVs since I joined 24i six years ago. Recently, I’ve worked on updated versions of the Samsung and LG apps for Dutch telco KPN’s multi-channel TV service, and the launch of their first app for TVs that run the Android TV operating system. The high of seeing your app used by millions of viewers is pretty cool, but the work that goes into it is not always fun and games. Developing for Smart TVs can be very frustrating at times and there are a lot of things that could be improved to make the ecosystem more approachable.
1. Please update!
Unfortunately, these updates are precisely what’s lacking in the world of Smart TVs. Take, for example, Samsung (Tizen) and LG (WebOS). Together they account for an enormous share of the global Smart TV market. Each January at CES in Las Vegas they boast about awesome new models with amazing technology: video playback, HDR, OLED, 4/8K, etc. In fact, each year I blog about the latest developments. But what about the older models? Surely they get these cool new features too? Nope. Most of the time, they don’t get the new video tech, browser updates or support for newer development standards. Security updates do happen, but even those stop sooner than you’d expect, probably several years before the average user will consider shopping for a new TV.
New Year, New Version
The reality we live with is that televisions degrade very quickly without updates. Each year, companies like Samsung and LG launch a new version of their respective operating systems but if they don’t push it to their older devices already in living rooms around the world, there’s no level playing field for developers. And the average lifespan of a big screen TV is much longer than a mobile phone or laptop - up to ten years, even with the recent surge in sales. So there are a LOT of living rooms out there still featuring TVs that may have been first launched in the market as long ago as 2011.
Time flies pretty fast when you’re developing Smart TV apps and you’ll soon find you’ve got years of different devices you have to maintain somehow. The result is that we either have to develop our apps without the cool new functionality that’s only supported by the latest models (so the apps are compatible with a wider range of devices), or risk annoying a huge group of consumers by creating apps that only work on the newer models of TV. A prime example is the new app from FuboTV, as announced recently for LG WebOS. The device years it’s available for? Just 2018–2021.
An important footnote is needed on this topic. Have you thought about the environmental impact of all this? By not providing updates to older devices, manufacturers ensure that televisions eventually become irrelevant. The earlier you stop updating the firmware and software on a previously released model, the quicker it needs to be replaced in order to support the newest apps, even though everything else about the TV still works fine. It’s good for TV sales, obviously, but terrible for the planet. That’s precisely why many people oppose using Smart TVs and opt instead for dongles that offer similar functionality. The TV remains there for the screen, the dongle takes care of the rest and is easily updated.
So, manufacturers, if you’re reading this, for the love of everything that’s nice (including the planet and my sanity), please update your older televisions!
2. The great thing about Smart TV standards? There are so many of them!
I could have ended the blog right there. Having more updates would already solve some of the massive problems in the Smart TV ecosystem, because recent years have actually shown that certain standards (and their implementations on multiple television brands) have helped to ease some of the other problems with Smart TV app development.
But note the use of the word “some” in that sentence. I can’t put it better than the famous XKCD cartoon about standards:
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 held the promise to solve 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.
3. Debugging Smart TVs should not be this difficult
Speaking of times when things don’t go to plan...good debugging tools are the bread and butter of any developer. Being able to quickly get a grasp of the way your code is being executed, and the warnings and error messages that come with it, is really important. The reality with Smart TVs is sadly a bit different. It’s often not as easy as opening the developer console (a la Chrome and FireFox). Instead you’re working with some remote debugger that has been provided by the manufacturer of the devices you’re developing apps for.
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 access to some of the deeper internals that you need for debugging (e.g. video playback issues); there are many limiting factors that are addressed better on other devices.
Another downside of this issue is that you usually have to surrender to the tools that are already out there. Unless you have an interest in building your own remote debugger, there’s really no other option. You can’t 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.
4. The dreaded Smart TV submission process
Last, but definitely not least, is an issue that only appears once the development is over (or at least you THINK it’s over): submission to app stores. Like Android and Apple, you have app stores on televisions. Samsung has one, LG has one, other manufacturers have them too. Each one is different and requires specific documentation about the application to gain approval and get your app added to the store. 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 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 planning by less experienced app development teams. You have to get the app live and the only way of doing that is submitting to the app stores, but most manufacturers take an inexplicably long time to test every single feature in the app. Worse still, they often end up declining the app for really silly reasons - 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 every day. But there needs to be a balance between testing every single pixel, and making sure the general app flows work as expected.
And now the good stuff about Smart TVs
Obviously, if developing for Smart TVs was all bad then I wouldn’t want to do it all day. There are also a lot of interesting and fun parts about the work we do at 24i bringing video streaming services to the big screen. Working in the media and TV is exciting and getting to create apps used by millions of people is not something I’d want to give up.
I also love puzzles and although you don’t always get the right puzzle pieces straight away using the tools available to you, it can be really fun to dive into some complex problem solving and slowly get closer to a solution. Yes, it can certainly get frustrating too, but any development can be frustrating if you’re still trying to solve a problem after a long day of hard work.
And things are getting better. The world of SmartTV has improved in recent years. Manufacturers are actually getting better at supporting the latest standards. For example, on TVs made since around 2017, we are now able to use EME/MSE for video playback and DRM. That’s a really important thing, even if it’s still a struggle to develop apps with DRM for devices made before then. But maybe within the next five years we’ll see TVs implementing all the tech that’s already available on the evergreen browsers like Firefox, Safari and Chrome.
How to manage frustration in Smart TV development? Balance!
In the meantime, there are things that you can do to reduce the pain of developing apps for Smart TVs. You can take the route of FuboTV and simply state that your app won’t support older TVs. I can guarantee they’ve had a much smoother development process of their LG WebOS app by choosing to only target 2018 to 2021 devices. Had they tried to get an app going on TVs from 2015 or 2016, things would already look very different. But as we’ve already seen, TVs are too expensive for many people to replace them more than every 7-10 years. And it’s a risk for any OTT or Pay TV service to deliberately exclude the chunk of the market that has devices dating back to 2013, 2014 or even further in their living rooms.
So, what you really should be looking for is balance. Development can be hard, costly and time-consuming if you aim to provide your app to older devices and a wide range of manufacturers, especially if you’re starting out without serious experience in the field. So it’s important to strike a sensible balance between supporting older devices (where you know you can reach plenty of users) and limiting your reach to new televisions with the cool new tech. Wherever you find your balance (and it will be different for every media company), choose your development team wisely, concentrate on user experience, and put in the effort to do proper testing. That’s how you delight the end consumer. And whether you love Smart TV development or hate it, happy consumers make it all worthwhile.
If you’d like to hear more about how 24i helps its customers to reach Smart TVs and other living-room based streaming devices, download our Big Screen Solutions brochure.
And if you’d like to discuss further the topics raised by Matthijs or your own Smart TV app development needs, why not contact us to arrange a chat with one of our experts?