Progressive Web Apps

Когда Стив Джобс представил самый первый iPhone в 2007 году, он также высказал идею о том, что разработчики смогут создавать приложения для iPhone лишь с помощью веб-технологий. В то время еще не было ни App Store, ни такого понятия, как нативные приложения.

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

К сожалению, эта идея не получила развития, и через пару месяцев был запущен App Store. С того момента разработчикам приходилось использовать нативный SDK для создания приложений для iPhone.

Однако в 2020 году первоначальная идея Джобса наконец становится реальностью.

Состояние нативных приложений

В 2014 году Forbes назвал самой большой ошибкой Джобса его стремление к тому, чтобы разработчики создавали приложения для iPhone только с помощью веб-технологий, поскольку App Store имел огромный успех с момента своего запуска.

Трудно переоценить этот факт, поскольку в настоящее время в App Store от Apple и Play Store от Google есть миллионы приложений, а пользователи мобильных устройств тратят 80% своего времени на их использование.

Получается, мобильные приложения пользуются успехом?

Проблема в том, что пользователи тратят 96% времени на использование 10 своих приложений, 77% из которых уделяется лишь трем самым любимым. Это означает, что крайне сложно заставить пользователей обратить внимание на приложение. И это еще не все.

Для начала необходимо убедить пользователей загрузить приложение. Для этого они должны:

  • перейти в App Store/Play Store;
  • найти приложение;
  • нажать на установку;
  • принять разрешения;
  • дождаться окончания загрузки.

На каждом из этих шагов можно потерять 20% потенциальных пользователей.

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

Кроме того, создание нативного приложения стоит дорого. Если оно не является гибридным, то вам потребуется создать две версии: одну для iOS и другую для Android. Учитывая тот факт, что большинство приложений теряют 77% пользователей в течение 3 дней, стоит подумать дважды даже о создании одного.

Конечно, у самых популярных приложений дела обстоят получше, но даже лучшие 100 приложений теряют почти половину пользователей в первые 3 дня после установки.

Таким образом, напрашивается вопрос…

Какую пользу приносит приложение?

Когда я захожу на сайт LinkedIn через телефон, всегда появляется баннер с вопросом, хочу ли я установить их мобильное приложение. То же самое касается Medium и многих других сайтов. Обычно они не предоставляют возможность отклонить это предложение раз и навсегда.

Однако нет смысла скачивать мобильное приложение, если опыт работы с мобильным веб-сайтом достаточно хорош, а наличие приложения не привносит дополнительных преимуществ. Кажется, будто у некоторых сайтов есть приложение только потому, что оно есть у всех.

Когда потенциальные пользователи не видят никакой ценности в приложении, их будет трудно убедить даже загрузить его. Поэтому:

Почему бы просто не оптимизировать мобильный опыт для веб-сайта?

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

А что, если бы вы могли превратить этот мобильный опыт в подобный работе в приложении? Это вполне осуществимо!

Стив Джобс опередил свое время

Джобс не использовал термин «прогрессивные веб-приложения», но концепция, которую он описал еще в 2007 году, заключалась именно в этом: приложения, созданные с использованием веб-технологий, которые доставляются через сеть. И их можно начать создавать уже сегодня.

Любой веб-сайт может быть прогрессивным веб-приложением

Прогрессивное веб-приложение (Progressive Web App — PWA) — это просто веб-сайт с некоторыми дополнительными функциями. Это означает, что практически любой веб-сайт может стать PWA. Для этого нужно добавить только две функции: сервис-воркер и файл manifest.json.

Сервис-воркер — это файл JavaScript, который позволяет веб-сайту работать в автономном режиме. Он действует как прокси-сервер между браузером и сетью и может перехватывать сетевые запросы и обслуживать пользовательские ответы.

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

Таким образом, веб-сайт может предоставлять пользовательский опыт, подобный работе в приложении, избавляя от необходимости создавать полноценное нативное приложение.

В файле manifest.json перечислены иконки, используемые приложением, его стартовый URL и ориентация экрана.

С технической точки зрения, обслуживание сайта по HTTPS, наличие сервис-воркера и файла manifest.json — это все, что нужно для превращения веб-сайта в PWA.

На данный момент PWA не предназначены для замены нативных приложений, но я считаю, что в конечном итоге это произойдет.

Пути назад уже нет

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

Поскольку приложение технически является просто веб-сайтом, его можно найти через Google. Для того, чтобы установить его, достаточно просто URL, что избавляет от необходимости проходить через процесс установки в магазине приложений и захламлять устройство десятками мегабайт кода. PWA создается только с помощью HTML, CSS и JavaScript, что обеспечивает его быстроту и легкость.

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

Однако новая эпоха еще не наступила

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

Android значительно лучше поддерживает PWA и быстро развивается, тогда как поддержка на iOS ограничена и непоследовательна. Однако, несмотря на то, что Apple предпочитает это умалчивать, iOS уже добилась значительных улучшений за последнее время и продолжает идти вперед.

Состояние PWA на сегодняшний день

Какими возможностями обладает PWA на данный момент? Как оно работает на различных платформах?

Я создал PWA под названием What PWA Can Do Today, которое дает ответы на эти вопросы и демонстрирует все возможности PWA. На создание меня вдохновил сайт What Web Can Do Today.

Вы можете установить его на свой мобильный телефон, планшет или компьютер и поэкспериментировать с его функциями. Я также создал репозиторий на Github для сбора ошибок и буду продолжать его развивать.

Читайте также:


Перевод статьи Danny Moerkerke: Progressive Web Apps Will Replace Your Native App

Предыдущая статьяКросс-компиляция программ Rust для запуска на маршрутизаторе
Следующая статьяКак работает новый await верхнего уровня в JavaScript