13
Fotogalerie

Naprogramujte si vlastní aplikaci pro televizor

Chytré televizory mají katalog s aplikacemi. Můžete si ale vytvořit i vlastní, i když to nebude procházka růžovým sadem. Vyzkoušel jsem, jak to dělá Samsung.

Televizory dnes nejsou pouze placaté a rozměrné, ale stále častěji také chytré jako mobilní telefony. Jejich základní funkci tedy můžete rozšiřovat o další aplikace, a pokud jste softwarově zruční, tak i o své vlastní dílo, které si pro televizor napíšete.

Nedávno jsem zde publikoval článek o tom, jak nás mohou některé chytré televizory monitorovat, přičemž jsem k reálnému testu použil Samsung Smart TV UE46F8000ST. Stejný televizor vyzkouším i tentokrát, podívám se ale v praxi na to, jak se dá vlastně programovat a co k tomu budou případní zájemci potřebovat.

Programuje se jako na webu

Televizory od Samsungu s přívlastkem „Smart TV“ lze programovat pomocí Javascriptu, HTML a ve Flashi. Společnost Adobe nicméně nedávno oznámila, že ukončí další vývoj své technologie pro chytré televizory, čili tato možnost v jejich příštích řadách skončí.

Vývojáři aplikací pro chytré televizory se sdružují na webu Samsung D Forum. Stáhnete si odtud rozměrný SDK balíček s vývojářskými nástroji a najdete zde dokumentaci s návody a fóra v několika jazycích. Web sice na první pohled působí rozsáhlým dojmem, ale začátečníka zarazí absence opravdu elementárních příkladů. Dokumentace s ukázkami kódu zároveň není zrovna nejpřehlednější a dobře strukturovaná, čili pokud o vývoji aplikací pro chytrý televizor nevíte zhola nic, vezměte si na studium nejméně týdenní dovolenou.

V těchto chvílích mě pokaždé napadne, jak by to bylo skvělé, kdyby výrobci chytrých televizorů používali třeba systém Google TV, který je postavený na dnes již velmi dobře dokumentovaném Androidu. Namísto toho je trh plný chytrých televizorů od několika málo výrobců s různými operačními systémy a relativně malými a rozdrobenými komunitami vývojářů a tedy i zanedbatelnou komunitní dokumentací. Přičemž dobrá dokumentace je alfa a omega toho, aby pro danou platformu někdo vůbec začal vyvíjet. Vše ostatní je zástupné.

Kreslíme aplikaci

Dost ale teorie, pojďme se podívat na to, jak takový vývoj vypadá v praxi. Vše se odehrává ve vývojovém prostředí Eclipse, které je součástí rozměrného SDK balíčku. Eclipse je populární editor původně určený hlavně pro Javu, jelikož je ale open source a multiplatformní, v posledních deseti letech na něm vzniklo mnoho odvozených prostředí pro vývojáře. Ze stejného důvodu jej preferuje i Samsung, který program obalil vlastními nástroji a šablonami.

Vývoj pro Samsung Smart TV v Eclipse.jpg
Vývojové prostředí Eclipse a WYSIWYG návrhář designu podoby aplikace 

Editor má k dispozici i jednoduchý WYSIWYG návrhář, takže si můžete v počítači nakreslit základní podobu vašeho televizního programu. Není to přitom žádná věda, pro veškerý design se totiž používá zmíněný HTML a CSS. Logiku aplikace pak napíšete s pomocí prostého Javascriptu.

Šablony pro aplikace.jpg Šablony pro Eclipse.png Eclipse pro Samsung TV.jpg
Vývojové prostředí nabízí stejně jako u jiných systémů několik šablon s připravenou aplikací, abyste se mohli s programováním rychleji seznámit 

Emulátor ve VirtualBoxu

U vývoje aplikací, které se nespouštějí přímo na počítači, je samozřejmě vždy největší problém jejich testování. Nemůžete je jen tak spustit, poněvadž vaše mašina prostě není televizor. Samsung nabízí dvě cesty. K dispozici máte televizní emulátor v podobně virtualizované linuxové distribuce Ubuntu, která se spouští ve VirtualBoxu. Ten si budete muset doinstalovat sami. Vše je propojené přímo s editorem, takže emulátor můžete spustit rovnou z Eclipse. V emulovaném televizoru vyberete aktuálně vyvíjenou aplikaci a otestujete ji v praxi. Emulátor má i virtuální dálkový ovladač, takže samozřejmě můžete simulovat stisk jeho tlačítek.

Spuštění emulátoru.jpg Emulátor.jpg Emulátor.jpg
Spuštění emulátoru – virtualizované linuxové distribuce Ubuntu ve VirtualBoxu 

Všimněte si, že v emulátoru (i později na televizoru) zlobí české písmo. Důvod bude pravděpodobně ten, že výchozí příklad používá písmo, které v emulátoru i na televizoru nemá adekvátní české znaky. Jelikož programujeme v Javascriptu a HTML, nasnadě je do projektu vložit vlastní font s českými znaky.

Spuštění aplikace na televizoru

Pokud budete vyvíjet aplikaci třeba jen pro sebe a nechcete ji ani šířit do katalogu Samsung Apps, s emulátorem si samozřejmě nevystačíte a budete hledat cestu, jak aplikaci bez jakéhokoliv zdlouhavého schvalování dostat do svého televizoru.

Leckoho napadne, že ji prostě zkompiluje ve vývojovém prostředí Eclipse, hodí na USB médium a to připojí k televizoru. Takhle to ale nefunguje. Na svůj počítač musíte nainstalovat libovolný webový server, na který Eclipse zkopíruje zkompilovaný program a ke kterému se připojí televizor a aplikaci nainstaluje.

Samsung doporučuje nainstalovat Apache, na Windows ale můžete použít IIS přímo od Microsoftu, který je k dispozici jako volitelná komponenta u vyšších verzí Windows (Windows 7 Ultimate, Windows 8 Pro aj.).

Zabalení aplikace.jpg Zabalení projektu.jpg Webový server.jpg
Zabalení aplikace do instalačního balíčku, který se zkopíroval do adresáře webového serveru. Teď už jej najde chytrý televizor na adekvátní IP adrese. 

Nepříjemným oříškem ale může být konfigurace televizoru, o čemž jsem už psal výše. Samsung sice nabízí tento návod krok za krokem, který detailně popisuje, jak na televizoru vytvořit vývojářský účet, který aktivuje nové položky v menu, pomocí kterých připojíte televizor k webovému serveru na počítači, návod se ale týká pouze starších televizorů. Na mém televizoru z roku 2013 nic podobného nefungovalo. Po zdlouhavém procházení webových fór jsem našel řešení, poněvadž se stejným problémem se potýkali i ostatní.

Jakmile na televizoru aktivujete vývojářský účet a nastavíte IP adresu počítače, na kterém běží server, televizor si z něho bude moci stáhnout balíčky s aplikacemi a nainstalovat je. Může to celé vypadat poněkud kostrbatě, ale má to výhodu snadné distribuce programů zcela mimo oficiální katalog Samsungu. Stačí ostatní televizory nakonfigurovat na vaši veřejnou IP adresu, na které poběží webový server, což dnes umí každý NAS i mnohé routery s USB pro uložiště webového serveru.

Instalace lokální aplikace.jpg Instalace lokální aplikace.jpg Instalace lokální aplikace.jpg
Instalace lokální aplikace pomocí webového serveru spuštěného na vývojářském počítači 
 

A to je vlastně celé. Nyní byste měli začít vyvíjet a tvořit skvělé programy, které po zkompilování odešlete do katalogu Samsung Apps na ověření a následně veřejnou publikaci. V tomto směru se už chytrý televizor principálně neliší třeba od chytrého telefonu a jeho katalogu aplikací.

Vše ale bude skřípat na špatně dohledatelné a opravdu kvalitní a široké dokumentaci. Představit chytrý televizní systém rozšiřitelný o aplikace, je totiž opravdu jen to pomyslné A. Aby se stala celá platforma opravdu úspěšnou a vedle profesionálních aplikací se začala plnit i stovkami a tisíci aplikací od široké komunity malých a domácích vývojářů jako na iOS a Androidu, potřebuje ale i to B, tedy skvělou dokumentaci s hromadou základních i pokročilých příkladů, bezchybné a čerstvé návody a silnou komunitu, která bude řešit problémy ostatních na populárních vývojářských webech jako třeba Stackoverflow.

Samsung a ostatní výrobci chytrých televizorů jsou zatím na půli cesty, mají vývojové prostředí, testovací nástroje, mají chytrou platformu, ale oficiální dokumentace má k dokonalosti opravdu daleko a anglofonní komunita na webu samsungdforum.com je oproti takovému Androidu naprosto zanedbatelná, což povětšinou vede k tomu, že nenajdete řešení na svůj nervy drásající problém a vývoj své skvělé plánované aplikace utnete ještě dříve, než skutečně začnete.

Speciál: Televizory

Nový televizor vybírejte pečlivě. Kolik do něj chcete investovat, na jaké ceně začínají kvalitní modely? Jaká bude nejvhodnější úhlopříčka, rozlišení a jaký typ zobrazovacího panelu? Určitě si přečtěte návod Jak dobře koupit televizor.

Doporučujeme také redakční výběry televizorů:

Určitě si přečtěte

Články odjinud