Что такое PWA и что это дает бизнесу
21 янв. 2020
Термин PWA (Progressive Web Applications) придумали дизайнер Фрэнсис Берримэн (Frances Berriman) и инженер Google Chrome Алекс Рассел (Alex Russell) в 2015 году. Технология привлекла внимание, так как обещала несложную реализацию и практически моментальный контакт с пользователем. Всего через три года, сайты, использующие технологию PWA, стали поддерживаться всеми основными браузерами и в рамках идеологии mobile first становиться все более популярными практически во всех областях от новостных порталов до проектов электронной коммерции.
— The Washington Post - увеличение производительности на 88%;
— Aliexpress - увеличение времени на сайте на 74%;
— Twitter - сокращение нагрузки и на инфраструктуру на 70%;
— Net-a-Porter - улучшение SEO индексации;
— Lancome - увеличение конверсии на 17%;
— Alibaba - увеличение конверсии на 76%;
— AliExpress - увеличение времени на сайте на 74%;
— Forbes - увеличение длительности сессии на 40%;
Обозначить четкие критерии, которые жестко описывают что является сайтом PWA, а что нет, как минимум, затруднительно. Это скорее путь постоянных улучшений обычного сайта, пользователи которого могут сказать, что он удивительно быстрый и удобный, а всё потому, что где-то внутри него бьется горячее сердце service worker'a.
Архитектура PWA
PWA как гибрид сайта и приложения стал возможен благодаря растущим возможностям кэша, браузеров и push-разработок и создан для достижения заданных целевых показателей:
Надежность (Reliable) — контент отображается вне зависимости от статуса и качества сетевого соединения.
Быстрота (Fast) — обмен данными по сети происходит практически мгновенно, UI плавный и отзывчивый.
Привлекательность (Engaging) — создает комфортный, вовлекающим в дальнейшую коммуникацию опыт взаимодействия с сайтом.
Другими словами, разработчику предлагаются инструменты (Service Worker, Push Notifications и др.) и указываются цели (сайт/приложение должен быть быстрым в загрузке, работать на слабом коннекте, не «лагать», работать офлайн при необходимости). Насколько далеко продвинется по этому пути разработчик - зависит только от него.
С точки зрения архитектуры, сайты на PWA очень похожи на нативные приложения для мобильных устройств, в том плане, что все основные ресурсы можно хранить на клиенте, а по сети будет передаваться только меняющийся контент, что является колоссальным прорывом для улучшения производительности. Можно даже назвать это скрытой революцией. По сути, браузер используется как некая виртуальная машина, хранящая и запускающая в себе PWA приложение. Как нативное приложение обращается через файловую систему к своим ресурсам, так же и PWA обращается к своим ресурсам, хранящимся локально.
Основные инструменты PWA:
Service Worker
Сердце PWA — Service Worker. Это проксирующий слой между фронтэндом и бэкэндом, находящийся в браузере и через который проходят все запросы. Данное разделение на два независимых слоя позволяет сделать переход обычного веб сайта в PWA максимально простым.
Из хранилищ у Service Worker'a есть доступ к Cache Storage для web ресурсов, и IndexedDB для данных. Но, самое главное, полная свобода в организации бизнес логики.
Можно, например, принять запрос от браузера, проверить состояние сети, взять данные из хранилища, произвести с ними операции и вернуть некий результат обратно в браузер — который будет думать, что ответ ему пришел от сервера.
PWA не зависит ни от каких фреймворков. Service Worker представляет собой чистый javascript файл, подключаемый в html коде страницы. В нем определяется логика работы с приходящими из фронтэнда запросами и другая функциональность.
HTTPS
PWA требует, чтобы все ресурсы сайта передавались по HTTPS протоколу. Ссылки на незащищенные ресурсы запрещены и некоторые браузеры просто не будут отображать сайт в случае наличия таковых. Как следствие картинки необходимо пересохранять или к себе, или на сервис с доступом по HTTPS, а не использовать ссылки на них.
Application Shell
App shell — это скелет графического интерфейса со статическим контентом. App shell хранится на клиенте и загружается при запуске приложения, а затем уже в него грузится из сети динамическая информация. И пока она грузится, app shell позволяет привлекательно представить базовую информацию на странице.
Web App manifest
JSON файл, декларативно определяющий для браузера название приложения, иконку, как будет выглядеть PWA (fullscreen, standalone и др.) и некоторые другие параметры и установить PWA на домашний экран как отдельное приложение.
Push Notifications
Push Notifications предоставляет огромные возможности для улучшения поведенческих факторов и пока это самый популярный и самый злоупотребляемый инструмент PWA. 90% сайтов, использующих сегодня PWA, делают это ради Push Notifications.
Преимущества PWA:
Сайты на PWA обладают неоспоримыми преимуществами для пользователей. Они быстрее и мгновенно загружаются, доступны независимо от наличия сети, требуют меньше аппаратных ресурсов, предоставляют лучший потребительский опыт и доступны в одно касание. Для бизнеса преимуществ ничуть не меньше и все они способствуют увеличению прибыли:
1. Повышение конверсии и увеличение времени пребывания пользователей на сайте;
2. PWA относительно легки во внедрении и позволяют запустить кроссплатформенный проект в электронной коммерции за 3-6 месяцев;
3. Progressive Web Apps индексируются и улучшают SEO-показатели, что повышает органический трафик: в Google сайт будет занимать значительно более высокие позиции, если подключена технология PWA;
4. Благодаря кроссплатформенности технологии PWA приложение, которое будет работать на любых устройствах любых операционных систем;
5. Сайты, созданные по стандарту PWA, работают при слабом или вовсе отсутствующем сигнале – это значит, потенциальные конверсии не будут потеряны: пользователь может положить товары в корзину, просматривая сайт без подключения к Интернету, а оформить заказ в тот момент, когда появится доступ к Сети.
6. Сохраняется возможность полностью контролировать customer journey за счет интеграции data layer во фронтальную часть PWA.
Как и любая интернет-технология, способная повышать узнаваемость и конверсии, PWA крайне привлекательна для повышения трафика практически для всех сфер бизнеса. Но особенно востребованной Progressive Web Apps является для электронной коммерции, где производительность сайта и улучшение поведенческих факторов являются краеугольными для бизнеса.