Progressive Web Apps (PWA) to nowoczesne aplikacje internetowe, które łączą funkcjonalność stron WWW i aplikacji mobilnych. Dzięki PWA sklep internetowy może działać szybciej, obsługiwać użytkowników offline i umożliwiać instalację na ekranie głównym smartfona. W tym artykule przeprowadzimy Cię krok po kroku przez proces tworzenia PWA dla e-commerce, kończąc na gotowym przykładowym kodzie aplikacji.
Zanim zaczniemy, upewnij się, że Twój sklep internetowy spełnia następujące wymagania:
✅ HTTPS – PWA wymaga bezpiecznego połączenia. Możesz użyć darmowego certyfikatu SSL np. Let’s Encrypt.
✅ Manifest aplikacji (manifest.json) – plik definiujący wygląd i zachowanie PWA.
✅ Service Worker – skrypt obsługujący cache i działanie offline.
✅ Responsywny design – aplikacja powinna działać dobrze na różnych urządzeniach.
Plik manifest.json określa podstawowe parametry PWA, takie jak nazwa, ikony i kolorystyka.
manifest.json dla e-commerce:{
"name": "Sklep Online",
"short_name": "Sklep",
"start_url": "/index.html",
"display": "standalone",
"background_color": "#ffffff",
"theme_color": "#ff6600",
"icons": [
{
"src": "/icons/icon-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/icons/icon-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
]
}
Po utworzeniu tego pliku dodaj go do strony w sekcji <head>:
<link rel="manifest" href="/manifest.json">
Service Worker to skrypt, który umożliwia obsługę cache i działanie offline.
service-worker.js:const CACHE_NAME = "shop-cache-v1";
const urlsToCache = [
"/",
"/index.html",
"/styles.css",
"/script.js",
"/icons/icon-192x192.png"
];
self.addEventListener("install", (event) => {
event.waitUntil(
caches.open(CACHE_NAME).then((cache) => {
return cache.addAll(urlsToCache);
})
);
});
self.addEventListener("fetch", (event) => {
event.respondWith(
caches.match(event.request).then((response) => {
return response || fetch(event.request);
})
);
});
Teraz zarejestruj Service Worker w script.js:
if ("serviceWorker" in navigator) {
navigator.serviceWorker.register("/service-worker.js")
.then((registration) => {
console.log("Service Worker registered with scope:", registration.scope);
})
.catch((error) => {
console.log("Service Worker registration failed:", error);
});
}
Aby sprawdzić, czy aplikacja spełnia wymagania PWA:
F12 → zakładka „Lighthouse”).Poniżej znajduje się kompletny zestaw plików dla podstawowego PWA:
index.html<!DOCTYPE html> <html lang="pl"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Sklep Online</title> <link rel="stylesheet" href="styles.css"> <link rel="manifest" href="manifest.json"> <script src="script.js" defer></script> </head> <body> <h1>Witaj w naszym sklepie!</h1> <p>Teraz działa jako PWA 🚀</p> </body> </html>
styles.cssbody {
font-family: Arial, sans-serif;
text-align: center;
}
script.jsif ("serviceWorker" in navigator) {
navigator.serviceWorker.register("/service-worker.js");
}
service-worker.jsconst CACHE_NAME = "shop-cache-v1";
const urlsToCache = ["/", "/index.html", "/styles.css", "/script.js"];
self.addEventListener("install", (event) => {
event.waitUntil(caches.open(CACHE_NAME).then((cache) => cache.addAll(urlsToCache)));
});
Gratulacje! 🎉 Stworzyłeś swoją pierwszą aplikację PWA dla e-commerce. Dzięki tej technologii Twój sklep internetowy działa szybciej, może być używany offline i instalowany na urządzeniach mobilnych. Teraz możesz dalej rozwijać projekt, np. dodając obsługę powiadomień push i dynamiczne ładowanie danych!
Aplikacja PWA (Progressive Web App) to aplikacja internetowa, która wykorzystuje nowoczesne technologie sieciowe, aby zapewnić użytkownikom doświadczenie zbliżone do korzystania z natywnych aplikacji mobilnych. PWA działa w przeglądarce, ale oferuje funkcje takie jak działanie offline, powiadomienia push czy możliwość instalacji na ekranie głównym urządzenia. :contentReference[oaicite:0]{index=0}
Wdrożenie PWA przynosi wiele korzyści, takich jak: - **Szybsze ładowanie**: Dzięki wykorzystaniu pamięci podręcznej, PWA ładuje się szybko, nawet przy słabym połączeniu internetowym. - **Działanie offline**: Użytkownicy mogą korzystać z aplikacji bez dostępu do internetu, co zwiększa jej dostępność. - **Łatwa instalacja**: PWA można zainstalować bezpośrednio z przeglądarki, bez konieczności pobierania ze sklepu z aplikacjami. - **Oszczędność kosztów**: Tworzenie i utrzymanie jednej aplikacji PWA jest często tańsze niż rozwijanie oddzielnych aplikacji na różne platformy. :contentReference[oaicite:1]{index=1}
Do stworzenia PWA niezbędne są: - **Responsywna strona internetowa**: Strona dostosowująca się do różnych rozmiarów ekranów i urządzeń. - **Plik manifestu**: Plik JSON zawierający metadane aplikacji, takie jak nazwa, ikony czy kolorystyka, który informuje przeglądarkę o sposobie wyświetlania aplikacji po instalacji. - **Service Worker**: Skrypt JavaScript działający w tle, który zarządza buforowaniem zasobów, obsługą powiadomień push i umożliwia działanie aplikacji w trybie offline.
Do tworzenia PWA wykorzystuje się standardowe technologie webowe, takie jak HTML, CSS i JavaScript. Dodatkowo, popularne frameworki i biblioteki, takie jak Angular, React czy Vue.js, oferują wbudowane moduły wspierające tworzenie aplikacji PWA, co ułatwia proces deweloperski.
Aby przekształcić istniejącą stronę w PWA, należy: 1. **Upewnić się, że strona jest responsywna**: Strona powinna poprawnie wyświetlać się na różnych urządzeniach i rozdzielczościach. 2. **Dodać plik manifestu**: Stworzyć plik `manifest.json` zawierający informacje o aplikacji, takie jak nazwa, ikony czy kolorystyka. 3. **Zaimplementować Service Workera**: Napisać i zarejestrować skrypt Service Worker, który będzie zarządzał buforowaniem zasobów i obsługą trybu offline. 4. **Zapewnić bezpieczne połączenie HTTPS**: PWA wymaga, aby strona była dostępna przez bezpieczne połączenie HTTPS.
Główne różnice między PWA a natywnymi aplikacjami mobilnymi to: - **Dostępność**: PWA są dostępne bezpośrednio przez przeglądarkę i mogą być zainstalowane bezpośrednio z niej, podczas gdy natywne aplikacje wymagają pobrania ze sklepu z aplikacjami. - **Kompatybilność**: PWA działają na różnych platformach i urządzeniach bez konieczności tworzenia oddzielnych wersji, podczas gdy natywne aplikacje muszą być dostosowane do konkretnych systemów operacyjnych. - **Aktualizacje**: PWA są aktualizowane automatycznie po stronie serwera, podczas gdy natywne aplikacje wymagają pobrania aktualizacji przez użytkownika.