Novinky
Vývoj6 min čtení

Progresivní webové aplikace (PWA): alternativa k nativní appce

PWA dokáže nahradit nativní appku při objednávkách, obsahu i interních nástrojích – má ale i jasné technické limity, zejména na iOS.

Progresivní webová aplikace (PWA) je webová stránka, která se dokáže chovat téměř jako nativní appka – nainstaluje se na plochu, funguje i bez internetu a posílá push notifikace. Pro spoustu firem je to levnější a rychlejší cesta k mobilnímu zážitku než klasický nativní vývoj pro iOS a Android zvlášť. Otázka, kterou si klade čím dál víc firem, zní: kdy progresivní webová aplikace PWA skutečně stačí a kdy se vyplatí investovat do nativní appky?

V tomto článku se podíváme na to, co PWA technicky umožňuje, kde má limity a podle jakých kritérií se dá rozhodnout.

Co je PWA a jak funguje

PWA není samostatná technologie, ale soubor webových standardů, které dohromady dávají běžné webové stránce vlastnosti appky. Tři klíčové součásti jsou:

  • Service Worker – skript běžící na pozadí v prohlížeči, který cachuje data a umožňuje fungování i při slabém nebo žádném připojení.
  • Web App Manifest – JSON soubor, který definuje ikonu, název, barvy a způsob, jakým se appka spustí po nainstalování z domovské obrazovky.
  • HTTPS a responzivní design – PWA musí běžet na zabezpečeném připojení a přizpůsobit se jakémukoli zařízení.

Díky tomu si uživatel může PWA „nainstalovat" přímo z prohlížeče bez App Store či Google Play, appka se spouští ve vlastním okně bez adresního řádku a v mnoha případech funguje i offline. Přesnou technickou specifikaci manifestu a service workerů popisuje web.dev od Googlu.

Pro firmu to v praxi znamená jeden zdrojový kód pro web i appku – ne tři oddělené projekty pro web, iOS a Android.

PWA vs nativní aplikace: klíčové rozdíly

Rozhodnutí mezi PWA a nativním vývojem závisí na tom, co má appka dělat a s jakými zařízeními musí pracovat. Následující tabulka shrnuje hlavní rozdíly.

KritériumPWANativní aplikace
DistribucePřímo z webu, bez schvalováníApp Store / Google Play, review proces
Přístup k hardwaruOmezený (kamera, poloha, notifikace)Plný přístup ke všem API
Push notifikace na iOSOmezené, závisí na verzi SafariPlně funkční
Offline režimAno, přes Service WorkerAno, nativně
Údržba kóduJedna kódová bázeZpravidla dvě platformy (iOS, Android)
Výkon při náročných úloháchDobrý pro běžné UI, limity u 3D/ARNejvyšší dosažitelný výkon

Rozdíl v přístupu k nativním funkcím je důvod, proč firmy s vysokými nároky na hardware (například AR, Bluetooth periferie, náročné zpracování na pozadí) sahají po nativním vývoji nebo alespoň cross-platform frameworku. Porovnání nativního a cross-platform přístupu přes React Native rozebíráme v článku o vývoji mobilní aplikace: nativní vs. cross-platform.

Výhody progresivní webové aplikace

Hlavní výhody progresivní webové appky se dají shrnout do několika bodů:

  • Jeden kód pro všechny platformy. Změna se nasadí jednou a projeví se okamžitě u všech uživatelů – bez čekání na schválení appky v obchodě.
  • Nižší bariéra pro uživatele. Appku si nemusí stahovat z obchodu, stačí kliknout na „přidat na plochu" přímo z prohlížeče.
  • SEO viditelnost. Na rozdíl od nativní appky je obsah PWA indexovatelný ve vyhledávačích, takže funguje i jako běžný web.
  • Jednodušší testování a nasazení. Změny se ověřují v jednom prostředí, ne zvlášť pro iOS a Android.
  • Rychlejší první seznámení s appkou. Uživatel ji může vyzkoušet přímo ve webovém prohlížeči bez instalace a rozhodnout se až poté, jestli si ji „přidá na plochu".

Právě kombinace jednoho kódu a rychlého nasazení je důvod, proč se PWA vyplatí zvažovat u projektů, kde je hlavním cílem rychle ověřit poptávku nebo oslovit širší publikum bez nutnosti řešit dva samostatné nativní týmy.

Kdy PWA opravdu stačí

PWA je dobrá volba zejména v těchto situacích:

  • Appka slouží hlavně k zobrazování obsahu, objednávání, rezervacím nebo správě účtu – tedy běžné CRUD operace bez náročné grafiky.
  • Cílová skupina používá převážně Android nebo desktop, kde je podpora PWA (včetně push notifikací) nejkompletnější.
  • Firma potřebuje appku i web zároveň a nechce udržovat tři paralelní kódové základny.
  • Jde o interní nástroj pro zaměstnance, kde není potřeba přítomnost v App Store.

Naopak nativní vývoj nebo cross-platform řešení dává smysl, pokud appka potřebuje hluboký přístup k senzorům telefonu, offline zpracování velkých dat přímo na zařízení, spolehlivé push notifikace na iOS, nebo pokud je appka hlavním produktem firmy a její přítomnost v obchodech s appkami má marketingovou hodnotu.

Zkratka: PWA se vyplatí, když appka řeší obsah, objednávky a běžné firemní procesy. Pokud potřebujete hluboký přístup k hardwaru telefonu nebo spolehlivé push notifikace na iOS, je třeba zvážit nativní nebo cross-platform vývoj.

Technická omezení, o kterých je třeba vědět

PWA není univerzální řešení a má reálné limity, které je třeba znát před rozhodnutím:

  • iOS Safari dlouhodobě omezuje některé funkce PWA – zejména push notifikace byly na iOS podpořeny až v novějších verzích Safari a stále mají víc omezení než na Androidu. Aktuální stav podpory sleduje MDN Web Docs.
  • Přístup k nativním API (například Bluetooth, NFC, pokročilé senzory) je na webu omezenější než v nativním SDK.
  • Viditelnost v obchodech s appkami – PWA se sice dá publikovat i do některých obchodů, ale nefunguje to stejně plynule jako u nativní appky a ne vždy je to žádoucí z pohledu marketingové strategie.

Následující graf ilustruje obecný princip – kolik samostatné implementační práce si typicky vyžaduje pokrytí více platforem u PWA oproti dvěma oddělením nativním appkám (ilustrativní index, ne reálná data z konkrétního projektu):

Konkrétní rozsah práce se vždy liší podle rozsahu appky, počtu integrací a požadovaných nativních funkcí – graf ukazuje jen princip jedné kódové základny oproti dvěma paralelním.

Jak se rozhodnout

Při výběru mezi PWA a nativní appkou pomáhá odpovědět si na tři otázky: Jaké nativní funkce appka skutečně potřebuje? Jaká zařízení používá cílová skupina? A jak důležitá je přítomnost appky v App Store či Google Play pro důvěryhodnost značky? Odpovědi zpravidla ukážou, jestli je progresivní webová aplikace dostatečným řešením, nebo je lepší jít cestou nativního či cross-platform vývoje.

Pokud si nejste jistí, který směr dává pro váš projekt nejvíc smysl, podívejte se na naše řešení v oblasti vývoje softwaru nebo vývoje mobilních aplikací a domluvte si nezávaznou konzultaci přes kontaktní formulář.

INTERFASE