Прогрессивное веб-приложение

редактировать
Логотип PWA

A Прогрессивное веб-приложение (PWA ) является типом прикладное программное обеспечение, доставляемое через сеть, созданное с использованием общих веб-технологий, включая HTML, CSS и JavaScript. Он предназначен для работы на любой платформе, которая использует соответствующий стандартам браузер, включая настольные и мобильные устройства.

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

  • автономную работу
  • Высокая производительность
  • Фоновая обработка в сервис-воркерах в отдельном потоке
  • Доступ к датчикам телефона
  • Поддержка push уведомления
  • Значок на главном экране телефона

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

По состоянию на апрель 2018 года функции PWA в разной степени поддерживаются Mozilla Firefox, Google Chrome, Apple Safari и Microsoft Edge, но другие браузеры могут поддерживать функции, которые потребуются в будущем. Некоторые компании отмечают значительные улучшения в широком спектре ключевых показателей эффективности после внедрения PWA, таких как увеличение времени, затрачиваемого на страницу, конверсии или доход.

Содержание

  • 1 Предпосылки
  • 2 Характеристики
  • 3 Технологии
    • 3.1 Манифест
      • 3.1.1 Поддержка iOS
    • 3.2 WebAssembly
    • 3.3 Хранение данных
      • 3.3.1 Интернет Хранилище
      • 3.3.2 Сервисные работники
      • 3.3.3 API индексированной базы данных
      • 3.3.4 AppCache (устаревший)
  • 4 См. Также
  • 5 Ссылки

Справочная информация

На с выпуском iPhone в 2007 году Стив Джобс объявил, что веб-приложения, разработанные в HTML5 с использованием архитектуры AJAX, будут стандартом формат для приложений iPhone. Комплект для разработки программного обеспечения (SDK) не требуется, и приложения будут полностью интегрированы в устройство через механизм браузера Safari. Позже эта модель была заменена на App Store, как средство предотвращения взломов и успокоения разочарованных разработчиков. В октябре 2007 года Джобс объявил, что SDK будет запущен в следующем году. В результате, хотя Apple продолжала поддерживать веб-приложения, подавляющее большинство приложений iOS переместилось в App Store.

Начиная с начала 2010-х годов динамические веб-страницы позволяли использовать веб-технологии для создания интерактивных веб-приложений. Адаптивный веб-дизайн и гибкость размера экрана, которую он обеспечивает, сделали разработку PWA более доступной. Постоянные усовершенствования HTML, CSS и JavaScript позволили веб-приложениям включать более высокий уровень интерактивности, делая возможными нативные взаимодействия на веб-сайтах и, следовательно, на PWA.

Выпущен Firefox Firefox OS в 2013 году. Он задумывался как операционная система с открытым исходным кодом для запуска веб-приложений в качестве собственных приложений на мобильных устройствах с Gaia, построенным в качестве интерфейса HTML5. Разработка Firefox OS завершилась в 2016 году.

В 2015 году дизайнер Фрэнсис Берриман и инженер Google Chrome Алекс Рассел придумали термин «прогрессивные веб-приложения» для описания приложений, использующих преимущества новых поддерживаемых функций современными браузерами, включая сервис-воркеры и манифесты веб-приложений, которые позволяют пользователям обновлять веб-приложения до прогрессивных веб-приложений в их родной операционной системе (ОС). Затем Google приложил значительные усилия для продвижения разработки PWA для Android. С введением Apple поддержки сервис-воркеров для Safari в 2017 году PWA теперь поддерживаются в двух наиболее часто используемых мобильных операционных системах: Android и iOS.

. К 2019 году PWA были доступны на настольных компьютерах. браузеры Microsoft EdgeWindows ) и Google Chrome (в Windows, macOS, Chrome OS и Linux ).

Характеристики

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

  • Прогрессивный - работает для каждого пользователя, независимо от выбора браузера, с использованием принципов прогрессивного улучшения.
  • Отзывчивый - Подходит любой форм-фактор: настольный компьютер, мобильный телефон, планшет или формы, которые еще не появились.
  • Быстрее после начальной загрузки - после завершения первоначальной загрузки один и тот же контент и элементы страницы не нужно повторно загружать каждый раз.
  • Независимость от подключения - Сервис-воркеры разрешают использование в автономном режиме или в сетях с низким качеством.
  • Как приложение - ощущается как приложение для пользователя с взаимодействиями в стиле приложения и навигация.
  • Свежий - всегда актуальный благодаря процессу обновления сервис-воркера.
  • Безопасный - обслуживается через HTTPS, чтобы предотвратить отслеживание и гарантировать, что контент не хранится ' t был подделан.
  • Обнаруживаемый - Определяется как «приложение» с помощью manifest.json и регистрации сервис-воркера и обнаруживается поисковыми системами.
  • Повторное взаимодействие - Возможность использования гной h уведомления для поддержания взаимодействия с пользователем.
  • Устанавливаемый - Предоставляет значки на главном экране без использования App Store.
  • С возможностью связывания - можно легко поделиться через URL-адрес и не требуют сложной установки.

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

  • Из безопасного источника. Обслуживается через TLS и отображается зеленый замок (нет активного смешанного содержимого)
  • Загружать в автономном режиме (даже если только пользовательская автономная страница). Подразумевается, что для прогрессивных веб-приложений требуются работники служб.
  • Ссылка на манифест веб-приложения по крайней мере с четырьмя ключевыми свойствами: name, short_name, start_url и display (со значением standalone или fullscreen)
  • Значок размером не менее 144 × 144 в формате PNG.
  • Использование векторной графики, которая неограниченно масштабируется и требует меньшего размера файлов.

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

Технологии

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

Manifest

Это спецификация W3C, определяющая манифест на основе JSON (обычно с пометкой manifest.json), чтобы предоставить разработчикам централизованное место для размещения метаданных, связанных с веб-приложением, включая:

  • Имя веб-приложения
  • Ссылки на значки или изображение веб-приложения. объекты
  • Предпочтительный URL-адрес для запуска или открытия веб-приложения
  • Данные конфигурации веб-приложения
  • Ориентация веб-приложения по умолчанию
  • Параметр для установки режим отображения, например полноэкранный режим

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

Поддержка iOS

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

WebAssembly

WebAssembly позволяет запускать предварительно скомпилированный код в веб-браузере с почти нормальной скоростью. Таким образом, библиотеки, написанные на таких языках, как C, могут быть добавлены в веб-приложения. Из-за дороговизны передачи данных из JavaScript в WebAssembly в ближайшее время будут использоваться в основном вычисления (например, распознавание голоса и компьютерное зрение), а не целые приложения.

Хранилище данных

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

Веб-хранилище

Веб-хранилище - это стандартный API W3C, который позволяет хранить ключ-значение в современных браузерах. API состоит из двух объектов: sessionStorage (который включает хранилище только для сеанса, которое стирается после завершения сеанса браузера) и localStorage (которое включает хранилище, которое сохраняется между сеансами).

Service worker

A Service worker - это web worker, который реализует программируемый сетевой прокси, который может отвечать на веб-запросы / HTTP-запросы основного документа. Он может проверять доступность удаленного сервера и кэшировать контент, когда этот сервер доступен, а затем передавать это содержимое в документ. Сервис-воркеры, как и любые другие веб-воркеры, работают отдельно от основного контекста документа. Сервисные работники могут обрабатывать push-уведомления и синхронизировать данные в фоновом режиме, кэшировать или извлекать запросы ресурсов, перехватывать сетевые запросы и получать централизованные обновления независимо от документа, который их зарегистрировал, даже если этот документ не загружен.

Сервисные работники проходят трехэтапный жизненный цикл: Регистрация, Установка и Активация . Регистрация включает в себя сообщение браузеру местоположения сервисного работника при подготовке к установке. Установка происходит, когда в браузере для веб-приложения не установлен сервисный работник или если есть обновление для сервис-воркера. Активация происходит, когда все страницы PWA закрываются, чтобы не было конфликта между предыдущей версией и обновленной. Жизненный цикл также помогает поддерживать согласованность при переключении между версиями сервис-воркера, поскольку для домена может быть активен только один сервис-воркер.

API индексированной базы данных

API индексированной базы данных - это стандартный API базы данных W3C доступно во всех основных браузерах. API поддерживается современными браузерами и позволяет хранить объекты JSON и любые структуры, представленные в виде строки. Индексированный API базы данных можно использовать с библиотекой-оболочкой, предоставляющей дополнительные конструкции вокруг него.

AppCache (устаревший)

Кэш приложения (или AppCache или манифест кеша HTML5) - это более ранняя технология, которая позволяла приложению заранее кэшировать контент для последующего использования, когда устройство отключено. Он адекватно работает для одностраничных приложений, для которых он был разработан, но проблематично не работает для многостраничных приложений, таких как вики. По состоянию на май 2019 года технология поддерживается основными браузерами и годами используется некоторыми сайтами, но она уже устарела в пользу сервис-воркеров и в конечном итоге будет удалена.

См. Также

Ссылки

Последняя правка сделана 2021-06-02 07:54:20
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте