PWA - (r) эволюция программного обеспечения, которую мало кто понимает

  1. PWA не будет вытеснять традиционные настольные или мобильные приложения
  2. Что отличает прогрессивные приложения?

Мир приложений, как компьютерных, так и мобильных, огромен. У нас есть несколько ведущих операционных систем, и для каждой из них доступны миллионы приложений и игр. Часто бывает так, что существующие на одной платформе игнорируются на других или не доступны вообще. И дело не в том, чтобы купить iPhone для одного приложения.

В последнее время (более или менее в веб-индустрии в течение достаточно длительного времени) все больше и больше говорят о стандарте PWA. Прогрессивные веб-приложения, поскольку это полное название, являются приложениями, созданными в веб-технологиях, выполняемых механизмом браузера. Вы скажете: «Хорошо, но где здесь революция, поскольку уже давно можно закрепить любую страницу и запустить ее как приложение с рабочего стола, например, в Chrome?». И, похоже, задавая такой вопрос, вы будете в большинстве. Ну, PWA это не другое название для закрепленной страницы, не говоря уже о так называемой webwrapper или окно браузера без адресной строки с запущенной страницей. Они не являются заменой для приложений на базе Electron. Это что-то еще, и есть много признаков того, что это лучше. Давайте начнем с уверения вас, что ...

PWA не будет вытеснять традиционные настольные или мобильные приложения

По крайней мере, не скоро. Да, как я уже упоминал выше, стандарт основан на веб-технологиях (в основном с использованием JavaScript). Ограничения современных интернет-соединений и браузерных движков не позволяют реализовывать очень сложные функции в прогрессивных приложениях. На данный момент этот стандарт может предоставить нам доступ к социальным приложениям, различным типам читателей, простым службам электронной почты, например, картам Google. Пока приложения не должны выполнять очень сложные вычисления, они могут быть прогрессивными. То же самое относится и к, казалось бы, простым решениям, но все же с большим количеством функций, таких как офисные пакеты, с особым акцентом на MS Office, где функция полна встряхивания, и передача полной функциональности в браузер будет огромной проблемой. На данный момент Windows Store в последней версии системы, которая будет выпущена в ближайшее время, потому что даже в этом месяце у него уже есть несколько прогрессивных приложений, причем одно явно отличительное - официальное приложение Twitter. Это де-факто мобильная версия этого социального сайта, закрытая в окне. Webwrapper? Не совсем.

Что отличает прогрессивные приложения?

Если вам известна инициатива Microsoft под аббревиатурой UWP, вы наверняка ассоциируете идею универсальных приложений. Прекрасно звучит возможность запуска одной и той же программы на устройствах от смартфона до телевизора или даже очков дополненной реальности. Я сразу укажу, что UWP никуда не денется. Новый стандарт Microsoft больше похож на то, что должно заменить устаревший стандарт win32 в будущем. PWA, в свою очередь, - это приложения, которые должны работать в каждой системе одинаково, иметь одинаковый код и параллельно и безболезненно обновляться на всех платформах - как обычный веб-сайт. Чем же такие приложения отличаются от обычного сайта?

Прежде всего, они могут «поразить» выбранные функции операционной системы и устройства. Такие функции включают в себя, например, отправку собственных уведомлений (даже работающих в фоновом режиме), захват изображений камеры, использование системного буфера обмена и тому подобное. Полный список находится здесь , Они также могут совместно использовать определенные поведения для системы - например, появляться в списках приложений в окнах совместного использования ресурсов (приложение Twitter недавно включило это в ChromeOS и Windows 10).

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

Другая проблема заключается в том, что, в отличие от Electron, каждое вновь запущенное приложение PWA не создает новый экземпляр механизма браузера. Движок системного браузера все еще используется. Если вы используете Slack, GitKraken или другие приложения этот список Вы знаете, как они могут пожирать оперативную память компьютера. Таким образом, прогрессивные приложения будут экономить много памяти, которая должна использоваться более разумно. Конечно, вы не можете предполагать, что приложения, основанные на Electron, внезапно исчезнут - многие из них будет трудно перенести в их текущей форме в PWA (речь о сложных разработках, таких как редактор кода Visual Studio).

Прогрессивные приложения могут и даже должны работать в автономном режиме. Используя локальную память устройства, можно сохранить сохраненные данные, даже если устройство не имеет доступа к сети. Преимущество тех, кто стоит, вероятно, не стоит упоминать. Для правильной работы автономного приложения PWA соответствуют так называемые Сервисные работники - механизмы, определяющие способ загрузки контента приложения.

PWA работают как родные приложения. В конечном счете, классифицирующее приложение для прогрессивных названий должно работать неотличимо от нативного приложения. Он стоит за этим заявлением, среди прочего, за немедленную реакцию на действия пользователя. Обычный веб-сайт при переключении между его подстраницами часто показывает белую «карточку» и элементы, попадающие на нее. PWA должен действовать максимально плавно и предлагать мгновенный доступ к контенту. При небольшом желании со стороны программиста также возможно настроить приложение для системы, в которой оно работает, без необходимости создания совершенно отдельного кода.

И, наконец, эти приложения занимают необходимый минимум в памяти устройства. Хотя современные мобильные приложения часто имеют размеры, исчисляемые сотнями мегабайт, PWA вместе с их данными занимают всего несколько десятков МБ. В моем случае, Twitter занимает всего 128 КБ, но его данные остаются 42 МБ.

В моем случае, Twitter занимает всего 128 КБ, но его данные остаются 42 МБ

Серьезность ситуации подчеркивается тем фактом, что на этот раз в разработке стандарта участвовала не только Google (которая обычно, похоже, работает над многими новыми продуктами), но и Microsoft. В последней версии Windows 10 - Spring Creators Update - приложения PWA появляются в системном магазине как обычные игры и программы. Интересно, что сайты с функциями PWA будут автоматически добавлены в Магазин Windows.

Как я уже упоминал, ChromeOS также получает полную поддержку PWA, но пока в канале системы Beta. Тем не менее, индустрия уже слышала скуление на Apple, потому что, прижавшись к стене, видя прогресс в работе над PWA, она, как обычно, решила усложнить остаток жизни и внедрила стандартную поддержку Safari по-своему, создавая проблемы для разработчиков. Однако остается надеяться, что со временем поддержка этих приложений также в системах Apple будет на том же высоком уровне, что и конкуренция :)

Отсутствие понимания идеи прогрессивных приложений может быть вызвано тем, как большинство пользователей воспринимают сеть. Веб-сайт - это реклама, которая не заполнена красивыми цифровыми творениями, которые запускаются в окне браузера. Нативные приложения - это программы, запускаемые в отдельных окнах, которые весь их код и ресурсы чаще всего хранят локально на компьютере пользователя. PWA размывают эту схему, приземляясь точно между этими двумя определениями. Распространение кода происходит быстро и безболезненно - новые версии устанавливаются параллельно на всех платформах, поддерживающих этот стандарт. Для некоторых компаний это может означать огромную экономию, но также и возможность - не только на одной из проблем выбранной платформы.

Создание приложений на основе единого кода, который работает везде, звучит великолепно и работает. Конечно, для нативных решений есть еще такие решения, как React Native или Xamarin. Однако, если вы хотите создать относительно простое приложение, все, что вам нужно сделать, это создать веб-версию и обеспечить соответствие стандарту PWA.

Вы скажете: «Хорошо, но где здесь революция, поскольку уже давно можно закрепить любую страницу и запустить ее как приложение с рабочего стола, например, в Chrome?
Webwrapper?
Что отличает прогрессивные приложения?
Чем же такие приложения отличаются от обычного сайта?