Для чего нужны Прогрессивные Web-приложения?

С этим вопросом я разбирался (и продолжаю разбираться) с конца 2019 года и я пришёл к выводу, что проще определить, где PWA применять нецелесообразно, отсекая заведомо проигрышные варианты использования, и уже в оставшейся, достаточно широкой области возможностей, прикидывать, насколько хорошо PWA подходят для решения конкретной задачи. Вот мои основные соображения:

  • Progressive Web Applications (PWA) целесообразно применять на мобильных устройствах (в основном на смартфонах, лишь затем - ноутбуки и планшеты). Ведь главной "фишкой" PWA является способность работать offline, а какой offline на десктопах?
  • PWA - это для приложений, а не для сайтов. Нет смысла делать PWA для всей библиотеки Мошкова, но можно сделать offline reader в виде PWA для чтения отдельных книг из библиотеки Мошкова. Интернет-банкинг - да, wiki - нет.
  • PWA не дружат с поисковиками. Ни в какую. Можно "натянуть сову на глобус" и прикрутить server side rendering, но эффективнее сделать сайт для обычных клиентов (и поисковиков!) и PWA для мобильных клиентов. Именно так в e-commerce работает Magento 2 в связке с VueStorefront.
  • PWA - это децентрализация. Возможность хранить персональные данные на устройстве клиента, сопоставимая с нативными приложениями. Потерял устройство - потерял все свои данные. Это не минус PWA, это скорее демонстрация уровня независимости по персональным данным.
  • PWA - это централизация. Web-приложения в принципе не способны существовать без сервера, с которого они устанавливаются и через который они, как правило, обмениваются данными со всем остальным миром.
  • PWA - это независимость от App Store и Google Play. Устанавливать приложение можно на виртуальном сервере или в облаке. Распространять - по обычной ссылке. Никто, кроме самого разработчика, не решает, готово ли приложение к распространению или нужно ещё посоответствовать каким-либо политикам.
  • PWA - это популярные, массовые технологии (HTML/CSS/JS/HTTP). Возможность использовать проверенные фреймворки, за которыми стоят современные web-гиганты (Facebook, Google, Twitter) или значительные коммьюнити. Найти разработчиков, который "смогут в PWA", проще (и дешевле!), чем найти разработчиков, которые "смогут в RoR".
  • PWA - это значительно отличающаяся архитектура фронта, чем традиционно принято в современной web-разработке. Т.е., найти разработчиков, которые "смогут в PWA" хорошо, может быть не проще, а даже сложнее (и дороже!), чем разработчиков, которые "смогут в RoR".
  • PWA - это настолько современная технология, что не все основные браузеры поддерживают её одинаково (и полифилы тут не помогут).

Для какого продукта подойдёт PWA?

  • Основным клиентом которого являются мобильный пользователи с современными смартфонами.
  • Объём хранимой персональной информации на клиентском устройстве не превышает десятков мегабайт (галереи изображений - мимо).
  • Поисковики не являются значимым каналом продвижения (либо для позиционирования в поисковиках используется отдельный сайт).
  • С частым обновлением функционала приложения (в обход App Store & Google Play).
  • Продукт не требует использования аппаратных ресурсов смартфонов за пределами, предоставляемыми современным Web API (например, доступ к компасу).

В общем, на данный момент технология всё ещё находится в поиске области своей применимости. Легче сказать, где не нужно применять PWA, чем, где применение PWA принесёт несомненную выгоду. С моей точки зрения, как web-разработчика, PWA находятся в том же положении, в каком в самом начале своего пути был другой продукт Google - Google Earth. Тогда тоже было понятно, что это что-то крутое, но не было понятно, что с этим делать.

Я верю, что PWA займут достойное место в ряду технологий разработки web-приложений, и продолжаю разбираться с её особенностями. Свои наработки технического характера, мало интересные широкой публике, я размещаю на канале wiredgeese.com, а вот по общим вопросам, касательно PWA и их места в современном мире, с удовольствием пообщаюсь здесь.

Всегда интересно узнать альтернативные точки зрения и сравнить со своей собственной. Ведь именно для этого, такие площадки, как vc.ru и существуют.

22
2 комментария

Независимость от площадок, это и минус . Сложно найти аудиторию для своего приложения на столько масштабную. Кроме того предложения браузера на установку зачастую игнорируются пользователями и это проблема .

1
Ответить

Просто автор не вкурсе, что IOS и Андройд уже принимают pwa приложения для публикации в свои сторы.

Ответить