Dajbych.net


Projekt Spartan, 5. díl – Windows API pro webové aplikace

, 3 minuty čtení

spartan logo

S nástupem Windows 10 bude možné hostovat obsah aplikace na vlastním serveru. I přesto taková webová aplikace bude mít přístup k Windows Runtime – rozhraní, které bylo dřív určené výhradně nativním aplikacím. Webová aplikace bude ve Storu hned vedle aplikace nativní. Přitom jí bude možné vyvíjet a nasazovat stejně jako webovou stránku. K Windows Runtime se bude přistupovat z JavaScriptu. Webové aplikace budou ve Windows naprosto rovnocenné aplikacím nativním.

minulém díle jsem se věnoval směru, kterým se JavaScript ubírá. Už teď je zřetelně vidět snaha přiblížit webové aplikace možnostem, které mají aplikace nativní.

Pojem webová aplikace dostává zřetelný obrys

Pojem webová aplikace je velice rozšířený, avšak není snadné ho přesně definovat. Snaží se však vystihnout rozdíl mezi webovou aplikací a webovou stránkou. Klasická webová stránka je HTML, případně CSS a eventuálně velice střídmý JavaScript. Web byl navržený jako elektronická nástěnka, jakási platforma pro čtení textových dokumentů, nebo elektronická knihovna. Po videu a sdílení souborů nebylo ani vidu, ani slechu. Vykreslování scény, na které by se dala vytvořit hra, nebo plná kontrola nad klávesnicí a myší byla nepředstavitelná.

Naproti tomu vize webových aplikací byla silná už od počátku HTML5. Původně byl zastřešující pojem pro vše okolo HTML5 dokonce Web applications, ale HTML5 se rozšířil tak rychle, že se tímto pojmem začala označovat celá vize webových aplikací.

Webová aplikace má stejné možnosti jako aplikace nativní, avšak stále se jedná o webovou stránku využívající HTML, CSS a JavaScript. Může vykreslovat pomocí WebGL stejně jako nativní aplikace pomocí DirectX. Je schopna přehrávat video stejně jako nativní aplikace přes COM objekty. Má možnost ukládat relační data do IndexedDB stejně jako nativní aplikace do SQLite. Systém jí umožní vyvolat dialogové okno pro otevření nebo uložení souborů. A hlavně je schopná běžet na celé obrazovce a mít plnou kontrolu nad vstupy z periferií (tedy myši, klávesnice, joysticku, headsetu a dalších). Jedním z cílů projektu Spartan bylo vytvoření jádra prohlížeče, které zvládne vedle vykreslování stránek utáhnout i graficky náročnou webovou hru a zpřístupnit jí hardware.

V posledních několika letech se vytvořily dvě hlavní metody, jakými se aplikace instalují a spouštějí. Doby, kdy se prodávaly na CD v obchodech postavených z cihel, jsou pryč. První je webový vyhledávač a druhý je store. V podstatě jde o totéž. Google, Bing a Seznam vyhledávají webové aplikace, zatímco Store, App Store a Google Play vyhledávají aplikace nativní. Webové aplikace se přidávají do oblíbených položek nebo záložek, připínají se na hlavní panel, startovací obrazovku nebo novou kartu. Nativní aplikace se instalují a zástupci se umisťují na plochu, nabídku Start nebo rovnou na hlavní panel. Ve Windows 10 bude mít webová aplikace stejné možnosti, jako mají aplikace nativní.

Hosted Web Apps

Hosted Web App je název pro webovou aplikaci, která vypadá stejně, jako jakákoliv jiná nativní aplikace, je uvedená ve Storu, ale ve skutečnosti to může být webová stránka psaná pomocí Sublime a vystavená přes Git (avšak Visual Studio a TFVC jde samozřejmě použít také). Google tento přístup nazývá Chrome Packaged Apps.

Webová aplikace bude moct aktualizovat dlaždici, zobrazovat toast notifikace, mít přístup ke kontaktům v počítači a bude mít vyhrazený prostor, do kterého může ukládat své soubory. Stejného cíle jde dosáhnout už teď pomocí Store aplikací, které jdou psát v JavaScriptu. Vývojáři webů však nejsou zvyklí na to, že aplikace jde aktualizovat jen nahráním balíčku přes Store. Většinou se aktualizuje přes WebDeploy či FTP, nebo v případě continuous integration přes TFVC nebo Git. Pokud někdo chtěl vytvořit webovou aplikaci a umístit jí do storu, musel vytvořit aplikaci nativní, která obsahuje iframe a další drobné nezbytnosti. Hosted Web Apps mají odstranit i tento krok. Windows Runtime API bude přístupné z JavaScriptu (avšak jen pokud je aplikace nainstalovaná) a informace pro Store obstará manifest. Jestli bude tyto webové aplikace zařazovat do Storu automaticky Bing, zatím jasné není. Stačilo by pak dát na web jeden soubor a webová aplikace by se zobrazila ve Storu. Myslím si ale, že je jen otázkou času, než se tak stane.