In this post, we are going to discuss development of applications for Philips NetTV.
First of all, let’s but briefly outline the main challenges of Philips NetTV development:
1) Slow JS script performance. When the application runs any JS code, a progress indicator is shown. Visually, it seems that the application is thinking (well, actually, so it is), but you cannot identify whether a new Web page is loaded or just a key has been pressed on the remote control.
Also, it is very difficult to use such libraries as jquery here. You’d better abandon such an idea immediately. Ajax requests are also not transparent to the user, as they also produce the progress indicator. To support older TV models, you will have to sacrifice CSS3 shadows and transparency altogether. Moreover, it is better to avoid setTimeout, where possible.
2) Events Hence, please use key-press events of any kind (e.g., left/right navigation), only if you absolutely cannot avoid this. Forget of jQuery altogether. This is a substantial constraint to interactivity. So you have to either abandon interactivity or have your users cope with slow navigation response (delay may be up to several seconds).
3) Navigation To enable ‘intelligent’ navigation, spatial navigation should be used. This method consists in defining direction of navigation in HTML element CSS styles (nav-left, nav-right). On the one hand, it is convenient to define possible navigation directions for each element during page layout or by using a page initialization script. But when you have too many navigation elements, or when their number and location are changing dynamically, it becomes not very easy to manage all this, as you have to update possible navigation directions for all linked elements.
4) The application has to comply with CE-HTML (HTML For Consumer Electronics). Actually, it means that the application has to support the following standards:
- ECMAScript 262, 3rd Edition
- XHTML 1.0 transitional/strict
- CSS TV Profile 1.0
- XMLHttpRequest object
- DOM level 2.0 (Core, Style, Events, HTML),
and several of CE-specific extensions, like
- Multi-tap or any other specific formats implementing CSS3 input-format
- Audio/video codecs
- JS-hooks and remote control interfaces.
Now a few words of user-agent’s auxiliary data. Having received such data, the server can enter into the XML UI Listing mode, providing the client with CE-HTML interfaces to choose from. Device-specific interfaces (support for fonts, sizes, etc.) are based on the 10-foot user interface.
5) Emulator The emulator does not support video (probably, for licensing considerations). This complicates debugging of the developed video player (in most applications, a video player has to be developed separately).
6) The HTML engine is absolutely intolerable to invalid XML code: all your code has to meet the XML specifications. Unclosed tags result in an error on the TV screen, and the page is not displayed. This must be taken into account, particularly if the content is entered by people unfamiliar with such nuances.
7) Marlin DRM Philips TVs support Marlin DRM, so you can license major’s content for distribution via Philips NetTV.
Wishing you loyal viewers for your Philips NetTV applications!