Nahoru
 

Co jsou to progresivní webové aplikace

Vzhledem k enormnímu růstu mobilních aplikací a webových stránek vznikl nový způsob tvorby programů. Jedná se o progresivní webové aplikace a je to „míšenec“ mezi zmíněnými mobilními aplikacemi a internetovými stránkami.

Progresivní aplikace se obecně charakterizují následujícími vlastnostmi:

  • Spolehlivé (Reliable)
  • Rychlé (Fast)
  • Vtahující (Engaging)

Upřímně, z těchto charakteristik jsem na první přečtení nebyl úplně moudrý. Pojďme si proto progresivní webové aplikace představit na jednoduchém příkladu, a to na kalkulačce.

Představme si, že existuje web poskytující kalkulačku. Je to velice jednoduchá a tradiční implementace, jakou vídáme denně. Tuto stránku nyní můžeme nazvat webovou aplikací, tedy internetovou stránkou s nějakou funkčností. Jak takovou kalkulačku můžeme povýšit na progresivní webovou aplikaci?

V první řadě potřebujeme sestavit pořádné uživatelské rozhraní. Návštěvníkovi musí být okamžitě jasné, jak se sčítá, odčítá, dělí a násobí. Prostředí má působit příjemně, organizovaně a přátelsky. Pokud to technologie umožňuje, můžeme vložit rychlé hladké animace pro lepší „šmrnc“. Samozřejmostí je schopnost aplikace běžet na desktopech, tabletech i mobilních zařízeních (responzivita). Tyto vlastnosti lze vídat i u běžných webových aplikací, nicméně pro progresivní webové aplikace jsou nutnou podmínkou. U progresivních aplikací lze navíc nastavit prostředí tak, aby běželo ve fullscreen a posílalo notifikace, když například dopočítá složitý vzoreček. To splňuje vlastnost „vtahující“. Zkrátka se to chová jako běžná mobilní aplikace.

Mobilní aplikace
Obrázek č. 1: Správná progresivní aplikace by měla běžet na celé obrazovce a umět zasílat notifikace, stejně jako mobilní aplikace

Myslím, že vysvětlovat vlastnost „rychlá“ není úplně potřeba. Zkrátka, aplikaci se snažíme postavit tak, aby měla co nejrychlejší čas odpovědi na jakékoliv pokyny. Překvapivě rychlost ovlivňuje i spolehlivost, a to schopností offline provozu.

Rychlost! (abstrakt)
Obrázek č. 2: Progresivní webové aplikace jsou rychlé

Pod pojmem „spolehlivá“ si určitě představíme aplikaci, která nepadá, nezamrzá a jako kalkulačka vrací správné výsledky. Tak by určitě měla vypadat každá aplikace. Co to však znamená pro progresivní webové aplikace? S internetem panuje taková ošemetná věc: Když nemáme připojení k internetu, webové aplikace se nenačtou. Hlavní výhoda progresivní webové aplikace je, že se celá dokáže stáhnout do mého zařízení a fungovat, i když jsem offline (bez internetu). Vždy, když využívám aplikaci a jsem opět online, si kalkulačka v případě potřeby stáhne nějaké aktualizace. Jakmile si tedy otevřu kalkulačku v prohlížeči, mohu k ní rychle přistupovat, i když jsem offline. To je hlavní výhoda progresivní webové aplikace.

Wifi signál
Obrázek č. 3: Správná progresivní webová aplikace funguje i offline

Pro programátory: Tento cachovací proces obstarává Service Worker (což je JavaScript Worker) a využívá API prohlížeče. Pomocí tohoto API lze spravovat veškerou komunikaci mezi serverem a klientem. Lze tak například zachytit odpověď serveru, uložit do paměti klienta a při dalším požadavku na server na ten samý zdroj jednoduše odpovědět uloženou (zacachovanou) odpovědí. Lze tak uložit celý web/aplikaci a využívat jej offline.

Progresivní webové aplikace přináší obrovské množství možností a výhod. Oproti mobilním aplikacím se nemusí instalovat, fungují na jakékoliv platformě, bez starostí o kompatibilitu a vyvíjí se tak snadněji. Bohužel, prozatím neumí tolik funkcí, jako mobilní aplikace, avšak to se může časem změnit. Jedná se o velice nový trend, proto jste o něm možná ještě neslyšeli, avšak věřím, že se to postupem času změní.