В 2015 г. Google заявила о создании новой технологии — прогрессивных веб-приложений (Progressive Web App, PWA). Однако тогда мало кто воспринял это новшество всерьез. Тем не менее, сегодня PWA становится популярным трендом. Так что это за технология? PWA — это трансформация нативных приложений с привлечением их возможностей (gps-навигация и другие нативные функции) в высокопроизводительные веб-приложения.

Учитывая, что производительность и пользовательский опыт становятся все более важными критериями для корпоративных мобильных приложений, в будущем PWA могут стать стандартом разработки. Об этом на портале TechTarget пишет Эрика Миксен. Она считает, что предприятиям, которые не знакомы с этой технологией, имеет смысл изучить ее и приступить к созданию экспериментального софта. С ней солидарен вице-президент и главный аналитик Forrester Research Майкл Фейсмир: «Если сегодня вы создаете веб-приложение, то это должно быть PWA. Не вижу препятствий, которые бы мешали их внедрению».

Как работают PWA-приложения и их преимущества в сравнении с мобильными программами

PWA работают в Интернете, но подобно мобильным приложениям, их можно вызывать с главного экрана, отправлять push-уведомления и т. д. Google уже внедрила поддержку PWA для браузеров, работающих на устройствах Android, тогда как проприетарные браузеры Safari на iPhone или iPad еще не могут этим похвастаться. Одно из самых важных преимуществ PWA перед нативными приложениями — это отсутствие посредника в лице магазинов приложений App Store и Google Play. Для разработчиков это означает, что им больше не нужно руководствоваться установленными правилами и политикой Apple и Google, а для пользователей — упрощение процедуры установки. Для того, чтобы открыть PWA, достаточно перейти с мобильного устройства на сайт компании, и привязанное веб-приложение откроется автоматически.

Разработка PWA ведется с применением исключительно веб-технологий. За управление кэшем ресурсов и результатов сетевых запросов в автомномном режиме на Android отвечает технология Service Worker — JavaScript-файл, который может контролировать веб-страницу/сайт, с которым он ассоциируется, перехватывать и модифицировать запросы навигации и ресурсов. В большинстве PWA-приложений архитектура App Shell отделяет ядро инфраструктуры приложения и UI от данных. С помощью Service Worker весь пользовательский интерфейс и инфраструктура кэшируются локально, так что при последующих загрузках PWA требуется только получение необходимых данных, а не загрузка всего приложения целиком.

Архитектура App Shell позволяет не только быстро загружать окружение приложения, но и обеспечивает защиту как файла AndroidManifest.xml, так и всего транспортного слоя. Помимо этого архитектура PWA предусматривает их установку в соответствии с контрольным списком функций Google. К преимуществам PWA для конечного пользователя можно отнести то, что их интерфейс не отличим от нативных приложений и позволяет ИТ-отделу без особых усилий подключать такой софт (как клиентский, так и собственный) к MDM-системам предприятия.

По словам Миксен, организации уже приступили к разработке коммерческих PWA. К примеру, платформенный сервис Nexercise, который предлагает услуги по оздоровлению, разрабатывает PWA-версию приложения для фитнеса Sworkit. Ранее вышли его версии для Apple iOS и Android, а также веб-версия для Apple TV. Директор по развитию Nexercise Давид Фрахм говорит, что для разработки PWA-версии задействовалась кодовая база нативной и веб-версий. «Визуально наше PWA выглядит примерно так же, как и веб-приложение, и это здорово, потому что у нас отличное приложение и мы не хотим его менять. Несомненным плюсом является то, что отсутствуют ограничения в виде магазина приложений», — сказал он.

Помимо схемы B2C организации также разрабатывают PWA для внутреннего применения. Сингапурская Flex, занимающаяся предоставлением логистических услуг на производстве, разработала PWS, которые при помощи push-уведомлений информируют сотрудников о клиентах, предоставляя подробную информацию об объеме заказов. По его словам исполнительного директора компании Микеля Хагназари, PWA обеспечивает сотрудников данными в ситуациях, когда у них отсутствует подключение по сети.

PWA — прогрессирующий тренд

Любой существующий подход к разработке мобильных приложений имеет недостатки. Об этом говорит хотя бы то, что постепенно сокращается число пользователей таких приложений — многих из них не устраивает отсутствие требуемого софта на платформах iOS или Android. К недостатку нативных приложений можно отнести привязку к коду. Некоторые недостатки имеются и у PWA, из-за чего, собственно, Google пока что не решается открыть для них доступ в Play Store.

Тем не менее, они набирают популярность, потому что по сравнению с нативными PWA легче разработать, что открывает новые возможности для небольших компаний. Оно почти не занимает места в памяти телефона, открывается с любого браузера и, что особенно важно, для его сопровождения не обязательно нанимать сторонних разработчиков. «Для создания PWA ИТ-персоналу небольших компаний не требуются навыки разработки приложений на Android и iOS. В первую очередь, когда мы говорим о PWA, мы говорим об их эффективности для бизнеса, а не о сложности их создания», — утверждает Фейсмир.

Успех PWA подстегивает упрощение методик разработки. По словам Фрахма, если раньше его команда разработчиков полагалась на ассортимент сложных веб-инструментов для создания традиционных приложений, то теперь она привлекает решения таких компаний, как Ionic и Mobify — это легкие, интуитивно понятные средства программирования PWA для людей с небольшим опытом разработки.

Вдобавок к этому на востребованность PWA повлияла эволюция браузеров — Google Chrome, Opera, Mozilla Firefox, Microsoft Edge и Samsung Internet или уже поддерживают автономную работу PWA, или сделают это в ближайшее время. Как рассказал Фрахм, поддержка Sworkit на многих браузерах Android настолько хороша, что его компания больше не видит нужды в нативном Android-приложении. Он говорит, что во многом это связано с технической оснащенностью браузеров, которая уменьшает потребность в сторонних инструментах разработки. Для создания PWA Nexercise применяет фреймворк Ionic.

Аналитик Forrester Research видит веские основания тому, что PWA станет новым стандартом разработки мобильных приложений. Он считает, что пока рано говорить о полноценной замене мобильных приложений прогрессивными. Скорее всего, PWA нужно рассматривать как новую ветвь мобильных технологий, которая будет развиваться независимо от игровых приложений и контролирующих монополий в лице App Store и Play Market. К тому же, развитию технологии PWA препятствуют некоторые ограничения — Apple пока что не включает их поддержку в браузере Safari, однако есть видимые признаки, что вскоре компания изменит свое решение.