Novinky
Vývoj6 min čítania

Progresívne webové aplikácie (PWA): alternatíva k natívnej appke

PWA vie nahradiť natívnu appku pri objednávkach, obsahu aj interných nástrojoch – no má aj jasné technické limity, najmä na iOS.

Progresívna webová aplikácia (PWA) je webová stránka, ktorá sa dokáže správať takmer ako natívna appka – nainštaluje sa na plochu, funguje aj bez internetu a posiela push notifikácie. Pre veľa slovenských firiem je to lacnejšia a rýchlejšia cesta k mobilnému zážitku ako klasický natívny vývoj pre iOS a Android zvlášť. Otázka, ktorú si kladie čoraz viac firiem, znie: kedy progresívna webová aplikácia PWA skutočne stačí a kedy sa oplatí investovať do natívnej appky?

V tomto článku sa pozrieme na to, čo PWA technicky umožňuje, kde má limity a podľa akých kritérií sa dá rozhodnúť.

Čo je PWA a ako funguje

PWA nie je samostatná technológia, ale súbor webových štandardov, ktoré spolu dávajú bežnej webovej stránke vlastnosti appky. Tri kľúčové súčasti sú:

  • Service Worker – skript bežiaci na pozadí v prehliadači, ktorý cachuje dáta a umožňuje fungovanie aj pri slabom alebo žiadnom pripojení.
  • Web App Manifest – JSON súbor, ktorý definuje ikonu, názov, farby a spôsob, akým sa appka spustí po nainštalovaní z domovskej obrazovky.
  • HTTPS a responzívny dizajn – PWA musí bežať na zabezpečenom pripojení a prispôsobiť sa akémukoľvek zariadeniu.

Vďaka tomu si užívateľ môže PWA „nainštalovať” priamo z prehliadača bez App Store či Google Play, appka sa spúšťa vo vlastnom okne bez adresného riadka a v mnohých prípadoch funguje aj offline. Presnú technickú špecifikáciu manifestu a service workerov popisuje web.dev od Googlu.

Pre firmu to v praxi znamená jeden zdrojový kód pre web aj appku – nie tri oddelené projekty pre web, iOS a Android.

PWA vs natívna aplikácia: kľúčové rozdiely

Rozhodnutie medzi PWA a natívnym vývojom závisí od toho, čo appka má robiť a s akými zariadeniami musí pracovať. Nasledujúca tabuľka zhŕňa hlavné rozdiely.

KritériumPWANatívna aplikácia
DistribúciaPriamo z webu, bez schvaľovaniaApp Store / Google Play, review proces
Prístup k hardvéruObmedzený (kamera, poloha, notifikácie)Plný prístup ku všetkým API
Push notifikácie na iOSObmedzené, závisí od verzie SafariPlne funkčné
Offline režimÁno, cez Service WorkerÁno, natívne
Údržba kóduJedna kódová bázaZvyčajne dve platformy (iOS, Android)
Výkon pri náročných úloháchDobrý pre bežné UI, limity pri 3D/ARNajvyšší dosiahnuteľný výkon

Rozdiel v prístupe k natívnym funkciám je dôvod, prečo firmy s vysokými nárokmi na hardvér (napríklad AR, Bluetooth periférie, náročné spracovanie na pozadí) siahajú po natívnom vývoji alebo aspoň cross-platform frameworku. Porovnanie natívneho a cross-platform prístupu cez React Native rozoberáme v článku o vývoji mobilnej aplikácie: natívna vs. cross-platform.

Výhody progresívnej webovej aplikácie

Hlavné výhody progresívnej webovej appky sa dajú zhrnúť do niekoľkých bodov:

  • Jeden kód pre všetky platformy. Zmena sa nasadí raz a prejaví sa okamžite u všetkých používateľov – bez čakania na schválenie appky v obchode.
  • Nižšia bariéra pre používateľa. Appku si nemusí sťahovať z obchodu, stačí kliknúť „pridať na plochu” priamo z prehliadača.
  • SEO viditeľnosť. Na rozdiel od natívnej appky je obsah PWA indexovateľný vo vyhľadávačoch, takže funguje aj ako bežný web.
  • Jednoduchšie testovanie a nasadenie. Zmeny sa overujú v jednom prostredí, nie osobitne pre iOS a Android.
  • Rýchlejšie prvé zoznámenie sa s appkou. Používateľ ju môže vyskúšať priamo vo webovom prehliadači bez inštalácie a rozhodnúť sa až potom, či si ju „pridá na plochu”.

Práve kombinácia jedného kódu a rýchleho nasadenia je dôvod, prečo sa PWA oplatí zvažovať pri projektoch, kde je hlavným cieľom rýchlo overiť dopyt alebo osloviť širšie publikum bez nutnosti riešiť dva samostatné natívne tímy.

Kedy PWA naozaj stačí

PWA je dobrá voľba najmä v týchto situáciách:

  • Appka slúži hlavne na zobrazovanie obsahu, objednávanie, rezervácie alebo správu účtu – teda bežné CRUD operácie bez náročnej grafiky.
  • Cieľová skupina používa prevažne Android alebo desktop, kde je podpora PWA (vrátane push notifikácií) najkompletnejšia.
  • Firma potrebuje appku aj web súčasne a nechce udržiavať tri paralelné kódové základne.
  • Ide o interný nástroj pre zamestnancov, kde nie je potrebná prítomnosť v App Store.

Naopak, natívny vývoj alebo cross-platform riešenie dáva zmysel, ak appka potrebuje hlboký prístup k senzorom telefónu, offline spracovanie veľkých dát priamo na zariadení, spoľahlivé push notifikácie na iOS, alebo ak je appka hlavným produktom firmy a jej prítomnosť v obchodoch s appkami má marketingovú hodnotu.

Skratka: PWA sa oplatí, keď appka rieši obsah, objednávky a bežné firemné procesy. Ak potrebujete hlboký prístup k hardvéru telefónu alebo spoľahlivé push notifikácie na iOS, treba zvážiť natívny alebo cross-platform vývoj.

Technické obmedzenia, o ktorých treba vedieť

PWA nie je univerzálne riešenie a má reálne limity, ktoré treba poznať pred rozhodnutím:

  • iOS Safari dlhodobo obmedzuje niektoré PWA funkcie – najmä push notifikácie boli na iOS podporené až v novších verziách Safari a stále majú viac obmedzení než na Androide. Aktuálny stav podpory sleduje MDN Web Docs.
  • Prístup k natívnym API (napríklad Bluetooth, NFC, pokročilé senzory) je na webe obmedzenejší než v natívnom SDK.
  • Viditeľnosť v obchodoch s appkami – PWA sa síce dá publikovať aj do niektorých obchodov, ale nefunguje to rovnako plynulo ako natívna appka a nie vždy je to žiaduce z pohľadu marketingovej stratégie.

Nasledujúci graf ilustruje všeobecný princíp – koľko samostatnej implementačnej práce si typicky vyžaduje pokrytie viacerých platforiem pri PWA oproti dvom oddeleným natívnym appkám (ilustračný index, nie reálne dáta z konkrétneho projektu):

Konkrétny rozsah práce sa vždy líši podľa rozsahu appky, počtu integrácií a požadovaných natívnych funkcií – graf ukazuje len princíp jednej kódovej základne oproti dvom paralelným.

Ako sa rozhodnúť

Pri výbere medzi PWA a natívnou appkou pomáha odpovedať si na tri otázky: Aké natívne funkcie appka skutočne potrebuje? Aké zariadenia používa cieľová skupina? A aká dôležitá je prítomnosť appky v App Store či Google Play pre dôveryhodnosť značky? Odpovede spravidla ukážu, či je progresívna webová aplikácia dostatočným riešením, alebo je lepšie ísť cestou natívneho či cross-platform vývoja.

Ak si nie ste istí, ktorý smer dáva pre váš projekt najviac zmysla, pozrite si naše riešenia v oblasti vývoja softvéru alebo vývoja mobilných aplikácií a dohodnite si nezáväznú konzultáciu cez kontaktný formulár.

INTERFASE