Розробка Progressive Web App (PWA) для мобільних пристроїв

Часто клієнти звертаються до нас із запитом на мобільну присутність без публікації в App Store і Google Play. Або у них уже є веб-сайт на React/Vue/Angular, і потрібно додати офлайн-режим, push-сповіщення та іконку на домашньому екрані — без переписування всього з нуля. Реальна PWA — це Service Work

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Розробка Progressive Web App (PWA) для мобільних пристроїв
Середній
від 1 тижня до 3 місяців

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Часто клієнти звертаються до нас із запитом на мобільну присутність без публікації в App Store і Google Play. Або у них уже є веб-сайт на React/Vue/Angular, і потрібно додати офлайн-режим, push-сповіщення та іконку на домашньому екрані — без переписування всього з нуля. Реальна PWA — це Service Worker з правильною стратегією кешування, Web App Manifest з коректними параметрами для кожної платформи, і HTTPS без винятків. Пропустити будь-який із цих трьох компонентів — отримати додаток, який не встановлюється або працює некоректно в офлайні. Замовте оцінку вашого проекту за 1 день — зв'яжіться з нами.

Де зазвичай ламається PWA?

Service Worker і стратегії кешування

Найчастіша помилка — кешувати все підряд з CacheFirst без інвалідації. Користувач відкриває оновлений додаток, а бачить стару версію, тому що sw.js віддає ресурси із застарілого кешу. Workbox вирішує це через StaleWhileRevalidate для статики та NetworkFirst для API-запитів, але потрібно чітко розділити, що кешувати агресивно (шрифти, іконки, JS-бандли з хешами), а що завжди запитувати свіже (дані користувача, інвентар, контент).

Окрема історія — фонова синхронізація через Background Sync API. Користувач надіслав форму в офлайні, Service Worker перехопив запит і поклав у SyncManager. Коли зв'язок відновився — запит пішов. Виглядає просто, але registration.sync.register('sync-orders') працює тільки в Chrome/Android. На iOS Safari Background Sync досі не підтримується — це потрібно враховувати при проектуванні офлайн-сценаріїв. Наприклад, альтернативою може бути ручне надсилання даних при відновленні з'єднання.

Стратегія кешування Застосування Застарівання даних Підходить для
CacheFirst Статичні ресурси Ні Шрифти, іконки, JS-бандли з хешами
StaleWhileRevalidate Швидке відображення Так HTML-сторінки, зображення
NetworkFirst Завжди свіжі Так API-запити, дані користувача
NetworkOnly Без кешу Ні Форми, авторизація

Обмеження на iOS

Apple планомірно обмежує PWA: до версії 16.4 push-сповіщення в PWA не працювали взагалі. Зараз працюють, але тільки якщо додаток додано на головний екран через Safari — не з Chrome, не з Firefox. Квота сховища IndexedDB на iOS — 50 МБ за замовчуванням, проти гігабайтів на Android. Ресурси, що кешуються, потрібно рахувати заздалегідь. Якщо плануєте push-сповіщення, обов'язково використовуйте VAPID-ключі та враховуйте, що на iOS потрібне встановлення через Safari.

Чому PWA краще за нативне для деяких сценаріїв?

PWA розробляється в 3-5 разів швидше за нативний додаток і коштує в 2-3 рази дешевше. Оновлення відбуваються автоматично, без перевірок магазинів. Для інформаційних порталів, новинних сайтів і корпоративних сервісів PWA часто виявляється ефективнішим: займає менше місця на пристрої, не вимагає встановлення з магазину, а конверсія у встановлення (через beforeinstallprompt) може досягати 60%. За даними Google, PWA збільшують конверсію на 36% при коректній реалізації. Джерело: Google Developers Крім того, PWA оновлюється в 10 разів швидше, ніж нативний додаток, і має на 20% менше відмов. Однак для додатків із глибокою інтеграцією в систему (камера, Bluetooth, NFC) нативний додаток залишається безальтернативним.

Як будуємо PWA: покрокова інструкція

  1. Аудит — перевірка HTTPS, Core Web Vitals, поточного Service Worker (якщо є).
  2. Конфігурація — використовуємо Workbox 7.x через vite-plugin-pwa. Режим generateSW автоматично створює precache-маніфест із бандла.
  3. Маніфест — name, short_name, start_url з параметром ?source=pwa, display: standalone, theme_color, background_color, іконки 192×192 і 512×512, плюс maskable варіант для Android.
  4. Service Worker — налаштовуємо стратегії: StaleWhileRevalidate для статики, NetworkFirst для API, CacheFirst для незмінних ресурсів.
  5. Push-сповіщення — реєструємо VAPID-ключі, підписка через PushManager.subscribe().
  6. Тестування — налагодження в Lighthouse, Chrome DevTools (Application → Service Workers → Offline) і на реальних пристроях.

Як досягти високої конверсії встановлення?

Chrome показує банер «Додати на головний екран» при виконанні критеріїв: HTTPS, валідний маніфест, зареєстрований SW з fetch-обробником. Lighthouse перевіряє всі умови. Для самостійного контролю використовуємо beforeinstallprompt event: перехоплюємо його через event.preventDefault(), відкладаємо і показуємо власний UI в потрібний момент, потім викликаємо prompt(). Це дає контроль над тим, коли і кому пропонувати встановлення. На iOS встановлення тільки вручну через Share → «На екран «Додому»» — жодних автоматичних промптів.

Push-сповіщення через Web Push Protocol

VAPID-ключі генеруються один раз, публічний ключ передається клієнту при підписці через PushManager.subscribe(). На сервері — web-push бібліотека для Node.js або аналог. Subscription об'єкт з endpoint, p256dh і auth зберігається в базі — саме він потрібен для надсилання.

// Реєстрація підписки const subscription = await registration.pushManager.subscribe({ userVisibleOnly: true, applicationServerKey: urlBase64ToUint8Array(PUBLIC_VAPID_KEY) }); 

Порівняння PWA та нативних додатків

Критерій PWA Нативний додаток
Розробка 2–4 тижні 2–6 місяців
Вартість від 20 000 грн від 60 000 грн
Оновлення автоматичні через магазини
Офлайн обмежена повна
Push-сповіщення так (з обмеженнями iOS) так
Встановлення без магазинів App Store / Google Play

Що входить у роботу

На етапі аудиту перевіряємо продуктивність (Core Web Vitals), HTTPS-конфігурацію, поточний Service Worker якщо є. Потім розробляємо Service Worker зі стратегіями кешування під конкретні маршрути, створюємо маніфест, іконки всіх розмірів і splash screens для iOS. Якщо потрібні push-сповіщення — налаштовуємо Web Push і тестуємо офлайн-сценарії в Chrome DevTools та на реальних пристроях. У середньому додавання PWA до готового сайту займає 3–7 днів, а повна розробка з нуля — 2–4 тижні. Наша компанія виконала понад 30 PWA-проектів з гарантією сумісності та сертифікованими розробниками.

Підсумок перевіряємо через Lighthouse PWA audit — усі пункти мають бути зеленими. Ми займаємося PWA понад 5 років, і кожен проект проходить таке тестування. Наш досвід включає інтеграцію з Firebase і Supabase для push-сповіщень і фонової синхронізації.

Типові помилки при впровадженні PWA:

  • Ігнорування інвалідації кеша — користувачі бачать застарілий контент.
  • Відсутність maskable іконки — на Android іконка з білим фоном.
  • Push-сповіщення без перевірки підтримки на iOS.
  • Використання лише CacheFirst для API — втрата актуальності даних.

Строки

Додавання PWA до готового веб-додатка: 3–7 днів. Розробка PWA з нуля з офлайн-логікою та push-сповіщеннями: 2–4 тижні. Вартість розраховується після аналізу поточного стеку та вимог до офлайн-функціональності. Оцінимо ваш проект за 1 день — зв'яжіться з нами для консультації.

За даними Google, PWA збільшують конверсію на 36% при коректній реалізації.