Перейти до вмісту

Реалізувала повну підтримку Progressive Web App

Реалізувала повну підтримку Progressive Web App — з можливістю встановлення та офлайн‑роботи — з кешуванням Workbox під час виконання через next‑pwa.

  • Samsung, smartphone, hand
    Фото: Pexels / Pixabay
  • Sailing vessel, ship deck, roaps
    Фото: sharkolot / Pixabay

встановлюється й читається в морі без сигналу

Ситуація. Значна частина користувачів платформи перебуває в морі. Моряки та польовий персонал працюють з телефонів, часто офлайн або на нестабільному з’єднанні, — це не люди за робочим столом зі стабільним офісним Wi‑Fi. Якби застосунок будували так, ніби в усіх є швидка й постійна мережа, це непомітно відсікло б значну частину реальної аудиторії.

Завдання. Застосунок мав встановлюватися як нативний і лишатися придатним до роботи, навіть коли мережа зникає.

Дія. Продукт випущено як повноцінний Progressive Web App. Він встановлюється на головний екран із належними іконками різних розмірів, заставкою та кольорами теми, тож виглядає й запускається як застосунок, а не як закладка. Service worker налаштовано через плагін next‑pwa, а Workbox для кешування під час виконання застосовує стратегію CacheFirst до того, що не змінюється від запиту до запиту, — шрифтів, зображень, аудіо, відео, CDN‑ресурсів, — а також продумані HTTP‑заголовки cache‑control. Оскільки service worker як слід працює лише через HTTPS, роботу офлайн і встановлення перевірили тестуванням через HTTPS на реальних пристроях, а не понадіялися, що все якось спрацює.

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

Одна частина довшого переліку — і він увесь на цьому сайті.

Кожен запис написано однаково: ситуація, завдання, що ми зробили і що змінилося.

Переглянути весь перелік