Specifications details for Smart TVs platforms
Smart TV uses a web browser as a client and application are coded in a browser-supported programming language.
Some TV vendors support CE-HTML specification, DOM level 2, ECMAScript 262 (3rd edition), and XMLHttpRequest (AJAX). CE-HTML also describes specific enhancements for use on TVs, including the Media object (for A/V drawing control), spatial navigation (up-down/left-right/OK) and instructions for text entry with a basic remote control (SMS style).
CE-HTML (CEA-2014 or Web4ce) was cooperatively developed by big CE companies and standardized by the CE association. The open IPTV forum chose CE-HTML as the TV browser standard and it is also the part of the HbbTV specification (v1.1.1 link).
App Engines for more recent models and SDKs have almost fully support for HTML5, CSS3 and DOM 3.
Navigation with the remote control
Different manufacturers make different remote controls with different buttons, design and specifications.
For the end users, the left arrow just means “move to an item on the left”; from the development view, every platforms have different event codes which must be captured and processed accordingly for each platform, even though the result for the end user will be the same.
Special consideration should be taken when study the navigation for an application as only buttons commonly present on all remote controls should be used. This usually means navigational arrows, numbers, and the back button.
Keep in mind, however, that not all key presses can be registered in a Smart TV application; for example the off button cannot be used on any TV, that key is managed by the system itself. On LG TVs the EXIT button cannot be registered, but on Samsung TVs it can be reacted to. A developer must always take in consideration all these differences early as possible in the design.
Through our experience from QA approval processes the visual representation (UI Design) of key buttons, like the back button, must have a special design which vary among platforms; that can be far more tough than with some mobile operating systems!
Apart from a conventional remote controllers, a Smart TV can be controlled with a so-called kinetic controller (for example the Magic Control on LG) that works like a mouse.
Other vendors like Samsung keeps developing voice and gesture controls. We have tested these innovative means of control in several applications, but they are not yet ready for mainstream use.
There are several big difference in hand recognition between 2012 and 2013 models, where the older line had difficulties recognizing a hand on a darker background. The newer models correct this problem and can additionally recognize gestures with both hands simultaneously. However neither works reliably in a dark room, but this will surely be remedied in the future.
Resolutions & UI coding considerations for big screens
Screen resolution: Even though most recent TVs have Full-HD resolution (1920×1080), TV applications are mainly made in 1280×720 HD resolution. This is certainly an advantage when deploying on several platforms. Nevertheless several caveats are present specially when dealing with older models.
The first Samsung Smart TVs from 2010 only supported a resolution of 960×540. Thanks to compatibility with older devices and a modification to newer models it was possible using a special command to switch an application to an HD resolution.
However from 2013 Samsung no longer supports 2010 models where TV applications are concerned. This brings us back to HD resolutions.
In older models CSS are not fully supported, on newer model the use of CSS3 is gradually expanding.
If backward compatibility is required, it is necessary to note the existence of differences in the support of CSS (Cascading Style Sheets) in individual TVs. This means a very limited use of style sheets. Very often it is necessary to replace certain CSS effects with images.
As has been stated, not all TVs handle CSS the same way, sometimes a role is completely unrecognised and the use of browser prefix is required. In addition to this, however, two identical TVs with different firmware may not function exactly the same with the same design.
Regarding the rendering web engine the most widespread is Webkit, but also Opera’s rendering engine (Presto), or Maple can be found on older models.
The useragent strings of several TVs is displayed in a table below and clearly shows that even though each environment is different, the core is a Linux operating system, for example, according to internal logs, in Samsung TVs, it is Ubuntu:
|Samsung 2011||Linux; SHADOW||Custom rendering engine Maple|
|Samsung 2012, 2013||Linux armv7l||Webkit|
|Philips 2012||Linux mips||Opera Presto|
|Philips 2013||Linux armv7l||Opera Presto|
|LG 2012, 2013||Linux armv7l||Webkit|
|Sony 2012||Linux mips||Opera Presto|
In Android sticks and Android TV, the Webkit webview component is utilized.
Of course differences are not only in styling – for example there are also differences in the processing of headers of AJAX calls, or XML file parsing, or on GoogleTV/AndroidTV there is a problem with rendering of HTML elements over a playing video. However these are often specific requests that have to be dealt with on a per-platform basis.
Debugging & Bootstrapping on Smart TVs
Since no pre-compilation of source files is involved, it is beneficial during development to use trace/logging facilities. Some platforms offer logging directly from the TV into the development environment (Samsung, Panasonic and LG), but there also platforms that don’t.
At the same time objects window.alert and console.log behave not in the same way on different platforms. This is why we suggest to often log information directly to the screen.
Optionally web sockets can be used to logs trace to local machine, but again, this is not compatible with all platforms.
The most frequent way developer debug/test an app is deployment using FTP and loading an URL address into the TV browser (Philips, Toshiba), or into a special launcher (Sony, Panasonic).
On Samsung TVs the application could be loaded directly to the TV, allowing faster application launch.
Developers can also write the application to an USB flash drive or using URL redirection to a local computer and launch it from there.
Looking at the system logs of a Samsung Smart TV when starting an application, we can see the initialization of the system keyboard and setting of the video player dimensions. Other TVs have similar logs, but it is not as easy to get to them.
These system logs are often used by QA testers while approving the app or when tracking unexpected crushes , or odd behaviours.
Quality assurance (QA) approval process
The loading and QA approval process must be repeated for each platform. In order to pass QA testing an application had to take care of all guidelines which some times can result in different application behaviours.
Just to name few:
- Exiting an application and returning either to the Smart environment, or DVB broadcast. LG and Samsung test this functionality because they have the EXIT button on their remote control, while Sony only has the Return button that only quits the application.
- Samsung carefully tests application behaviour when network connection is lost. The developer must thoroughly test this possibility.
- On LG and Phillips Smart TVs, kinetic remote controller must be supported. Application must be coded to react at mouse events.
- “Safe area” – the borders of LG TVs where no control elements should be placed.
- Turning off the screen saver, if the TV API allows this.
- Text readability, in terms of minim fonts size required by each platform.
What to expect for the future
New innovation and performance
With the advent of 4K Video Resolution the performance of TVs will definitely increase this will enable new uses of TVs.
Currently SmartTV cannot stream multiple videos at once, which might change in the future and this could lead to new waves of innovation.
In reaction to the dominant position of Samsung in the Smart TV segment, several other Smart TV manufacturers like LG, Philips, Toshiba, and Vestel joined together to form the Smart TV Alliance (STA).
The STA thus represents 4 out of 6 of the largest vendors, measured by the number of units sold in Europe.
Sony, Samsung, and Sharp are not part of this alliance yet. The alliance also includes a range of other companies contributing to hardware and software development (e.g. OperaTV, TechniSat, or VESTEL) and in the future Samsung might also join the alliance – it seems it has big plans for its Tizen operating system…
The goal of the organization is to create a unified system for the creation of TV applications. This system includes common API specification, the definition of mandatory and voluntary technologies that must be supported by the TV manufacturers, the creation of an common SDK and emulator, and a unified application approval system. This approach might in time lead to greater unification of standards across platforms.