Перейти к содержанию

Сделайте PWA доступным

Добро пожаловать на День 6 из #30DaysOfPWA! Хотите узнать больше об этом проекте? Ознакомьтесь с нашим постом Вступление, чтобы получить более подробную информацию о дорожной карте и участниках. А теперь давайте погрузимся в работу!

Добро пожаловать на День 6. Создание PWA-версии

Что вы узнаете сегодня

  • Что такое проект Web Capabilities?
  • Что представляет собой проект Fugu?
  • Какие возможности я могу опробовать?
  • Что такое обнаружение признаков? Как его использовать?

Подведем итоги

Мы узнали, что:

  • Прогрессивные веб-приложения используют прогрессивное усовершенствование для обеспечения специфического для конкретной платформы опыта на устройствах, а в других местах возвращаются к привычному, удобному поведению веб-сайта.
  • В реализации используются открытые веб-технологии, обеспечивающие такие характеристики, как возможность установки, независимая от сети работа, безопасность и возможность обнаружения (в поиске и магазинах приложений).
  • Основными строительными блоками являются HTTPS (безопасная работа), Service Workers (работа в автономном режиме, повторное привлечение пользователей) и Web App Manifests (установка на устройство, публикация в магазине).
  • Сервис-воркеры — это "бьющееся сердце" PWA. Мы узнали о вариантах хранения, стратегиях кэширования и событиях жизненного цикла, которые помогают нам реализовать ключевую функциональность приложений, готовых к работе в автономном режиме.

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

Что такое веб-возможности?

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

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

Таков промис проекта Web Capabilities Project, известного также как Project Fugu.

Что такое проект " Fugu"?

Project Fugu — это совместная инициатива с одной главной идеей: "веб-приложения должны уметь делать все, что умеют приложения для конкретных платформ". В проекте участвуют представители Google, Intel, Microsoft, Samsung и других заинтересованных сторон, заинтересованных в успехе веб-платформы.

Почему "Фугу"? Это японское слово, означающее рыбу-пыхтелку (также логотип проекта), которая является деликатесом, но может убить вас, если ее неправильно приготовить. В статье объясняется, что команда Chromium выбрала это слово, чтобы отразить свою глубокую убежденность в том, что если они нарушат основные постулаты веба (безопасность пользователей, конфиденциальность, доверие), то это негативно скажется на способности проекта процветать.

Как работает Fugu? Это многоступенчатый процесс, в ходе которого предложения по созданию новых API-возможностей вносятся в открытый доступ и итеративно развиваются с учетом обратной связи со всеми ключевыми заинтересованными сторонами. Этапы процесса стандартизации следующие:

  1. Предлагается новая возможность — путем подачи запроса на возможность
  2. Возможность передается на рассмотрение — пишутся пояснения, запрашиваются отзывы.
  3. Работа начата — формальная спецификация API для итераций,
  4. Доступно тестирование разработчиками — под экспериментальным флагом, не для производства.
  5. Доступно в origin trials — для проверки, в прототипах для более широкой аудитории
  6. Возможность использования has shipped — API стабильно работает в последней версии браузера.

На Fugu Tracker в режиме реального времени обновляется информация о статусе каждого API-возможности в этом конвейере.

Какие возможности я могу использовать сегодня?

Просмотрите список Shipped на трекере API Project Fugu и щелкните на API, чтобы узнать, что он может делать и насколько хорошо он поддерживается в различных браузерах (в том числе на мобильных платформах Android и iOS). Вот несколько примеров из этого списка:

Возможности Описание
Ярлыки для приложений Позволяет веб-приложению регистрировать ярлыки для обычных задач. Обычно они добавляются в иконку запуска приложения (для прогрессивного веб-приложения), позволяя пользователю быстро запускать ключевые задачи.
Web Share Target Web Share Target позволяет веб-сайтам получать общие данные (текст, URL, изображения) и регистрироваться, чтобы пользователь мог выбирать их в качестве целей из контекстов общего доступа, включая (но не ограничиваясь) Web Share.
Периодическая фоновая синхронизация Периодическая синхронизация — это расширение Background Sync, позволяющее веб-сайтам регистрировать задачи для запуска в сервисе-воркере через периодические интервалы времени при наличии сетевого подключения.
Регистрация обработчиков протоколов URL Позволяет веб-приложениям регистрировать себя в качестве обработчиков пользовательских протоколов/схем URL с помощью манифеста установки.
Наложение элементов управления окнами (для установленных настольных PWA) При включении функции наложения элементов управления окнами для установленных настольных веб-приложений клиентская область приложения расширяется и занимает все окно, включая область строки заголовка, а кнопки управления окном (закрытие, максимизация/восстановление, минимизация) накладываются поверх клиентской области.

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

Давайте посмотрим на возможности в действии!

Хотите увидеть, как возможности используются в PWA? Загляните в раздел Sample PWAs и посмотрите, какие возможности поддерживаются в каждом из них. Установите приложение и изучите его, чтобы понять, можно ли использовать эту возможность на выбранном вами устройстве и в выбранном браузере. Затем просмотрите источник, чтобы понять, как эта возможность использовалась в контексте данного приложения.

Образец PWA Продемонстрированные возможности
Webboard Shortcuts, Web Share, Share Target
Советы Dev Tools Web Share, работа с URL, фоновая синхронизация, периодическая фоновая синхронизация, уведомления
My Tracks Оверлей управления Windows, работа с протоколами, ярлыки, работа с файлами
Мои фильмы Фоновая синхронизация, уведомления
BPM Techno Ярлыки, работа с URL, работа с файлами, работа с протоколами, общий доступ
1DIV Windows Control Overlay

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

Визуальное обобщение

Это было очень много! Вот визуальное резюме того, что мы изучили.

Визуальное обобщение введения в Web-возможности

Основные выводы:

  • Web Capabilities — это многоорганизационная инициатива, призванная помочь веб-приложениям делать все, что могут делать приложения для конкретных платформ.
  • Проект Fugu предоставляет API-трекер для получения информации о текущих предложениях по возможностям и их состоянии в процессе разработки стандартов.
  • Предложения по возможностям рассматриваются в открытом режиме, их статус меняется от запроса функции до рассмотрения, начала работы, испытаний в режиме dev и origin — до окончательной поставки.
  • Вы можете изучить примеры PWA, чтобы понять, как эти возможности используются (опыт) и интегрируются (код).

И не забудьте, что уже через несколько дней вас ждет целая неделя глубокого погружения в расширенные возможности!

Учебные ресурсы

  1. Разблокирование новых возможностей для Web — процесс.
  2. Project Fugu: Status — блог.
  3. Project Fugu: Tracker — приборная панель.
  4. Project Fugu: Chromium — предложения
  5. Sample PWAs — возможности Microsoft Edge
  6. Экспериментальные возможности + Origin Trials — Microsoft Edge

Упражнение

Выберите один из образцов PWA:

  • Определите новые возможности, которые он поддерживает.
  • Найдите эти возможности в Fugu API tracker и узнайте, что они делают.
  • Проверьте, в каких браузерах они поддерживаются в настоящее время.
  • Установите PWA на поддерживаемые браузеры, попробуйте использовать возможности.
  • Изучите код — можно ли увидеть, как была обнаружена возможность, а затем использована?

Источник — 1.6 Make PWA Capable

Комментарии