🔥

Тред (Алексей Родионов)


О PWA я узнал чисто случайно в 2015 году благодаря, как это ни странно, другой технологии — Web Components и проекту Google Polymer.

На Google I/O 2015 помимо самой библиотеки Polymer для создания Web Components был представлен набор готовых веб-компонентов Polymer Elements и шаблон для создания веб-приложений Polymer Starter Kit, который как раз и представлял из себя PWA. youtu.be/fD2As5RmM8Q?t=…

Меня зацепила идея, что я могу делать не только сайты, но и приложения на веб-технологиях. А это уже совсем другой уровень. 😀

Какие преимущества я для себя выделил?

Низкий порог входа: Для написания PWA не нужно изучать проприетарные SDK, достаточно знать HTML, JS, CSS.

Для разработки не требуется специальное оборудование (как, например, в случае с iOS), и можно даже обойтись без IDE и компилятора — JavaScript-код интерпретируется и может быть отлажен прямо в браузере.

А если у вас уже есть веб-приложение или сайт, можно постепенно внедрять различные Web API.

Настоящая кроссплатформенность:

PWA работают на устройствах любого форм-фактора, на любой архитектуре и ОС, где есть браузер и доступ в интернет. Они запускаются на любых устройствах от носимой электроники до телевизоров, от VR/AR-очков до самых немыслимых устройств вроде умных зеркал.

А единая кодовая база снижает стоимость разработки и дальнейшей поддержки.

PWA выглядят и работают как нативные приложения:

PWA глубоко интегрируются в операционную систему, запускаются через иконку на главном экране, получают push-уведомления, работают без доступа к интернету и могут получать доступ к аппаратным сенсорам устройства, таким как камера, микрофон, Bluetooth, USB, NFC и др.

Не требуют установки и обновлений: Чтобы воспользоваться PWA, достаточно посетить сайт. Необходимый для работы код при первом запуске помещается в кэш, который автоматически обновляется в фоновом режиме.

Децентрализованность, открытость и независимость: Веб — самая крупная платформа, больше, чем все остальные платформы вместе взятые. Чтобы распространять PWA не нужны магазины приложений, которые навязывают свои правила.

Однако при желании PWA можно упаковать в легковесную нативную оболочку и опубликовать в Google Play, App Store и других магазинах.

Все преимущества веб-платформы: PWA — это сайт, а значит весь контент индексируется поисковиками. У каждой страницы есть URL, который можно скопировать и поделиться (такой вот встроенный в платформу deep linking).

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

Меньший размер: PWA сами не реализовывают API — они лишь вызывают API, уже реализованные в браузере. При запуске они загружают необходимый минимум, а всё остальное подгружают по мере необходимости (см. PRPL-паттерн).

Безопасность: Код PWA выполняется в песочнице браузера, а для его загрузки и передачи данных используется безопасное соединение HTTPS.

Также веб-приложения используют более защищенную модель разрешений. Например, в отличие от нативных Android-приложений, PWA запрашивают у пользователя разрешение на получение push-уведомлений, доступ к NFC и так далее.