Progressive Web Application. Итоги первого открытого холивара Сибирикс Digital Club
Делимся знаниями и опытом с теми, кто хочет попробовать PWA, или что-то слышал об этом, но стесняется спросить. Все записали на видео и сделали поминутную разбивку
PWA, или Progressive Web Application — на сегодня это самые передовые технологии на стыке веб-а и мобайла. Например, можно сделать сайт, который будет работать как мобильное или десктоп-приложение. Автономно и с доступом к всяким пуш-уведомлениям, датчикам мобилки, которые простым сайтам даже не снились.
Это действительно круто! Например, вам нужно заслать сотрудников собирать какие-то данные в тайге (связи нет!). Можно по-старинке, на бумажке, а потом переносить все руками в комп (долго, дорого, такое себе). Можно выдать всем мобильное приложение, работающее автономно, но умеющее синхронизироваться (это хороший, но довольно дорогой вариант, с учетом разработки под две платформы). А можно сделать гибрид сайта и приложения на технологиях PWA. И получить работающую среду хоть на телефоне, хоть в браузере, хоть на десктопе. Да, это почти чудеса, и мы в них отлично разбираемся.
Немного о формате
Холивар — это священные войны программистов, которые редко бывают друг с другом полностью в чем-то согласны.
Чтобы разжечь такую войну, нужно:
После этого штат естественным образом делится на два лагеря — тех, кто сидит под вау-эффектом, и тех, кто говорит, что все это уже было или что это умрет через полгода. Вот тогда и начинается самая жара.
Чтобы разжечь такую войну, нужно:
- попробовать новую технологию,
- собрать всю кодерскую и объяснить, почему эта технология — огонь.
После этого штат естественным образом делится на два лагеря — тех, кто сидит под вау-эффектом, и тех, кто говорит, что все это уже было или что это умрет через полгода. Вот тогда и начинается самая жара.
Так было, когда мы обсуждали Flutter, серверный рендеринг React и все остальные 100 500 раз. Но когда речь зашла про PWA, мы подумали, что пятьдесят голов хорошо, а больше — лучше, и впервые решили сделать холивар открытым. К нам пришли крутые гости, кто-то из них уже успел покопаться в технологии и поделился своим опытом, а кто-то посмотрел на все свежим незамыленным взглядом и задал нетривиальные вопросы, которые накалили обсуждение. Самые горячие споры вызвал вопрос, можно ли использовать PWA как маркетинговый ход или нет (смотрите на 13-ой минуте видео).
Если вы не смогли попасть к нам в студию, смотрите видео! Особенно полезно — для разработчиков и проджект-менеджеров.
Презентацию можно скачать в нашем Телеграм-канале.
Для вашего удобства приводим поминутную разбивку.
Основные технологии PWA
Манифест-приложение
(специальный json файлик, которого, в принципе, уже достаточно, чтобы сайт назывался PWA)
0:02:05
Как подключить и какие метаданные указать, чтобы после 30 секунд нахождения пользователя на сайте всплывала плашка «Установить сайт на начальный экран»
0:37:20
Несколько видов интерфейса, которые могут быть описаны в Манифесте
0:38:54
Порядок обработки
Service Workers
(«прослойка» на JS между клиентом и сервером)
(«прослойка» на JS между клиентом и сервером)
0:03:26
Какую магию можно делать с его помощью. Объекты внутри Service Workers
0:07:35
Сайт с кучей примеров, про который говорит Иван
0:27:35
Еще про работу с кешем. Подробно
0:36:25
Что можно закешировать
0:38:40
Как кешировать шрифты
Другие технологии
0:08:00
Обзорно: Web Workers (возможность выполнять JS код в отдельном потоке). WebAssembly (возможность компилировать, например, C/C++/Rust в совместимый с JS формат). IndexedDB (noSQL хранилище). Notifications API
0:45:00
Ссылка на JS-ные api, новые, понтовые, веселые. Можно открыть описание каждой апишки, посмотреть и впечатлиться
0:48:05
WebAssembly. Подробно
0:50:55
Установка на устройствах
0:11:23
Как настраивать, выводить в интерфейсе браузера или в виде standalone-приложения. Что такое сайт, который выглядит, как приложение
0:13:35
Холиварный момент: Можно ли продвигать PWA как идею о том, что у сайта есть приложение?
0:16:00
Можно ли по-разному выстроить поведение пользователя в вебе и в PWA?
0:19:15
Плюсы и минусы, возможности и ограничения
0:40:50
На каких браузерах работает
Практика
0:20:35
Процесс создания нового сайта с использованием PWA. Какие можно решить задачи. Какой фреймворк лучше использовать. Подходы к созданию PWA. Что нужно продумать на берегу
0:24:00
Как прикрутить PWA к уже существующему сайту. В каких случаях придется переписать половину фронтенда. Когда проще сделать отдельное standalone-приложение или вообще новый сайт?
0:25:15
Инструменты. Ссылка из презентации
0:35:00
Интересный кейс: Как мы пошли в обратную сторону и из приложения сделали сайт
Полезные ссылки
- https://developers.google.com/web/progressive-web-apps/
- https://developers.google.com/web/progressive-web-apps/checklist
- https://habr.com/ru/post/418 923/
- https://serviceworke.rs/strategy-cache-update-and-refresh_service-worker_doc.html
- https://medium.com/progressive-web-apps/pwa-create-a-new-update-available-notification-using-service-workers-18be9168d717
- https://github.com/ryanwhocodes/template-progressive-web-app/blob/master/public/service-worker.js
- https://habr.com/ru/post/419 585/
- https://gist.github.com/Rich-Harris/fd6c3c73e6e707e312d7c5d7d0f3b2f9
- https://medium.com/izettle-engineering/beginners-guide-to-web-push-notifications-using-service-workers-cb3474a17679
- https://habr.com/ru/post/423 193/
- https://developer.mozilla.org/ru/docs/Web/API/Service_Worker_API
- https://serviceworke.rs/
- https://medium.com/@firt/progressive-web-apps-on-ios-are-here-d00430dee3a7
- https://developers.google.com/web/tools/workbox/
- https://www.pwabuilder.com/
- https://developer.mozilla.org/en-US/docs/Web/API