πŸŽ‰ 75% of content is free forever β€” Unlock Premium from $10/mo β†’
CW
Search courses…
πŸ’Ό Servicesℹ️ Aboutβœ‰οΈ ContactView Pricing Plansfrom $10

Progressive Web Apps

React Advanced🟒 Free Lesson

Advertisement

Progressive Web Apps

Service workers, offline support, push notifications, and app manifest.

Overview

PWAs provide native app-like experiences with offline capabilities and push notifications.

Key Concepts

  • Service Worker β€” Background script for caching and offline support
  • App Manifest β€” JSON file defining app metadata
  • Cache API β€” Store responses for offline use
  • Push Notifications β€” Re-engage users with server push
  • Workbox β€” Google's library for service worker utilities

Code Examples

// Register service worker
if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('/sw.js');
}

// sw.js
import { precacheAndRoute } from 'workbox-precaching';
import { registerRoute } from 'workbox-routing';
import { CacheFirst } from 'workbox-strategies';

precacheAndRoute(self.__WB_MANIFEST);

registerRoute(
  ({ url }) => url.pathname.startsWith('/api'),
  new CacheFirst({
    cacheName: 'api-cache',
    plugins: [
      new ExpirationPlugin({ maxEntries: 50, maxAgeSeconds: 3600 })
    ]
  })
);

// React component for push notifications
function NotificationManager() {
  const [permission, setPermission] = useState(Notification.permission);

  const requestPermission = async () => {
    const result = await Notification.requestPermission();
    setPermission(result);
  };

  const subscribe = async () => {
    const registration = await navigator.serviceWorker.ready;
    const subscription = await registration.pushManager.subscribe({
      userVisibleOnly: true,
      applicationServerKey: 'YOUR_VAPID_KEY'
    });
    await fetch('/api/subscribe', { method: 'POST', body: JSON.stringify(subscription) });
  };

  return (
    <div>
      <button onClick={requestPermission} disabled={permission === 'granted'}>
        Enable Notifications
      </button>
      {permission === 'granted' && <button onClick={subscribe}>Subscribe</button>}
    </div>
  );
}

Practice

Convert a React app to a PWA with offline support and push notifications.

⭐

Premium Content

Progressive Web Apps

Unlock this lesson and 900+ advanced tutorials with a Premium plan.

🎯End-to-end Projects
πŸ’ΌInterview Prep
πŸ“œCertificates
🀝Community Access

Already a member? Log in

Need Expert React Help?

Get personalized tutoring, project support, or professional consulting.

Advertisement