Bližší pohled na technologii Smart TV

17. prosinec 2013

Smart TV má pro snadné použití v sobě implementován plnohodnotný klientský webový prohlížeč. Je založen na otevřené CE-HTML specifikaci, která je podmnožinou existujících otevřených internetových standardů, jako XHTML1.0, CSS TV Profile 1.0, DOM level 2, ECMAScript 262 (3rd edition) a XMLHttpRequest (AJAX).

Navíc, CE-HTML popisuje specifická rozšíření pro televizní použití, včetně Media object (pro A/V ovládání vykreslování), prostorové navigace (up-down/left-right/OK) a pokyny pro vkládání textu s jednoduchým dálkovým televizním ovladačem (SMS styl), který dělá celý proces přechodu mezi aplikacemi přímočařejším.

CE-HTML (tj. CEA-2014 nebo Web4ce) byl vyvinut ve spolupráci velkými CE společnostmi a standardizován CE asociací. Otevřené IPTV fórum vybralo CE-HTML jako standard televizního prohlížeče a je také součástí HbbTV specifikace (v1.1.1 link).

Aplikační engine pro nové modely a SDK téměř plně podporuje HTML5, CSS3 a DOM 3.

Ovládání dálkovým ovladačem

Různí výrobci vyrábí různé dálkové ovladače s různými tlačítky, v různém designu a s různou specifikací.

Pro uživatele se například šipka vlevo chová pouze jako „posuv o jedno vlevo“. Naopak z pohledu vývojáře je kód pro šipku vlevo jiný, pro různé Smart TV platformy, ačkoliv nakonec výsledek jak budou reagovat bude pro uživatele vypadat stejně.

Zvláštní pozornost by měla být věnována při návrhu ovládání aplikace. Pro ovládání je potřeba využívat jen ta tlačítka, která jsou na všech ovladačích.  Jedná se hlavně o šipky, čísla, tlačítko zpět.

Na druhou stranu pokud jde  o  aplikaci pouze na konkrétní platformu lze využít i dalších tlačítek. Musíme mít ovšem na paměti, že v aplikaci nelze odchytit stisk všech kláves. Například tlačítko pro vypnutí televize nelze odchytit na žádné televizi. Jeho stisk je zpracován samotným systémem. Naopak na televizorech LG nelze odchytit stisk EXIT, naopak zase na  platformě Samsung lze tuhle klávesu odchytit a nějak na ni reagovat. Obdobné malé komplikace musíme mít při vývoji pro chytré televize vždy na paměti.

S našimi  zkušenostmi se schvalovacími procesy, které jsou daleko důkladnější než na některých mobilních operačních systémech, víme, že vizuální obrázek například tlačítka Zpět  na TV Samsung musí být jiný, než například na TV Philips.

Kromě klasického dálkového ovladače je možné Smart TV ovládat myší nebo tzv. Kynetickým ovladačem (např. od LG), který funguje jako myš.

Další výrobci jako Samsung neustále rozvíjí ovládání hlasem a gesty pomocí kamery. Tyto inovativní způsoby máme vyzkoušené na několika aplikacích, ale ještě není tento způsob ovládání pro každodenní používání. Velký rozdíl ve snímání rukou je mezi modelovými řadami 2012 a 2013, kdy na starší z nich měla problém rozeznat ruku na tmavším pozadí. Naopak novější model si s tímto problémem poradil a navíc přidal rozeznání gest na obou rukou najednou. Nicméně v tmavé místnosti si neporadí ještě ani jedna, ale do budoucna bude určitě i tohle vyřešeno.

Rozlišení a programování UI pro velké obrazovky

Rozlišení obrazovky 

Ačkoliv jsou televize v drtivé většině aspoň ve FullHD rozlišení (tzn. 1920×1080 obrazových bodů) aplikace jsou hlavně v HD rozlišení 1280×720 obrazových bodů. To je jistě výhoda, když jsme nuceni vyvíjet pro více platforem.  Přesto je potřeba věnovat pozornost zejména pokud se jedná o starší modely, kde se můžeme setkat s výjimkami.

První chytré televize od Samsungu z roku 2010 podporovaly rozlišení aplikací pouze 960×540 obrazových bodů. Díky kompatibilitě se staršími zařízeními a úpravě na novější modely bylo možné si aplikaci speciálním příkazem přepnout do HD rozlišení. Nicméně od roku 2013 již Samsung nenabízí zveřejňování aplikací na modelové řady z roku 2010. Proto se opět dostáváme k HD rozlišení.

Programování UI 

CSS není plně podporováno u starších modelů, CSS3 se postupně rozšiřuje u novějších modelů.

Pokud je požadována zpětná kompatibilita, je nutné se zmínit o existenci rozdílů v podpoře CSS (kaskádový styl) v jednotlivých Smart TV příjimačích. To nám dává jen velmi malou možnost využití těchto kaskádových stylů. Velmi často je nutné nahradit některé CSS efekty obrázky.

Jak jsme se již zmínili chytré televize, si neporadí s kaskádovým stylem vždy stejně, případně danou vlastnost vůbec neznají. Podpora CSS3 se postupně rozšiřuje. Platí ovšem nemilá skutečnost, že u dvou modelově úplně stejných televizí s rozdílným firmwarem se design aplikace nemusí chovat úplně stejně.

Co se týče renderovacího web engine, nejrozšířenější  jádrem je Webkit, lze ale také nalézt na starších modelech renderovací engine Opery (Presto), nebo Maple.

Ukázka z useragentů na několika televizích je znázorněna v tabulce a jasně demonstruje, že ačkoliv je každé prostředí televize jiné, v jádru hlavně operační systém Linux z interních logů to například na televizích Samsung je distribuce Ubuntu:

TV OS Jádro
Samsung 2011 Linux; SHADOW Vlastní vykreslovací jádro 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
Panasonic FreeBSD Webkit
Toshiba Linux mips Webkit

U Androidích sticků nebo Android TV běží podle očekávání v komponentě webview webkit.

Samozřejmě se nejedná jen o odlišnost ve stylování, ale najdou se odlišnosti například u zpracování hlaviček ajaxových volání, nebo parsování XML souborů, nebo je zde problém s vykreslováním html elementů přes běžící video na GoogleTV/AndroidTV. Což už jsou ale často specifické požadky, které se musí řešit jen na konkrétních platformách.

Ladění a Bootstrapping Smart TV aplikací

Ladění

Jelikož nedochází k překladu zdrojových souborů, je součástí každého vývoje aplikace výhodou prokládání logovacími výpisy. Některé platformy nabízejí možnost logování přímo z televize do vývojového prostředí (Samsung, Panasonic,LG), ale jsou platformy, kde nic takového není k dispozici.

Současně se na všech platformách nechovají stejně objekty  window.alert nebo console. Proto si často logujeme informace přímo na obrazovku. Variantou může také být využití websocketů a zasílám logů například na desktop, ale to opět není řešení, které lze využít na všech televizních platformách.

Nejčastějším způsobem, jak vývojáři ladí / testují aplikace je nasazení pomocí FTP a načtení adresy URL buď přímo v prohlížeči  TV (Philips, Toshiba), nebo ve speciálním spouštěči (Sony, Panasonic). Na televizích Samsung dochází k nahrání aplikace přímo do zařízení, což vyžaduje na hardwaru dostatek prostoru. To ale umožňuje rychlejší start aplikace, jelikož není nutné stahovat všechna zdrojová data. Z pohledu vývojáře je možné nahrát aplikace i na USB flash disk, ze kterého je pak možné aplikace spouštět.

Bootstrapping: Pokud se podíváme na příklad systémového logu při startování aplikace na chytré TV Samsung, je zde možno vidět inicializace systémové klávesnice a nastavení rozměrů video přehrávače. Na ostatních televizích jsou podobné systémové logy také, ale není až tak jednoduché se k nim takto dostat. Těchto systémových logů využívají často testeři při schvalování aplikací, když aplikace při nějakém náročném testu spadne, nebo dojde k neočekávanému chování.

Proces schvalování Smart TV aplikací

Proces nahrávání a následného schvalování je nutné opakovat pro každou platformu zvlášť.  Aby bylo možné projít QA testovacím procesem aplikace se musí postarat o vykonání  všech pokynů, které někdy mohou vyústit v různé  aplikační chování.

Jmenujme některé z nich:

  • Ukončení aplikace a návrat buď do Smart prostředí anebo přímo do DVB vysílání. LG a Samsung tuto funkčnost testují, protože mají na ovladačích tlačítka EXIT, naopak Sony má jen tlačítko Return, kde je jen ukončení aplikace.
  • Samsung pečlivě testuje chování aplikace při ztrátě síťové konektivity. Vývojář musí tuhle skutečnost náležitě vyzkoušet.
  • Na Smart TV LG a Philips je potřeba počítat s podporou myší. LG nabízí k ovládání speciální Magic Remote Control Unit, což je kinetický ovladač, který následně funguje jako myš, plus má k dispozici další tlačítka navíc.
  • Mít na paměti tzv. „safe area“ – okrajová oblast na LG televizích, kde nemají být ovládací prvky.
  • Vypínat spořič obrazovky, pokud to API televize umožňuje.
  • Čitelnost textů.

Jaká bude budoucnost?

Inovace a výkon

S nástupem 4K videa poroste výkon televizí, nebo tím jak se budou stále vyvíjet možnosti dalšího využití televize.

Televizní aplikace dosud neumí streamovat více video streemů současně, což by v budoucnu umět mohly a tím může dojít ke vzniku dalšího přílivu inovací do aplikací v oblasti Smart TV.

Standardizace

Jako reakci na nadvládu společnosti Samsung v segmentu Smart TV  došlo ke spojení několika dalších výrobců Smart TV jako jsou LG, Philips, Toshiba, Vestel do tzv. Smart TV aliance. (STA)

V STA jsou tedy zastoupeni 4 z 6 největších výrobců chytrých televizí, počítáno podle počtu kusů televizí prodaných v Evropě.

Z velkých výrobců zůstává mimo alianci Sony, Samsung a Sharp. Členy aliance je také řada dalších společností podílejících se na vývoji hardware a software (namátkou OperaTV, TechniSat nebo třeba VESTEL) a třeba se v budoucnu přidá i Samsung, který jak se zdá má veliké plány s operačním systémem Tizen…

Cílem organizace je vytvořit jednotný systém pro vytváření televizních aplikací. Tento systém zahrnuje specifikaci aplikačního rozhraní, definici povinných a volitelných technologií, které musejí být výrobci televizí podporovány, vytváření SDK a emulátoru a jednotný systém schvalování aplikací. Díky tomuto přístupu by mohlo časem dojít k většímu sjednocení standardů napříč jednotlivými platformami.

Přihlašte se k odběru novinek