LightningJS

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.

Vysoký výkon, skvělá přenosnost

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.

Přehled

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í.

Obecně

Klíčové vlastnosti

Technické výhody

Výhody pro vývoj

Klíčové koncepty

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

Render Engine

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

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).

Interakce s dálkovým ovládáním

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.

LightningJS versus HTML DOM

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

Ekosystém LightningJS se skládá z čtyř komponent: Lightning Core, Lightning SDK, Lightning CLI a Lightning UI

Lightning Core

LightningJS Core obsahuje LightningJS Library a Render Engine, které jsou zodpovědné za vysoký výkon a skvělé animace.

Lightning SDK

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.

Lightning CLI

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

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

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