LightningJS je open-source platforma využívající JavaScript, která k vykreslování používá WebGL. Není potřeba HTML ani CSS a výsledkem jsou vysoce výkonné televizní aplikace na bázi prohlížeče.
LightningJS umožňuje vytvářet plynulé animace, o kterých se vám při použití HTML a CSS může jen zdát.
LightningJS je plný chytrých optimalizací, které maximálně využívají grafickou kartu i procesor cílového zařízení. Obsahuje také mnoho pomocných funkcí, které při vytváření televizních aplikací potřebujete.
LightningJS má vysokou přenosnost. Používá totiž standardy HTML5. Aplikace vytvořené pomocí LightningJS fungují na všech hlavních platformách Smart TV, set top boxech (STB) a všech ostatních zařízeních, která používají moderní prohlížeč na bázi HTML5.
LightningJS funguje výborně na WebOS a (moderním) Tizenu. Přibližuje se také výkonu nativních aplikací v systému Android.
Níže najdete přehled vlastností, kterými se LightningJS liší od ostatních aplikačních platforem používaných pro tvorbu TV aplikací.
LightningJS se od podobných platforem odlišuje následujícími klíčovými koncepty: Render Engine, Router a Interakce s dálkovým ovládáním
Nejdůležitější komponentou LightningJS je WebGL 2D Render Engine. Jeho cílem je převést definovaný a změněný Render Tree na celou řadu příkazů WebGL a snaží se to dělat co nejrychleji.
Router plugin skýtá snadný způsob tvorby API, která pomáhají k vytvoření směrované aplikace LightningJS na bázi URL.
Router se obvykle používá k navigaci mezi stránkami, které vlastně představují komponenty LightningJS (jinými slovy patří do rozšíření třídy ‘Lightning.component’).
Volitelně lze ke každé cestě připojit jednu nebo více callback funkcí.
Kromě toho, že Router odstraňuje spoustu šablonovitého kódu, může být přínosný také pro práci s pamětí díky konfigurovatelné funkci „lazy creation“ a „lazy destroy“. To je užitečné zejména při nasazování aplikací na zařízeních nižší třídy s menší pamětí (RAM nebo VRAM).
Televizní ovladače obvykle generují klávesové události v prohlížeči. LightningJS připojuje k elementu canvas „key event listener“ a skýtá způsob, jak zpracovávat vstupy založené na klávesách.
Aby to bylo možné, musí LightningJS vědět, která komponenta je aktivní a která má zpracovávat klávesové události. Aktivní komponenta a její potomci (včetně samotné aplikace) se nazývají focus path.
Při vývoji TV aplikací je lákavé použít některý z hlavních frameworků založených na HTML DOM, který dobře znáte. Pokud se však zaměřujete na hardware s omezenými prostředky, není to obvykle dobrý nápad. Při pokusu o spuštění aplikací na Smart TV nebo STB se mohou vyskytnout problémy tohoto typu:
LightningJS má tu výhodu, že používá WebGL, což znamená, že s GPU komunikuje prakticky přímo. Využití paměti GPU je vždy předvídatelné a využití paměti CPU je také předvídatelnější, pokud místo prvků HTML DOM řešíte pouze JavaScript heap memory.
Kromě toho, že framework LightningJS nabízí úžasný výkon, pomáhá udělat si představu o výkonu stránky, díky čemuž je možné zvážit kompromisy u zařízení nižších kategorií.
Následující text obsahuje přehled známých nevýhod různých aplikací frameworku HTML DOM:
Ekosystém LightningJS se skládá z čtyř komponent: Lightning Core, Lightning SDK, Lightning CLI a Lightning UI
LightningJS Core obsahuje LightningJS Library a Render Engine, které jsou zodpovědné za vysoký výkon a skvělé animace.
Sada Lightning Software Development Kit (SDK) pomáhá vytvářet TV aplikace pomocí LightningJS a nasazovat je na mnoha platformách.
Lightning SDK obsahuje Lightning (Core) a několik užitečných pluginů pro vývoj aplikací, například pomocníky VideoPlayer, Image a Utility.
Rozhraní Lightning Command Line Interface (CLI) umožňuje snadno vytvářet a sestavovat aplikace LightningJS. Je to také standardní způsob načítání aplikací LightningJS na platformu Metrological Application Platform.
Lightning CLI zajišťuje bezproblémový průběh vývoje aplikací LightningJS. Ačkoli je Lightning CLI primárně určen jako vývojářský nástroj na straně klienta, lze jej používat i na straně serveru.
Lightning SDK a Lightning CLI jdou ruku v ruce.
Lightning-UI skýtá soubor komponent, které se při vývoji v Lightningu používají velmi často. Doufáme, že vám následující komponenty pomohou s rychlejším nastavením aplikace.
Collection Wrapper je základní třídou pro List, Grid a Carousel. Hlavním účelem Collection Wrapper je práce s položkami doplněnými do Collection Wrapper a zajištění potřebných metod pro manipulaci s nimi. Collection Wrapper také pomocí ItemWrapper zajišťuje, že neaktivní položky nejsou vždy načítány.
List, Grid a Carousel rozšiřují Collection Wrapper, aby data zobrazila svým vlastním specifickým způsobem. Collection Wrapper obsahuje také základní funkci posouvání a možnost jejího přizpůsobení.
Zdroj: lightningjs.io