PWA-приложение как современный инструмент веб-разработки | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 11 мая, печатный экземпляр отправим 15 мая.

Опубликовать статью в журнале

Автор:

Научный руководитель:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №14 (513) апрель 2024 г.

Дата публикации: 08.04.2024

Статья просмотрена: < 10 раз

Библиографическое описание:

Карапузов, Н. В. PWA-приложение как современный инструмент веб-разработки / Н. В. Карапузов. — Текст : непосредственный // Молодой ученый. — 2024. — № 14 (513). — С. 9-12. — URL: https://moluch.ru/archive/513/112616/ (дата обращения: 03.05.2024).



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

Ключевые слова: PWA-приложение, разработка, веб.

Прогрессивные веб-приложения (Progressive Web Applications, PWA) — это современная технология разработки приложений, которая комбинирует преимущества веб-сайтов и мобильных приложений. Они обладают набором функций, позволяющих создать полноценное приложение, которое работает в браузере пользователя и может быть установлено на устройство [1].

Чтобы понять, что такое Progressive Web Apps (PWA), достаточно представить, что некий сайт взаимодействует с пользователем как приложение. То есть у пользователя есть возможность установить его на любой гаджет, получать уведомления и работать с ним. Причем работа может продолжаться даже без интернет-соединения.

Понятие PWA было использовано представителями компании Google на конференции в 2015 году, а реализовано почти два года спустя. Сегодня PWA активно используют такие компании, как Twitter, Tinder, Uber, Telegram, Starbucks, Forbes, AliExpress, Aviasales.

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

Преобразование стандартного веб-сайта в PWA-приложение выполняется в три этапа [3]:

  1. добавление манифеста PWA-приложения;
  2. разработка скрипта Service Worker;
  3. обеспечение доступа к сайту по протоколу HTTPS.

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

Service Worker фактически представляет собой прокси-сервер между веб-приложением и сетью, реализованный в виде файла на языке JavaScript. Первым шагом к использованию Service Worker является его регистрация в браузере, при которой происходит привязка скрипта к заданному URL. После регистрации Service Worker получает возможность контролировать запросы браузера к PWA-приложению. Например, для обеспечения автономной работы приложения запросы браузера перехватываются, проверяется доступность сети, и, в случае отсутствия интернет-подключения, запрашиваемый ресурс возвращается из локального хранилища. При этом для браузера результат выглядит как полноценный ответ от сервера [4].

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

Особенности PWA-приложений

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

Основные особенности и требования для PWA:

  1. Отзывчивый дизайн: PWA должно быть отзывчивым и корректно отображаться на различных устройствах, включая мобильные телефоны, планшеты и настольные компьютеры;
  2. Offline режим: PWA должно обеспечивать возможность работать в оффлайн-режиме. Для этого используется кэширование ресурсов, например, с помощью Service Worker, чтобы приложение сохраняло данные и продолжало функционировать даже при отсутствии интернета [2];
  3. Быстрая загрузка: PWA должно обеспечивать быструю инициализацию и загрузку, чтобы предоставить пользователям плавный опыт. Использование кэширования, уменьшение размера изображений и минимизация запросов к серверу способствуют ускорению загрузки;
  4. Манифест приложения: PWA должно содержать манифест, который описывает приложение, предоставляя информацию о его имени, иконках, цвете темы и других параметрах. Это помогает добавить PWA на главный экран мобильного устройства и создает впечатление нативного приложения;
  5. Service Worker: Использование службы Service Worker обеспечивает возможность фоновой синхронизации, уведомлений и кэширования ресурсов для работы в оффлайн-режиме;
  6. Безопасность: PWA должно быть развернуто на сервере с использованием протокола HTTPS для обеспечения безопасности передачи данных между клиентом и сервером;
  7. Навигация без перезагрузки: PWA предоставляет плавную навигацию без необходимости перезагрузки страницы. Это создает впечатление отзывчивости, аналогичное нативным приложениям;
  8. Работающее в различных браузерах: PWA должно быть совместимо с различными браузерами, чтобы обеспечивать одинаковый опыт пользователя независимо от выбранного им браузера;
  9. Обновления без переустановки: PWA может автоматически обновляться без необходимости переустановки. Это позволяет пользователям всегда использовать последнюю версию приложения.

Преимущества PWA-приложений

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

Можно выделить следующие преимущества технологии PWA:

  1. Прогрессивное веб-приложение обладает свойствами нативного приложения и, в то же время, позволяет использовать функционал браузера, что обеспечивает ему дополнительные возможности;
  2. Одним из преимуществ технологии PWA является автономность ее приложений. Приложение кэшируется в памяти браузера и таким образом сохраняет работоспособность в автономном режиме;
  3. PWA-технология обладает кроссплатформенностью. Разработанные с применением этой технологии приложения можно устанавливать на любые устройства независимо от платформы и операционной системы. Это является большим преимуществом по сравнению с д нативными приложениями;
  4. Клиентская часть разработки отделена от серверной части. Благодаря этому тратится меньше ресурсов и времени на разработку и доработку дизайна;
  5. Главным преимуществом прогрессивного веб-приложения по сравнению с традиционным является объем, занимаемый им в памяти устройства.

Недостатки PWA-приложений

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

Технология PWA, как и любая технология, не универсальна и имеет ряд недостатков:

  1. Невозможно наладить использование технологии в старых операционных системах. Технологии PWA не так много лет, поэтому неудивительно, что на устаревших устройствах она не может полноценно поддерживаться. Несмотря на то, что проблема несомненно решится в будущем, на данный момент это может стать причиной жалоб клиентов.
  2. По сравнению с нативными приложениями, прогрессивные веб-приложения не могут делать все, что могут обычные приложения. Сегодня по-прежнему отсутствует доступ к таким важным функциям устройства, как беспроводная технология Bluetooth, внешнее освещение, датчики приближения, возможность управления расширенными элементами камеры и другие. Так как технология PWA написана на языке программирования JavaScript, расход заряда батареи увеличивается в отличии от приложений, написанных на тех языках программирования, на которых написаны ОС.
  3. Работа офлайн так же ограничена, потому что любое прогрессивное веб-приложении в первую очередь ориентирована на работу с доступом к интернету. Но этот недостаток не является серьезным, так как на сегодняшний день большинство устройств имеют постоянное подключение к сети интернет.

Безопасность PWA-приложений

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

Одним из основных принципов безопасности PWA является защита передачи данных между клиентом и сервером. Использование протокола HTTPS обеспечивает шифрование данных и защиту от атак типа Man-in-the-Middle. Рекомендуется приобрести SSL-сертификат для домена и настроить сервер для обязательного использования HTTPS [5].

Контроль доступа и аутентификация играют ключевую роль в обеспечении безопасности PWA. Использование надежных методов аутентификации, таких как JSON Web Tokens (JWT) или OAuth, гарантирует, что только авторизованные пользователи имеют доступ к конфиденциальным данным.

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

Меры предосторожности против атак типа Cross-Site Request Forgery (CSRF) и Cross-Site Scripting (XSS) также необходимы. Использование токенов CSRF предотвращает несанкционированные запросы. Также необходимо и фильтровать ввод пользователя, чтобы предотвратить вставку вредоносного кода.

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

Литература:

  1. Progressive web apps // MDN Web Docs URL: https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps
  2. Что делает прогрессивное веб-приложение хорошим? // Web.dev URL: https://web.dev/articles/pwa-checklist?hl=ru
  3. Get started with Progressive Web Apps // Microsoft Learn URL: https://learn.microsoft.com/en-us/microsoft-edge/progressive-web-apps-chromium/how-to/
  4. John M. Wargo. Learning Progressive Web Apps: Building Modern Web Apps Using Service Workers — М.: O’Reilly, 2020
  5. How to Protect Your PWA — Web App Security Best Practices // FreeCodeCamp URL: https://www.freecodecamp.org/news/how-to-protect-your-pwa/
Основные термины (генерируются автоматически): PWA, HTTPS, приложение, CSRF, JSON, пользователь, устройство, автономный режим, нативное приложение, прогрессивное веб-приложение.


Ключевые слова

разработка, веб, PWA-приложение

Похожие статьи

Задать вопрос