JFlow Labs / WIEDZA

PWA czy aplikacja natywna: co wybrać dla firmy i co działa na iPhonie w 2026 roku

PWA, czyli progressive web app, to aplikacja webowa, którą da się zainstalować z przeglądarki: dostaje ikonę na ekranie, otwiera się we własnym oknie, może działać bez sieci i wysyłać powiadomienia push, na iPhonie od iOS 16.4 po dodaniu do ekranu początkowego. Do narzędzi firmowych, takich jak zamówienia, zgłoszenia, rezerwacje czy panel klienta, PWA zwykle wystarcza i oznacza jeden kod zamiast dwóch aplikacji, bez przeglądów i opłat w sklepach. Aplikację natywną albo wieloplatformową (React Native, Flutter, Capacitor) wybierz wtedy, gdy potrzebujesz Bluetooth, NFC, lokalizacji w tle, wielodniowej pracy offline na iPhonie albo obecności w App Store i Google Play jako kanału pozyskiwania użytkowników.

Co to jest PWA i czym różni się od aplikacji natywnej?

PWA (progressive web app) to aplikacja zbudowana z technologii webowych, którą można zainstalować na telefonie i komputerze jak zwykłą aplikację. Aplikacja natywna to osobny program dla iOS i osobny dla Androida, pobierany ze sklepu.

MDN, dokumentacja webowa prowadzona przez Mozillę, opisuje PWA jako aplikację, która jak strona działa na wielu platformach z jednego kodu, a jak aplikacja systemowa daje się zainstalować, działa bez sieci i w tle oraz współpracuje z urządzeniem. W praktyce PWA to Twoja aplikacja webowa z trzema dodatkami: adresem po HTTPS, plikiem manifestu i, prawie zawsze, service workerem. Piszę jako programista z Mikołowa, który buduje aplikacje webowe dla firm zdalnie w całej Polsce, więc patrzę na ten wybór od strony kodu, który ktoś potem musi utrzymać.

Manifest to plik JSON z nazwą, ikonami, adresem startowym i trybem wyświetlania. Według MDN przeglądarki oparte na Chromium, czyli Chrome, Edge i Samsung Internet, proponują instalację dopiero wtedy, gdy manifest zawiera nazwę, ikony 192 i 512 pikseli, adres startowy oraz tryb wyświetlania, a pole prefer_related_applications nie jest włączone. Service worker to skrypt działający między aplikacją a siecią: przechowuje pliki w pamięci podręcznej, odpowiada, gdy nie ma połączenia, i odbiera powiadomienia push. Zarówno instalacja, jak i service worker wymagają HTTPS.

Aplikacja natywna powstaje w narzędziach producenta systemu, osobno dla iPhone’a i dla Androida. Korzysta z funkcji telefonu, które system udostępnia aplikacjom, trafia do ludzi przez App Store i Google Play, a każda jej wersja przechodzi przegląd sklepu. Pomiędzy tymi biegunami leżą frameworki wieloplatformowe, które z jednego kodu budują dwie aplikacje sklepowe; opisuję je w osobnej sekcji.

Warto to rozróżnić od razu: PWA nie jest osobnym produktem obok aplikacji webowej. To ta sama aplikacja, którą pracownik otwiera w przeglądarce na komputerze w biurze, tylko przygotowana do instalacji na telefonie. Dlatego wybór między aplikacją mobilną a webową sprowadza się zwykle do pytania, czy wersja webowa dostanie manifest i service worker, czy obok niej powstanie osobny kod do sklepów. Jeśli dopiero ustalasz, czy potrzebujesz aplikacji, czy wystarczy strona z formularzem, zacznij od przewodnika aplikacja webowa a strona internetowa.

Minimalny manifest, który spełnia wymagania instalacji w przeglądarkach opartych na Chromium. Plik podpinasz na każdej stronie aplikacji znacznikiem link z atrybutem rel="manifest".
{
  "name": "Zlecenia serwisowe",
  "short_name": "Zlecenia",
  "start_url": "/zlecenia/",
  "display": "standalone",
  "background_color": "#ffffff",
  "theme_color": "#0f172a",
  "icons": [
    { "src": "/icons/192.png", "sizes": "192x192", "type": "image/png" },
    { "src": "/icons/512.png", "sizes": "512x512", "type": "image/png" }
  ]
}

Jakie funkcje telefonu działają w przeglądarce, a jakie nie?

Aplikacja webowa obsługuje dziś instalację, powiadomienia push, pracę offline, aparat i lokalizację na obu systemach, ale na iPhonie nie połączy się z urządzeniem przez Bluetooth ani nie odczyta tagu NFC. Ograniczenia dotyczą głównie iPhone’a, bo tam przeglądarki działają na silniku Safari.

Powiadomienia push działają we wszystkich głównych przeglądarkach, bo MDN oznacza Push API jako dostępne powszechnie od marca 2023 r. Na iPhonie i iPadzie warunek jest jeden, ale twardy: według WebKitu od iOS i iPadOS 16.4 powiadomienia dostaje tylko aplikacja dodana do ekranu początkowego, a o zgodę może poprosić wyłącznie w reakcji na gest użytkownika. Takie powiadomienia pojawiają się na ekranie blokady, w centrum powiadomień i na sparowanym Apple Watch, a aplikacja może ustawiać licznik na ikonie.

Aparat i lokalizacja działają w przeglądarkach od lat. MDN podaje, że dostęp do kamery i mikrofonu przez getUserMedia jest dostępny we wszystkich głównych przeglądarkach od września 2017 r., a Geolocation API od lipca 2015 r. W obu przypadkach użytkownik musi wyrazić zgodę, a aplikacja musi działać po HTTPS. To wystarcza, żeby technik dołączył zdjęcie usterki do zgłoszenia albo zobaczył na mapie najbliższe zlecenie.

Granica przebiega przy sprzęcie i pracy w tle. WebKit na swojej stronie o ochronie przed śledzeniem wymienia funkcje, których na razie nie wdraża ze względu na ryzyko identyfikowania użytkowników (fingerprinting) i bezpieczeństwo: Web Bluetooth, Web NFC, Web USB, Serial API, WebHID i geolokalizację w tle. Na Androidzie jest lepiej: według dokumentacji Chrome przeglądarka obsługuje tam Web NFC od wersji 89 i część Web Bluetooth, ale MDN oznacza Web Bluetooth jako technologię eksperymentalną, która nie działa w części popularnych przeglądarek. Podobnie jest z synchronizacją w tle: Background Synchronization API nie jest dostępne we wszystkich głównych przeglądarkach, więc nie warto opierać na nim procesu, od którego zależą pieniądze.

Co PWA potrafi na Androidzie i iPhonie w porównaniu z aplikacją natywną, według dokumentacji MDN, WebKit i Apple.
FunkcjaPWA na AndroidziePWA na iPhonieAplikacja natywna lub wieloplatformowa
Instalacja z ikonąPrzeglądarka sama proponuje instalację; Chrome na telefonach z usługami Google i Samsung Internet na telefonach Samsunga instalują ją jako pełną aplikację w systemie (WebAPK).Ręcznie z menu udostępniania; od iOS 16.4 także w Chrome, Edge i Firefoksie, a od iOS 26 każda dodana strona otwiera się domyślnie jako aplikacja.Ze sklepu, po przejściu przeglądu.
Własny przycisk „Zainstaluj”Tak, przez zdarzenie beforeinstallprompt.Nie, iOS go nie obsługuje; trzeba pokazać instrukcję.Nie dotyczy, link prowadzi do sklepu.
Powiadomienia pushTak.Tak, od iOS 16.4, tylko po dodaniu do ekranu początkowego.Tak.
Aparat, mikrofon, lokalizacjaTak, po zgodzie użytkownika i przez HTTPS.Tak, po zgodzie użytkownika i przez HTTPS.Tak, także lokalizacja w tle w granicach zasad systemu.
Bluetooth, NFC, USBCzęściowo: Chrome obsługuje Web NFC od wersji 89 i część Web Bluetooth, ale MDN oznacza Web Bluetooth jako eksperymentalne.Nie, WebKit nie wdraża Web Bluetooth, Web NFC ani Web USB.Tak.
Praca offlineTak, przez service worker i pamięć podręczną.Tak, ale Safari usuwa dane stron nieużywanych przez 7 dni; aplikacje z ekranu początkowego są z tej reguły wyłączone.Tak, z pełną kontrolą nad bazą na urządzeniu.
Synchronizacja w tleCzęściowo, zależnie od przeglądarki.Nie opieraj na niej procesu.Tak, w granicach zasad systemu.
Obecność w sklepieMożliwa w Google Play przez Trusted Web Activity.Tylko jako aplikacja, która wykracza poza opakowaną stronę.Tak.
Wydanie nowej wersjiWdrożenie na serwer; nowy service worker domyślnie przejmuje aplikację po zamknięciu okien ze starą wersją.Tak samo jak na Androidzie.Przez przegląd sklepu i aktualizację u użytkownika.

Kiedy aplikacja natywna jest naprawdę potrzebna?

Aplikacja natywna lub wieloplatformowa jest potrzebna, gdy telefon ma zrobić coś, czego przeglądarka nie potrafi albo czego Apple nie udostępnia stronom. Poniżej sześć takich sytuacji; jeśli żadna Cię nie dotyczy, zacznij od wersji webowej.

Formularze, listy zleceń, statusy, zdjęcia z aparatu, mapa z bieżącą pozycją, powiadomienia i logowanie działają w przeglądarce zarówno na Androidzie, jak i na iPhonie. Jeśli Twoje narzędzie składa się tylko z takich elementów, osobny kod do sklepów oznacza drugą bazę kodu do poprawiania przy każdej zmianie, a użytkownik nie dostanie w zamian żadnej nowej funkcji.

A wydajność? W narzędziach firmowych rzadko przesądza o wyborze, bo formularz, lista zleceń czy mapa nie obciążają telefonu. Różnicę widać przy ciężkiej grafice 3D, obróbce wideo i długich, mocno animowanych listach, choć i ta granica się przesuwa: według notatek WebKitu Safari 26 obsługuje na iPhonie WebGPU, czyli dostęp stron do procesora graficznego. Jeśli aplikacja ma głównie pokazywać i zbierać dane, szybkość serwera i ilość przesyłanych danych zmienią więcej niż wybór technologii na telefonie.

Weźmy firmę serwisową: technik odbiera zlecenie, robi zdjęcia, dopisuje użyte części i zamyka zlecenie, czasem w piwnicy bez zasięgu. Wszystko to da się zrobić w przeglądarce, pod warunkiem że dane trafią na serwer zaraz po odzyskaniu sieci. Jeśli jednak technik ma drukować protokół na przenośnej drukarce Bluetooth, a firma wydaje iPhone’y, potrzebna jest warstwa natywna, choćby cienka, przez Capacitor. Szerzej o porządkowaniu pracy takiej firmy piszę w przewodniku automatyzacja firmy instalacyjnej i serwisowej.

Zlecenie serwisowe w PWA: aplikacja powiadamia technika, technik pracuje także bez zasięgu, a kierownik decyduje o pracach spoza zlecenia.
  1. 01 · StartKlient zgłasza usterkęFormularz na stronie albo telefon do biura; zgłoszenie trafia do aplikacji z adresem, opisem i zdjęciem.Formularz www
  2. 02 · AutomatPowiadomienie do technikaAplikacja przypisuje zlecenie według rejonu i wysyła push na telefon technika, także na iPhone z PWA na ekranie początkowym.PWA + Web Push
  3. 03 · AutomatPraca bez zasięguTechnik dodaje zdjęcia i użyte części bez sieci; aplikacja trzyma je na telefonie i wysyła na serwer po odzyskaniu połączenia.Service worker
  4. 04 · CzłowiekKierownik zatwierdza dodatkowe praceGdy naprawa wykracza poza zlecenie, kierownik akceptuje wycenę albo dzwoni do klienta. Bez tej decyzji technik nie zaczyna.
  5. 05 · EfektKlient dostaje potwierdzeniePo zamknięciu zlecenia klient dostaje e-mail z protokołem i zdjęciami, a biuro ma komplet danych do faktury.

Odzyskany czasKierownik przestaje dzwonić do techników po statusy i zajmuje się wycenami oraz reklamacjami, które wymagają jego decyzji.

Co wybrać w typowych sytuacjach w firmie?

Panel klienta, aplikację dla techników, rezerwacje i narzędzie wewnętrzne buduję jako PWA. Aplikację natywną lub wieloplatformową wybieram do Bluetooth na iPhonie, lokalizacji w tle i produktu, który ludzie mają znaleźć w sklepie. Tabela rozpisuje to na typowe sytuacje w firmie.

Jeśli w środkowej kolumnie wyszła Ci aplikacja ze sklepu tylko dlatego, że „klienci tego oczekują”, sprawdź to na danych: ilu z nich wraca codziennie, ilu prosi o powiadomienia, ilu dzwoni z pytaniem o status. Aplikację instaluje się po to, żeby do czegoś wracać; jeśli nie ma powodu do codziennego powrotu, ikona na ekranie niczego nie zmieni.

Dwa przypadki z tabeli opisuję w osobnych przewodnikach: panel klienta B2B, w którym odbiorcy sami sprawdzają zamówienia i faktury, oraz system rezerwacji online, gdzie pytanie brzmi zwykle, czy wystarczy gotowe narzędzie.

Typowe sytuacje w firmie i rozsądny punkt wyjścia. Tabela opiera się na możliwościach i zasadach sklepów opisanych w tym przewodniku.
SytuacjaCo wybraćDlaczego
Panel klienta B2B: zamówienia, faktury, statusyPWAKlient loguje się z komputera i z telefonu; sklep nic nie dodaje, a link w mailu wystarczy do instalacji.
Aplikacja dla techników w terenie: zlecenia, zdjęcia, częściPWA z instrukcją instalacji na iPhonieAparat, lokalizacja i push działają na obu systemach; dane trzeba szybko synchronizować z serwerem.
Druk etykiet albo odczyt czujników przez Bluetooth na iPhonieCapacitor albo aplikacja natywnaWebKit nie wdraża Web Bluetooth, więc żadna przeglądarka na iPhonie tego nie zrobi.
Rezerwacje wizyt, zapisy na szkolenia stacjonarnePWAPłatność za usługę wykonywaną poza aplikacją i tak idzie poza systemem sklepu; aplikacja otwiera się z linku w potwierdzeniu.
Kursy online, subskrypcja treściPWA z płatnością przez operatora albo aplikacja ze sklepu, jeśli sklep jest kanałem sprzedażyW sklepie zapłacisz prowizję od sprzedaży cyfrowej; w PWA tylko opłatę operatora płatności.
Produkt konsumencki, który ludzie mają znaleźć w sklepieAplikacja wieloplatformowaPWA nie pojawi się w wynikach App Store, a Trusted Web Activity pokrywa tylko Google Play.
Ewidencja przejazdów lub podgląd floty w tleAplikacja natywna lub wieloplatformowaLokalizacja w tle wymaga natywnych bibliotek; WebKit jej nie wdraża.
Narzędzie wewnętrzne na służbowych AndroidachPWAChrome z usługami Google instaluje PWA jako pełną aplikację w systemie, bez sklepu i przeglądów.
Sprawdzenie pomysłu przed dużym budżetemPWAJeden kod i poprawki wdrażane w dniu zgłoszenia, a po sukcesie ten sam kod można opakować w Capacitor.

Ile kosztuje aplikacja webowa, a ile mobilna na iOS i Androida?

PWA kosztuje mniej więcej tyle co aplikacja webowa, bo to ta sama aplikacja z dodaną instalacją, trybem offline i powiadomieniami. Aplikacja mobilna to jedna lub dwie aplikacje do zbudowania, dwa procesy wydawnicze i coroczne dostosowania do wymagań sklepów.

Skalę różnicy widać w cenniku, który warszawska firma Twój Software publikuje na swojej stronie: aplikacja webowa lub PWA od 8 000 zł netto w 2–⁠6 tygodni, MVP na Androida od 12 000 zł netto, na iOS od 15 000 zł netto, aplikacja na obie platformy we Flutterze lub React Native 15 000–⁠80 000 zł netto w 2–⁠4 miesiące, a złożony produkt 100 000–⁠250 000 zł netto i więcej. To widełki jednego wykonawcy, a nie oferta; szersze zestawienie cen aplikacji webowych u kilku polskich firm zebrałem w przewodniku ile kosztuje aplikacja webowa.

Ważniejsza od ceny startu jest liczba rzeczy, które trzeba potem utrzymywać. Przy wersji webowej masz jeden kod, jeden serwer i jedno wdrożenie, a poprawka dociera do wszystkich przy kolejnym uruchomieniu. Przy dwóch aplikacjach natywnych każda zmiana powstaje dwa razy, przechodzi dwa przeglądy i czeka, aż użytkownik zaktualizuje aplikację. Niezależnie od wyboru zostaje backend z bazą danych, logiką i uprawnieniami; w obu wariantach to ta sama praca, bo telefon jest tylko oknem do danych.

Nie pomijaj iPhone’ów w rachunku. W Polsce Android odpowiadał we wrześniu 2026 r. za 63,75% wyświetleń stron z urządzeń mobilnych, a iOS za 36,2% według StatCounter. Ponad jedna trzecia mobilnych odsłon pochodzi więc z iPhone’ów, czyli z systemu, na którym przeglądarka ma najwięcej ograniczeń. Przy aplikacji wewnętrznej zamiast statystyk kraju policz telefony, które firma rzeczywiście wydaje pracownikom.

Przy pierwszej wersji radzę ograniczać liczbę kanałów, a nie jakość: jedna dopracowana wersja zamiast trzech na start. Co zostawić w pierwszej wersji, a czego nie wolno wyciąć, opisuję w przewodniku ile kosztuje MVP aplikacji.

Cenniki i przepisy się zmieniają. Linki do źródeł są na dole strony.

Co płacisz na starcie i co wraca co roku przy trzech podejściach. Kwoty z cennika Twój Software i z opłat sklepów; konkretną wycenę daje dopiero opis zakresu.
PozycjaPWAAplikacja wieloplatformowaDwie aplikacje natywne
Pierwsza wersjaOd 8 000 zł netto (aplikacja webowa lub PWA)15 000–⁠80 000 zł netto na obie platformy (Flutter, React Native)Od 12 000 zł netto za MVP na Androida plus od 15 000 zł netto za MVP na iOS (Twój Software podaje ceny za jedną platformę)
Kod do utrzymaniaJeden, wspólny z wersją na komputerJeden dla obu telefonów; przy Capacitorze ten sam co w wersji webowejDwa dla telefonów i osobny, jeśli potrzebna jest wersja webowa
Opłaty sklepówBrak99 USD rocznie w Apple i 25 USD jednorazowo w Google Play99 USD rocznie w Apple i 25 USD jednorazowo w Google Play
Wydanie poprawkiWdrożenie na serwerDwa przeglądy w sklepachDwa przeglądy i dwie zmiany w kodzie
Coroczne dostosowaniaTesty na nowych wersjach systemów i przeglądarekNowy docelowy poziom API Androida, zgodność z aktualnym iOSTo samo, w dwóch bazach kodu
Backend, baza, uprawnieniaTen sam kosztTen sam kosztTen sam koszt

React Native, Flutter czy Capacitor: kiedy wybrać drogę pośrednią?

Aplikacja wieloplatformowa to jeden kod, z którego powstają aplikacje do App Store i Google Play. Daje dostęp do sprzętu, którego brakuje przeglądarce, ale zostawia wszystkie koszty, przeglądy i zasady sklepów.

Jeden kod nie oznacza, że płacisz połowę ceny dwóch aplikacji. Obie wersje trzeba testować na urządzeniach, publikować w dwóch sklepach i dostosowywać do corocznych wymagań, a funkcje mocno związane z systemem i tak wymagają fragmentów kodu natywnego. Zyskujesz jedną logikę ekranów, jeden zestaw testów i jedną listę błędów do poprawienia.

Moja reguła wyboru jest prosta. Jeśli aplikacja ma już wersję webową i brakuje jej jednej funkcji telefonu, zaczynam od Capacitora. Jeśli od początku powstaje aplikacja mobilna z rozbudowanym interfejsem i animacjami, rozważam Fluttera albo React Native, zależnie od tego, w czym zespół klienta będzie ją utrzymywał po wdrożeniu. Kod pisany osobno pod iOS i Androida zostawiam funkcjom, których nie da żadna wtyczka.

Czy aplikacje webowe działają na iPhonie w Polsce i w Unii?

Tak. Aplikacje webowe dodane do ekranu początkowego działają na iPhonie w Polsce tak samo jak w reszcie świata, choć na początku 2024 roku Apple zapowiadało ich wyłączenie w Unii.

Przy dostosowaniu iOS 17.4 do aktu o rynkach cyfrowych (DMA) Apple ogłosiło, że usuwa w UE aplikacje webowe z ekranu początkowego, i w wersjach beta systemu otwierały się one jak zwykłe zakładki. Potem firma zmieniła zdanie, powołując się na prośby o zachowanie tej funkcji. W zaktualizowanym komunikacie dla deweloperów napisała, że zachowuje tę funkcję w UE, że takie aplikacje nadal działają bezpośrednio na WebKicie i jego architekturze bezpieczeństwa oraz że wrócą wraz z premierą iOS 17.4 na początku marca 2024 r. Ten epizod pokazuje ryzyko, o którym warto pamiętać: o tym, co aplikacje webowe potrafią na iPhonie, decyduje jeden producent.

Drugie ograniczenie wynika z zasad App Store. Wytyczna 2.5.6 wymaga, żeby aplikacje przeglądające internet korzystały z WebKitu, a inny silnik dopuszcza tylko z osobnym uprawnieniem dla UE i Japonii. Dlatego przeglądarki na iPhonie mają zwykle te same możliwości co Safari i nie da się obejść braku Web Bluetooth, prosząc pracownika o instalację innej przeglądarki.

W iOS i iPadOS 26 Apple poszło w przeciwnym kierunku. WebKit pisze w notatkach do Safari 26, że każda strona dodana do ekranu początkowego otwiera się teraz domyślnie jako aplikacja, nawet bez manifestu; kto woli zwykłą zakładkę, wyłącza tę opcję przy dodawaniu. Jedno się nie zmieniło: użytkownik nadal sam dodaje aplikację z menu udostępniania, bo iOS nie obsługuje zdarzenia beforeinstallprompt, dzięki któremu na Androidzie można pokazać własny przycisk „Zainstaluj”.

Trzeci szczegół dotyczy danych zapisanych na telefonie. Według strony WebKitu o ochronie przed śledzeniem Safari usuwa po 7 dniach bez interakcji z witryną wszystkie dane zapisywane skryptami: IndexedDB, LocalStorage, rejestracje service workera i jego pamięć podręczną. Domena aplikacji dodanej do ekranu początkowego jest z tej reguły wyłączona, a WebKit chętniej przyznaje jej trwały tryb zapisu. Wniosek dla firmy: jeśli pracownik ma zapisywać coś bez sieci, aplikacja musi być zainstalowana, a dane powinny trafiać na serwer przy pierwszej okazji.

  1. Wyślij link do aplikacji, nie do strony głównejPracownik albo klient otwiera adres aplikacji w Safari, w Chrome, Edge lub Firefoksie. Link w mailu powitalnym prowadzi prosto do ekranu startowego.
  2. Menu udostępniania i dodanie do ekranu początkowegoUżytkownik stuka przycisk udostępniania i wybiera dodanie do ekranu początkowego. Od iOS 26 opcja otwierania jako aplikacja jest domyślnie włączona.
  3. Pierwsze uruchomienie z ikonyDopiero aplikacja uruchomiona z ekranu początkowego działa we własnym oknie, ma osobne dane i może prosić o powiadomienia.
  4. Prośba o powiadomienia dopiero po dotknięciuAplikacja pokazuje przycisk „Włącz powiadomienia” z jednym zdaniem, o czym będą, i dopiero po jego dotknięciu iOS pyta o zgodę. Wyłączyć je można w Ustawieniach, jak w każdej aplikacji.

Ile kosztuje publikacja w App Store i Google Play i jaką prowizję pobierają sklepy?

Konto w Apple Developer Program kosztuje 99 USD rocznie, a w Google Play jednorazowo 25 USD. Prowizje od sprzedaży cyfrowej w UE zmieniły się w 2026 roku i dla polskich użytkowników nie wynoszą już klasycznych 30 i 15 procent.

Opłaty za konta są stałe i niewielkie: Apple podaje 99 USD za rok członkostwa, w walucie lokalnej tam, gdzie jest dostępna, a Google Play pobiera jednorazowo 25 USD przy rejestracji. Firma zakładająca konto organizacji w Apple potrzebuje numeru D-U-N-S, adresu e-mail w domenie firmy i działającej strony internetowej. Jednoosobowa działalność rejestruje się jako osoba fizyczna, a w App Store jako sprzedawca widnieje wtedy imię i nazwisko właściciela, nie nazwa firmy.

Prowizje dotyczą wyłącznie sprzedaży treści i usług cyfrowych w aplikacji. Według strony Apple o zmianach w UE od 1 października 2026 r. sklepy w Unii mają jednolite warunki: 26% od sprzedaży przez Apple In-App Purchase i 15% dla uczestników App Store Small Business Program, czyli deweloperów z wpływami ze sklepu do 1 mln USD w poprzednim roku kalendarzowym, oraz dla subskrypcji odnawianych po pierwszym roku. Przy alternatywnym operatorze płatności w aplikacji stawki wynoszą 20% i 10%, a link do zakupu na stronie obciąża sprzedaż z 7 dni po kliknięciu prowizją 15% albo 10%. Poza UE Apple podaje standardowo 30%, a w programie dla małych firm 15%.

Według pomocy Play Console Google Play od 30 czerwca 2026 r. liczy opłaty od transakcji z użytkownikami z Europejskiego Obszaru Gospodarczego inaczej niż wcześniej. Pierwszy milion dolarów rocznych przychodów obciąża 10% opłaty serwisowej plus 5% opłaty za rozliczenie, gdy płatność idzie przez Google Play Billing. Powyżej tego progu subskrypcje kosztują nadal 10% plus 5%, inne transakcje od użytkowników, którzy pierwszy raz zainstalowali lub zaktualizowali aplikację od tej daty, 20% plus 5%, a od wcześniejszych instalacji 25% plus 5%. W krajach, do których nowy układ jeszcze nie dotarł, deweloper zapisany do progu 15% płaci dotychczasowe stawki: 15% od pierwszego miliona dolarów rocznie i 30% powyżej.

Dla firm, które sprzedają towary i usługi, ważniejsze jest co innego. Wytyczna 3.1.3(e) App Store wymaga, żeby towary fizyczne i usługi wykonywane poza aplikacją były opłacane innymi metodami niż płatność wewnątrz aplikacji, na przykład Apple Pay albo kartą, a zasady płatności Google Play wprost zakazują używania Google Play Billing przy towarach fizycznych, przejazdach, usługach sprzątania czy biletach na wydarzenia. Przy zamówieniu hurtowym, rezerwacji wizyty, zleceniu serwisowym czy szkoleniu stacjonarnym prowizja sklepu w ogóle się nie pojawia, niezależnie od tego, czy aplikacja jest w sklepie. Realną różnicę robi dopiero przy subskrypcjach, kursach online i dostępie do treści, i wtedy PWA przyjmująca płatność przez zwykłego operatora wychodzi taniej.

Do tego dochodzą wymagania, które kosztują czas zamiast pieniędzy. Osobiste konto w Google Play założone po 13 listopada 2023 r. musi przed publikacją przeprowadzić zamknięty test z co najmniej 12 testerami zapisanymi nieprzerwanie przez 14 dni, a wniosek o dostęp do produkcji Google rozpatruje zwykle w ciągu 7 dni. Od 31 sierpnia 2026 r. nowe aplikacje i aktualizacje w Google Play muszą celować w Android 16 (API 36), więc aplikacja w sklepie wymaga corocznych prac tylko po to, żeby dalej się aktualizować. Wyjątkiem są aplikacje prywatne, udostępniane wyłącznie użytkownikom jednej organizacji. Jak w ogóle przyjmować płatności w aplikacji webowej, opisuję w przewodniku o Stripe dla polskiej firmy.

Koszty i wymagania sklepów w porównaniu z PWA. Prowizje dotyczą wyłącznie sprzedaży treści i usług cyfrowych w aplikacji, sprzedawanych użytkownikom z UE.
PozycjaApp Store (Apple)Google PlayPWA poza sklepem
Konto dewelopera99 USD rocznie25 USD jednorazowoBrak; płacisz za domenę i serwer, które aplikacja webowa ma i tak.
Prowizja standardowa26% przez Apple In-App Purchase, 20% przy alternatywnym operatorze20% + 5% opłaty za rozliczenie dla nowych instalacji, powyżej pierwszego miliona USD rocznieBrak prowizji sklepu; tylko opłata operatora płatności.
Stawka obniżona15% w App Store Small Business Program, 10% przy alternatywnym operatorze10% + 5% opłaty za rozliczenie od pierwszego miliona USD rocznieNie dotyczy.
Towary fizyczne i usługi poza aplikacjąBez prowizji; płatność poza Apple In-App Purchase (wytyczna 3.1.3(e)).Bez prowizji; Google Play Billing nie wolno tu używać.Bez prowizji.
Przegląd przed publikacjąApp Review każdej wersji.Przegląd; dla nowych kont osobistych dodatkowo test z 12 testerami przez 14 dni.Brak; wdrażasz wtedy, kiedy chcesz.
Wymuszone dostosowaniaOd 28 kwietnia 2026 r. każdą wysyłaną wersję trzeba zbudować w Xcode 26 lub nowszym, z SDK dla iOS 26.Od 31 sierpnia 2026 r. cel Android 16 (API 36) dla nowych aplikacji i aktualizacji.Testy aplikacji na nowych wersjach systemów i przeglądarek.

Czy PWA można opublikować w Google Play i App Store?

PWA można opublikować w Google Play przez Trusted Web Activity. W App Store przejdzie tylko aplikacja, która daje coś więcej niż opakowana strona, bo wytyczna 4.2 odrzuca przepakowane witryny.

Trusted Web Activity to opisany przez Google sposób otwierania PWA z aplikacji na Androida: aplikacja ze sklepu uruchamia Twoją stronę w przeglądarce użytkownika na pełnym ekranie, a to, że aplikacja i strona należą do tego samego wydawcy, potwierdza się plikiem Digital Asset Links. Treść renderuje przeglądarka, więc zmiany na stronie trafiają do użytkowników bez nowej wersji w sklepie, a sama aplikacja nie ma dostępu do ciasteczek ani pamięci strony. MDN wskazuje też narzędzie PWABuilder, które pakuje PWA do Google Play, Microsoft Store, Meta Quest Store i App Store.

App Store ocenia takie paczki surowiej. Wytyczna 4.2 mówi, że aplikacja ma zawierać funkcje, treści i interfejs, które wynoszą ją ponad przepakowaną stronę internetową, a punkt 4.2.2 wyklucza aplikacje będące głównie materiałem marketingowym, wycinkiem strony, agregatorem treści albo zbiorem linków. Punkt 4.2.6 odrzuca aplikacje z komercyjnych szablonów i generatorów, jeśli nie zgłasza ich sam dostawca treści. Opakowana PWA, która nie robi niczego ponad przeglądarkę, ma więc realne ryzyko odrzucenia.

Jeśli sklep Apple jest Ci potrzebny, rozsądniejszą drogą bywa Capacitor. Ten sam kod webowy działa wtedy w natywnym kontenerze, a tam, gdzie trzeba, sięga do natywnych bibliotek iOS i Androida przez wtyczki pisane w Swifcie i Javie. Do App Store trafia aplikacja, która rzeczywiście robi więcej niż strona, a pracownicy w biurze dalej korzystają z tej samej wersji w przeglądarce.

Jak chronić dane firmy w aplikacji na telefonie?

PWA jest tak bezpieczna jak aplikacja webowa, na której stoi: działa wyłącznie po HTTPS, a dane i uprawnienia chroni serwer. Telefon w obu wariantach trzeba traktować jak urządzenie, które może zginąć.

Adres subskrypcji push jest jednocześnie kluczem do wysyłki: MDN zaleca trzymać go w tajemnicy i zabezpieczyć zapisywanie subskrypcji przed atakami CSRF, bo kto zna ten adres, może wysłać powiadomienie do Twoich użytkowników. Treść powiadomienia szyfruje się kluczem z subskrypcji. Na iPhonie powiadomienia z PWA idą przez Apple Push Notification service, tę samą usługę co w aplikacjach natywnych, i nie wymagają członkostwa w Apple Developer Program; WebKit zaleca tylko dopuścić adresy w domenie push.apple.com, jeśli serwer ma ograniczony ruch wychodzący.

Powiadomienia pojawiają się na zablokowanym ekranie, więc nie umieszczam w nich danych, których nie powinien przeczytać ktoś postronny: kwot, nazwisk klientów, adresów. Wystarczy „Nowe zlecenie w Twoim rejonie”, a szczegóły pokazuje aplikacja po odblokowaniu telefonu i zalogowaniu.

Ważniejsze od wyboru technologii jest to, gdzie leżą dane. Na telefonie trzymam tylko to, co potrzebne do pracy bez sieci, i wysyłam to na serwer przy pierwszej okazji. Serwer przy każdym żądaniu sam ustala, kim jest użytkownik, na podstawie sesji i nie ufa identyfikatorom przysłanym z telefonu. Ta zasada obowiązuje tak samo w aplikacji natywnej, bo jej kod też da się rozebrać, a obowiązki wobec danych osobowych wynikają z tego, co przetwarzasz, a nie z tego, czy aplikacja jest w sklepie.

Jak zacząć od wersji webowej i nie zamknąć sobie drogi do sklepu?

Najbezpieczniej zbudować najpierw dobrą aplikację webową z manifestem i service workerem, sprawdzić ją na prawdziwych użytkownikach i dopiero potem decydować o sklepie. Kod webowy nie przepada, jeśli później okaże się potrzebny Capacitor albo Trusted Web Activity.

Tak buduję aplikacje w JFlow Labs: jeden kod webowy, który działa na komputerze w biurze i na telefonie w terenie, a warstwę natywną dokładam dopiero wtedy, gdy praca na prawdziwych danych pokaże, że jest potrzebna. Prowadzę studio sam, więc projekt interfejsu, backend i decyzja o sklepie powstają w jednej głowie, a Ty rozmawiasz bezpośrednio z osobą, która pisze kod. Zakres takiej współpracy opisuję na stronie aplikacje webowe dla firm.

Jeśli zastanawiasz się, czy Twoja aplikacja zmieści się w PWA, napisz mi, kto będzie z niej korzystał, na jakich telefonach, jakiej funkcji urządzenia nie możesz sobie odpuścić i z jakimi systemami ma się łączyć, na przykład z ERP, CRM albo KSeF. Odpowiadam w ciągu jednego dnia roboczego. Pracuję z Mikołowa na Śląsku, zdalnie z firmami z całej Polski.

  1. Spisz funkcje telefonu, których naprawdę potrzebujeszAparat, lokalizacja, push, praca offline, Bluetooth, NFC. Przy każdej zapisz, na jakim systemie i jak często będzie używana. Ta lista rozstrzyga więcej niż porównanie technologii.
  2. Policz iPhone’y wśród użytkownikówStatystyki strony albo lista telefonów służbowych. Przy przewadze iPhone’ów przejdź przez tabelę możliwości zdanie po zdaniu, bo to tam PWA ma najwięcej ograniczeń.
  3. Zbuduj aplikację webową gotową do instalacjiHTTPS, manifest z ikonami 192 i 512 pikseli, service worker z pamięcią podręczną i czytelnym komunikatem, gdy nie ma sieci.
  4. Przygotuj ekran instalacji dla iPhone’aNa Androidzie wystarczy przycisk, na iPhonie trzy kroki z obrazkami. Prośbę o powiadomienia pokaż dopiero po instalacji, z informacją, o czym będą.
  5. Sprawdź aplikację na kilku osobach przez dwa tygodniePatrz na instalacje, powroty i zgłaszane problemy. Na iPhonie sprawdź przede wszystkim, czy ludzie wiedzą, że aplikację trzeba dodać do ekranu początkowego, bo bez tego nie dostaną powiadomień.
  6. Do sklepu idź dopiero po brakującą funkcjęJeśli brakuje tylko obecności w Google Play, wystarczy Trusted Web Activity. Jeśli brakuje funkcji telefonu na obu systemach, dodaj Capacitor, a kod natywny pisz tylko dla tego, czego nie da żadna wtyczka.

Pytania i odpowiedzi

Czy PWA działa na iPhonie?

Tak. PWA otwiera się na iPhonie w Safari i w innych przeglądarkach, a po dodaniu do ekranu początkowego działa jak osobna aplikacja z własną ikoną i oknem; od iOS 26 każda dodana strona otwiera się domyślnie jako aplikacja webowa. iPhone nie udostępnia jednak stronom Bluetooth, NFC, USB ani lokalizacji w tle, a instalację użytkownik musi wykonać ręcznie z menu udostępniania.

Czy PWA może wysyłać powiadomienia push na iPhone’a?

Tak, od iOS i iPadOS 16.4, ale tylko wtedy, gdy użytkownik doda aplikację do ekranu początkowego. Prośbę o zgodę PWA może wyświetlić wyłącznie po geście użytkownika, na przykład po dotknięciu przycisku „Włącz powiadomienia”. Powiadomienia pojawiają się na ekranie blokady i w centrum powiadomień jak z każdej innej aplikacji, a do ich wysyłki nie potrzeba konta w Apple Developer Program.

Czy PWA działa bez internetu?

Tak, w zakresie, który zaprojektujesz: service worker przechowuje pliki aplikacji i wybrane odpowiedzi serwera, a dane wpisane bez sieci można zapisać na urządzeniu i wysłać później. Na iPhonie Safari usuwa dane stron nieużywanych przez 7 dni, ale aplikacje dodane do ekranu początkowego są z tej reguły wyłączone. Przy wielodniowej pracy bez zasięgu bezpieczniejsza jest aplikacja natywna z własną bazą na urządzeniu.

Czy PWA można opublikować w Google Play i App Store?

W Google Play tak, przez Trusted Web Activity, czyli aplikację, która otwiera Twoją PWA na pełnym ekranie w przeglądarce użytkownika. W App Store opakowana strona ryzykuje odrzucenie, bo wytyczna 4.2 wymaga funkcji wykraczających poza przepakowaną witrynę. Jeśli sklep Apple jest potrzebny, lepiej dodać funkcje natywne przez Capacitor albo zbudować aplikację wieloplatformową.

Ile kosztuje konto deweloperskie w App Store i Google Play?

Apple Developer Program kosztuje 99 USD rocznie, w walucie lokalnej tam, gdzie jest dostępna, a rejestracja konta w Google Play to jednorazowe 25 USD. Konto organizacji w Apple wymaga numeru D-U-N-S, a jednoosobowa działalność zakłada konto osoby fizycznej z imieniem i nazwiskiem jako sprzedawcą. PWA poza sklepami nie wymaga żadnego z tych kont.

Czy od sprzedaży w aplikacji trzeba płacić prowizję Apple lub Google?

Tylko od sprzedaży treści i usług cyfrowych, takich jak subskrypcje czy dostęp do kursu. Za towary fizyczne i usługi wykonywane poza aplikacją, na przykład zamówienia, przejazdy czy wizyty, Apple i Google wymagają płatności poza swoimi systemami rozliczeń, więc prowizji sklepu nie ma. W UE Apple pobiera od 1 października 2026 r. 26% albo 15% w programie dla małych firm, a Google Play od 30 czerwca 2026 r. 10% plus 5% opłaty za rozliczenie od pierwszego miliona dolarów rocznie.

Czy PWA ma dostęp do aparatu, GPS, Bluetooth i NFC?

Aparat i lokalizacja działają w PWA we wszystkich głównych przeglądarkach, po zgodzie użytkownika i przez HTTPS. Bluetooth i NFC nie działają na iPhonie, bo WebKit nie wdraża Web Bluetooth ani Web NFC, a na Androidzie Web Bluetooth jest eksperymentalne i dostępne tylko w części przeglądarek. Jeśli aplikacja musi łączyć się z drukarką czy czytnikiem, potrzebna jest warstwa natywna.

Co jest tańsze: PWA, Flutter czy dwie aplikacje natywne?

Zwykle najtańsza w budowie i utrzymaniu jest PWA, bo to jeden kod dla komputera i obu systemów telefonów, bez opłat i przeglądów w sklepach. Twój Software podaje od 8 000 zł netto za aplikację webową lub PWA, od 12 000 zł netto za MVP na Androida, od 15 000 zł netto na iOS i 15 000–⁠80 000 zł netto za aplikację na obie platformy we Flutterze lub React Native. Backend, baza danych i uprawnienia kosztują tyle samo w każdym wariancie.

Czy PWA jest widoczna w Google?

Publiczne podstrony PWA to zwykłe adresy internetowe, więc wyszukiwarka może je indeksować jak każdą stronę, a link z wyników otwiera aplikację od razu, bez instalacji. Część za logowaniem nie jest indeksowana i nie powinna być. Aplikacja ze sklepu nie ma tej ścieżki, bo użytkownik musi najpierw trafić do App Store lub Google Play i ją pobrać.

Czy PWA można później zamienić na aplikację w sklepie?

Tak, i to bez pisania wszystkiego od nowa. Capacitor uruchamia istniejący kod webowy w natywnym kontenerze i dokłada funkcje natywne przez wtyczki, a Trusted Web Activity publikuje PWA w Google Play. Od nowa piszesz ekrany dopiero wtedy, gdy wybierasz Fluttera, React Native albo kod natywny, ale backend i baza danych zostają te same.

Źródła

Liczby i terminy w tym przewodniku sprawdziłem w oficjalnych źródłach. Ceny i przepisy się zmieniają, więc przy decyzji warto zajrzeć do nich ponownie.

Masz pytanie do swojego projektu?

Opisz, co chcesz osiągnąć. Odpowiem konkretnie, także wtedy, gdy najlepszą odpowiedzią jest „nie rób tego”.

Jonasz Jankowski · Bezpośrednia współpraca · Mikołów (Śląsk), zdalnie w całej Polsce

CO DALEJ PO WYSŁANIU
  1. Odpowiadam osobiście w ciągu jednego dnia roboczego.
  2. Krótka rozmowa o celu, funkcjach, materiałach i integracjach.
  3. Dostajesz zakres z etapami i konkretną kwotę, zanim cokolwiek zaczniemy.

Pola oznaczone jako opcjonalne możesz pominąć. Odpowiadam na każdą wiadomość.

Minimum 20 znaków. Wystarczy zalążek pomysłu.0/5000

Na podany e-mail otrzymasz potwierdzenie z numerem zapytania. Odpowiadam w ciągu jednego dnia roboczego. Dalszą rozmowę możemy prowadzić w tym samym wątku.