Когда Стив Джобс представил самый первый 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% из которых уделяется лишь трем самым любимым. Это означает, что крайне сложно заставить пользователей обратить внимание на приложение. И это еще не все.
Для начала необходимо убедить пользователей загрузить приложение. Для этого они должны:
На каждом из этих шагов можно потерять 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 под названием What PWA Can Do Today, которое дает ответы на эти вопросы и демонстрирует все возможности PWA. На создание меня вдохновил сайт What Web Can Do Today.
Вы можете установить его на свой мобильный телефон, планшет или компьютер и поэкспериментировать с его функциями. Я также создал репозиторий на Github для сбора ошибок и буду продолжать его развивать.
Перевод статьи Danny Moerkerke: Progressive Web Apps Will Replace Your Native App
Комментарии