Контакты

Россия 196084 , Санкт-Петербург, ул. Заозерная, дом №8, корпус 2, Литера А, офис 212

Мы работаем по будням с 10.00 до 19.00 +7 (495) 215-53-16 +7 (812) 748-20-96 info@notissimus.com
Социальные сети

Введение

В современном мире мобильные приложения стали неотъемлемой частью нашей повседневной жизни. Однако разработка традиционных нативных приложений требует значительных ресурсов, времени и знаний, а также несет определенные ограничения, связанные с разными платформами (iOS, Android). В этом контексте Progressive Web Apps (PWA) представляют собой мощную альтернативу, предлагающую преимущества как веб-, так и нативных приложений.

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

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

1. Что такое Progressive Web Apps (PWA)?

Progressive Web Apps (PWA) – это веб-приложения, которые обладают улучшенными возможностями и предоставляют пользователю опыт, схожий с работой с нативным мобильным приложением. Они используют современные веб-стандарты для предоставления надежного, быстрого и привлекательного пользовательского опыта. Основная идея PWA заключается в том, чтобы “прогрессивно” улучшать возможности веб-приложения для пользователей, чьи браузеры поддерживают современные функции.

Ключевые характеристики PWA:

  • Прогрессивность (Progressive): Работают для любого пользователя, независимо от браузера, благодаря принципу постепенного улучшения.
  • Отзывчивость (Responsive): Адаптируются к любому форм-фактору: настольным компьютерам, мобильным устройствам, планшетам.
  • Возможность подключения (Connectivity independent): Работают в автономном режиме или при нестабильном интернет-соединении благодаря Service Workers.
  • Приложение (App-like): Предоставляют пользователю опыт, схожий с нативным приложением, благодаря интерфейсу в стиле приложения.
  • Свежесть (Always up-to-date): Обновляются автоматически благодаря процессу Service Worker.
  • Безопасность (Safe): Обслуживаются через HTTPS для предотвращения подглядывания за контентом.
  • Обнаруживаемость (Discoverable): Идентифицируются как “приложения” благодаря манифестам W3C и возможности регистрации Service Worker, позволяя поисковым системам находить их.
  • Возможность повторного вовлечения (Re-engageable): Могут отправлять push-уведомления для удержания пользователей.
  • Возможность установки (Installable): Позволяют пользователям добавлять иконку приложения на главный экран устройства без необходимости посещения магазина приложений.
  • Возможность ссылки (Linkable): Легко делятся через URL-адрес и не требуют сложной установки.

2. Ключевые технологии PWA

В основе PWA лежат несколько ключевых веб-технологий, которые в совокупности обеспечивают их функциональность и пользовательский опыт:

2.1. Service Workers

Service Workers – это JavaScript-файлы, которые работают в фоновом режиме, отдельно от веб-страницы. Они действуют как прокси между веб-приложением, браузером и сетью. Service Workers позволяют реализовать:

2.2. Web App Manifest

Web App Manifest – это JSON-файл, который предоставляет информацию о вашем веб-приложении (название, иконки, отображение, тема и т.д.). Этот файл позволяет браузеру “устанавливать” PWA на устройство пользователя, добавляя иконку на главный экран. Ссылка на спецификацию Web App Manifest на W3C.

Основные свойства манифеста:

  • "name": Название приложения, отображаемое на главном экране.
  • "short_name": Краткое название приложения, используемое, когда места недостаточно для полного названия.
  • "icons": Массив объектов, описывающих различные размеры и типы иконок приложения.
  • "start_url": URL-адрес, который открывается при запуске приложения с главного экрана.
  • "display": Определяет режим отображения приложения (standalone, fullscreen, minimal-ui, browser).
  • "theme_color": Цвет темы приложения.
  • "background_color": Цвет фона экрана запуска приложения.
  • "orientation": Предпочтительная ориентация экрана.
  • "scope": Определяет набор URL-адресов, которые считаются частью приложения.
  • "related_applications": Массив объектов, описывающих связанные нативные приложения.

2.3. HTTPS

Безопасное соединение через HTTPS является обязательным требованием для PWA. Service Workers и многие другие функции безопасности браузера требуют безопасного контекста. HTTPS обеспечивает шифрование данных между браузером пользователя и сервером, защищая от перехвата и изменения информации. Ссылка на объяснение HTTPS на Google Developers.

3. Преимущества разработки мобильных приложений с помощью PWA

Использование PWA для разработки мобильных приложений предоставляет ряд значительных преимуществ как для разработчиков, так и для пользователей:

  • Снижение затрат на разработку: Разработка PWA требует написания единой кодовой базы, которая работает на всех платформах (Android, iOS, десктоп), что значительно снижает затраты по сравнению с разработкой отдельных нативных приложений для каждой платформы.
  • Более быстрая разработка и вывод на рынок: Единая кодовая база также ускоряет процесс разработки и позволяет быстрее выводить продукт на рынок.
  • Простота обновления: Обновления PWA развертываются на сервере и становятся доступны пользователям мгновенно при следующем открытии приложения, без необходимости скачивать обновления из магазинов приложений.
  • Улучшенная обнаруживаемость и SEO: PWA – это веб-сайты, которые индексируются поисковыми системами, что повышает их видимость и привлекает органический трафик.
  • Отсутствие необходимости проходить процесс одобрения в магазинах приложений: PWA не требуют публикации в App Store или Google Play, что избавляет от длительного процесса проверки и связанных с этим ограничений.
  • Меньший размер приложения: PWA обычно имеют значительно меньший размер по сравнению с нативными приложениями, что экономит место на устройствах пользователей.
  • Работа в условиях нестабильного соединения и в автономном режиме: Благодаря Service Workers, PWA могут работать даже при плохом интернет-соединении или полностью в автономном режиме, предоставляя пользователям непрерывный доступ к контенту и функциональности.
  • Улучшенный пользовательский опыт: PWA предоставляют плавную и быструю работу, схожую с нативными приложениями, благодаря мгновенной загрузке и возможности работы в автономном режиме.
  • Возможность установки на главный экран: Пользователи могут добавить иконку PWA на главный экран своего устройства, обеспечивая быстрый доступ к приложению, как к нативному.
  • Push-уведомления: PWA могут отправлять push-уведомления, что позволяет поддерживать взаимодействие с пользователями и информировать их о важных событиях.
  • Увеличение вовлеченности пользователей: Сочетание быстродействия, возможности работы в автономном режиме и push-уведомлений способствует повышению вовлеченности пользователей.

4. Недостатки и ограничения PWA

Несмотря на многочисленные преимущества, PWA также имеют некоторые недостатки и ограничения:

  • Ограниченный доступ к аппаратным функциям: PWA имеют более ограниченный доступ к аппаратным функциям устройства (камера, Bluetooth, NFC и т.д.) по сравнению с нативными приложениями. Хотя поддержка доступа к аппаратным функциям постоянно расширяется, на данный момент некоторые возможности могут быть недоступны. Ссылка на сайт What Web Can Do Today для отслеживания доступных API.
  • Поддержка браузерами: Хотя поддержка PWA постоянно улучшается, некоторые функции могут не полностью поддерживаться старыми версиями браузеров.
  • Ограничения на iOS: iOS исторически имела некоторые ограничения в поддержке PWA по сравнению с Android. Например, до недавнего времени на iOS отсутствовала полная поддержка push-уведомлений для PWA, добавленных на главный экран. Однако, ситуация улучшается с каждой новой версией iOS.
  • Отсутствие в магазинах приложений: Для некоторых пользователей отсутствие PWA в привычных магазинах приложений может быть минусом, так как они привыкли искать и устанавливать приложения именно там.
  • Потребление ресурсов в фоновом режиме: Service Workers, работающие в фоновом режиме, могут потреблять ресурсы устройства, что может влиять на время работы от аккумулятора.

5. Процесс разработки PWA

Разработка PWA во многом схожа с разработкой обычных веб-приложений, но с добавлением нескольких ключевых шагов:

  1. Планирование и проектирование: Определите цели вашего приложения, целевую аудиторию, функциональность и пользовательский интерфейс.
  2. Создание базового веб-приложения: Разработайте основную структуру вашего веб-приложения с использованием HTML, CSS и JavaScript. Обеспечьте отзывчивый дизайн для различных размеров экранов.
  3. Создание Web App Manifest: Создайте файл manifest.json и добавьте его в корневую директорию вашего приложения. Укажите в нем название приложения, иконки, отображение и другие свойства.
  4. Реализация Service Worker: Напишите JavaScript-код для Service Worker, который будет отвечать за кэширование ресурсов, обработку push-уведомлений и другие фоновые задачи. Зарегистрируйте Service Worker в вашем основном JavaScript-файле.
  5. Обеспечение безопасного соединения (HTTPS): Настройте HTTPS для вашего веб-приложения. Это необходимо для работы Service Workers и других функций безопасности.
  6. Тестирование: Тщательно протестируйте ваше PWA на различных устройствах и браузерах, проверяя функциональность, производительность и отзывчивость. Используйте инструменты разработчика браузера (например, Lighthouse в Chrome) для анализа производительности и соответствия критериям PWA.
  7. Развертывание: Разверните ваше PWA на веб-сервере.
  8. Продвижение: Продвигайте ваше PWA, информируя пользователей о возможности установки на главный экран и преимуществах использования.

6. Лучшие практики разработки PWA

Соблюдение лучших практик поможет вам создать качественное и эффективное PWA:

  • Ориентированность на пользователя: Ставьте во главу угла потребности и ожидания ваших пользователей.
  • Производительность: Оптимизируйте ваше приложение для быстрой загрузки и плавной работы. Минимизируйте размер ресурсов, используйте кэширование, оптимизируйте изображения.
  • Надежность: Обеспечьте работу приложения даже при нестабильном интернет-соединении. Продумайте обработку ошибок и offline-режим.
  • Безопасность: Используйте HTTPS для защиты данных пользователей.
  • Доступность: Разрабатывайте приложение с учетом принципов доступности (WCAG) для пользователей с ограниченными возможностями.
  • SEO-оптимизация: Поскольку PWA – это веб-сайты, не забывайте о SEO-оптимизации для привлечения органического трафика.
  • Использование современных веб-стандартов: Применяйте современные HTML5, CSS3 и JavaScript для создания функционального и привлекательного интерфейса.
  • Регулярное тестирование: Постоянно тестируйте ваше PWA на различных устройствах и браузерах.
  • Аналитика: Используйте аналитические инструменты для отслеживания поведения пользователей и выявления областей для улучшения.

7. Примеры использования PWA

Многие крупные компании успешно используют PWA для предоставления своим пользователям улучшенного мобильного опыта:

8. Сравнение PWA с нативными и гибридными приложениями

Для лучшего понимания места PWA в мире мобильной разработки, полезно сравнить их с другими подходами:

Таблица 1: Сравнение PWA, нативных и гибридных приложений

ХарактеристикаPWAНативные приложенияГибридные приложения
РазработкаВеб-технологии (HTML, CSS, JavaScript)Специфические языки (Java/Kotlin, Swift/Obj-C)Веб-технологии в WebView
ПроизводительностьБлизко к нативнойВысокаяЗависит от производительности WebView
Доступ к аппаратуОграниченный, но расширяетсяПолныйОграниченный через плагины
УстановкаДобавление на главный экран через браузерЧерез магазины приложенийЧерез магазины приложений
ОбновленияМгновенные через серверЧерез магазины приложенийЧерез магазины приложений
ОбнаруживаемостьВысокая (индексируются поисковиками)Ограниченная (только через магазины)Ограниченная (только через магазины)
КроссплатформенностьПолнаяТребуется отдельная разработка для каждой платформыОдна кодовая база для нескольких платформ
Стоимость разработкиНижеВысокаяСредняя
Автономная работаДа (с Service Workers)ДаЗависит от реализации
Push-уведомленияДаДаДа

9. Инструменты и технологии для разработки PWA

Существует множество инструментов и технологий, облегчающих разработку PWA:

  • Lighthouse (Chrome DevTools): Инструмент для аудита веб-приложений, проверяющий их соответствие критериям PWA, производительность, доступность и SEO.
  • Workbox: Набор библиотек JavaScript от Google, упрощающий работу с Service Workers, кэшированием и маршрутизацией. Ссылка на документацию Workbox.
  • PWACompat: Библиотека JavaScript, добавляющая поддержку Web App Manifest в браузеры, которые ее не поддерживают. Ссылка на GitHub репозиторий PWACompat.
  • PWABuilder: Инструмент от Microsoft, позволяющий превратить существующий веб-сайт в PWA и создать пакеты для публикации в магазинах приложений (например, Microsoft Store). Ссылка на сайт PWABuilder.
  • Frameworks (React, Angular, Vue.js): Современные JavaScript-фреймворки предоставляют инструменты и архитектуру для создания сложных и масштабируемых PWA.

10. Будущее PWA

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

Сравнение PWA с языками программирования Xamarin и Flutter

Progressive Web Apps (PWA), Xamarin и Flutter – это три разных подхода к разработке мобильных приложений, каждый со своими сильными и слабыми сторонами. Выбор между ними зависит от конкретных потребностей проекта, бюджета, сроков и требуемого пользовательского опыта.

Давайте сравним PWA с Xamarin и Flutter по ключевым характеристикам:

Таблица сравнения PWA, Xamarin и Flutter

ХарактеристикаPWA (Progressive Web Apps)XamarinFlutter
ТехнологияВеб-технологии (HTML, CSS, JavaScript) + Service Workers, ManifestC# с компиляцией в нативный кодDart с собственным движком рендеринга
ПлатформыЛюбой браузер (Android, iOS, Desktop)Android, iOS, macOS, Windows, TizenAndroid, iOS, Web, Desktop (macOS, Windows, Linux), Embedded devices
ПроизводительностьБлизко к нативной, зависит от оптимизации веб-приложенияВысокая, компиляция в нативный кодВысокая, собственный движок рендеринга
Пользовательский опыт (UX)Может выглядеть и ощущаться как нативное приложение, но с некоторыми ограничениямиПочти нативный пользовательский интерфейсНастраиваемый, богатый виджетами интерфейс
Доступ к API устройстваОграниченный доступ к аппаратным функциям через браузерные APIПолный доступ к нативным API через C#Полный доступ к нативным API через Platform Channels
Стоимость разработкиСамая низкая (одна кодовая база)Средняя (общая кодовая база, но UI может требовать адаптации)Средняя (одна кодовая база, но обучение Dart может потребоваться)
Скорость разработкиВысокая (использование знакомых веб-технологий)Средняя (требуется знание C# и нативных платформ)Высокая (Hot Reload, богатый набор виджетов)
ОбслуживаниеПростое (обновления на сервере)Через магазины приложенийЧерез магазины приложений
SEO и обнаруживаемостьВысокая (индексируются поисковыми системами)Низкая (не являются веб-сайтами)Низкая (не являются веб-сайтами)
Offline возможностиХорошие (через Service Workers)ХорошиеХорошие
УстановкаДобавляются на главный экран через браузерУстанавливаются из магазинов приложенийУстанавливаются из магазинов приложений
Размер приложенияОбычно меньше, чем нативные приложенияСреднийСредний
Сообщество и экосистемаБольшое веб-сообществоБольшое .NET сообществоБыстрорастущее Flutter сообщество

Более подробное сравнение:

PWA (Progressive Web Apps):

  • Преимущества:
    • Быстрая разработка и развертывание: Использует стандартные веб-технологии, что делает разработку быстрой и относительно простой для веб-разработчиков.
    • Кроссплатформенность: Работают на любом устройстве с современным браузером, включая десктопы.
    • Низкая стоимость разработки: Единая кодовая база для всех платформ.
    • SEO-оптимизация: Индексируются поисковыми системами, что способствует обнаружению.
    • Мгновенные обновления: Обновления развертываются на сервере и становятся доступны пользователям немедленно.
    • Не требуется установка из магазинов приложений: Пользователи добавляют PWA на главный экран через браузер.
    • Offline возможности: Благодаря Service Workers могут работать при отсутствии интернет-соединения или при его нестабильности.
    • Небольшой размер: Обычно имеют меньший размер по сравнению с нативными приложениями.
  • Недостатки:
    • Ограниченный доступ к аппаратным функциям: Доступ к некоторым нативным API (например, Bluetooth, NFC) может быть ограничен или отсутствовать.
    • Ограничения на iOS: Исторически iOS предоставляла менее полную поддержку PWA по сравнению с Android, хотя ситуация постепенно улучшается.
    • Отсутствие в магазинах приложений: Для некоторых пользователей может быть важно наличие приложения в привычных магазинах приложений.
    • Не всегда полностью “нативный” опыт: Несмотря на прогресс, PWA могут не всегда обеспечивать такой же уровень интеграции с операционной системой, как нативные приложения.

Xamarin:

  • Преимущества:
    • Полный доступ к нативным API: Позволяет использовать все возможности платформы через C#.
    • Производительность, близкая к нативной: Код компилируется в нативный код для каждой платформы.
    • Общая бизнес-логика: Позволяет переиспользовать значительную часть кода (бизнес-логику, сетевые запросы и т.д.) между платформами.
    • Нативный пользовательский интерфейс: Можно создавать пользовательские интерфейсы, используя нативные элементы управления для каждой платформы, что обеспечивает аутентичный вид и ощущение.
    • Большое .NET сообщество: Поддержка со стороны зрелого и активного сообщества разработчиков.
  • Недостатки:
    • Более высокая стоимость и сложность разработки: Требует знания C# и особенностей разработки под каждую платформу для создания UI.
    • Больший размер приложения: Приложения Xamarin обычно больше по размеру, чем PWA.
    • Обновления через магазины приложений: Обновления требуют прохождения процесса одобрения в магазинах приложений.
    • Кривая обучения: Требуется изучение Xamarin и особенностей нативных платформ.
    • Менее быстрая разработка по сравнению с PWA: Разработка может занять больше времени, чем для PWA.

Flutter:

  • Преимущества:
    • Высокая производительность: Использует собственный движок рендеринга Skia, обеспечивающий плавную анимацию и высокую частоту кадров.
    • Богатый и настраиваемый пользовательский интерфейс: Предоставляет большой набор готовых виджетов, которые можно кастомизировать для создания уникального UI.
    • Hot Reload: Функция мгновенного просмотра изменений в коде в реальном времени значительно ускоряет процесс разработки.
    • Полный доступ к нативным API: Возможность доступа к нативным функциям через Platform Channels.
    • Быстрорастущее сообщество: Активное и быстрорастущее сообщество разработчиков.
    • Кроссплатформенность: Поддержка разработки для Android, iOS, Web и Desktop (в стадии развития).
  • Недостатки:
    • Изучение языка Dart: Требуется изучение нового языка программирования Dart.
    • Больший размер приложения: Приложения Flutter могут быть больше по размеру, чем PWA, хотя есть механизмы для уменьшения размера.
    • Обновления через магазины приложений: Обновления требуют прохождения процесса одобрения в магазинах приложений.
    • Относительно молодая технология: Несмотря на зрелость, Flutter все еще является относительно новой технологией по сравнению с веб-технологиями или Xamarin.
    • SEO-оптимизация: Исторически были проблемы с SEO для веб-приложений Flutter, хотя ситуация улучшается.

Когда какой подход выбирать:

  • PWA:
    • Ограниченный бюджет и сроки: Когда нужно быстро и экономично вывести приложение на рынок.
    • Приоритет веб-обнаруживаемости и SEO: Если важно, чтобы приложение находили через поисковые системы.
    • Простая функциональность: Для приложений, не требующих интенсивного использования аппаратных возможностей устройства.
    • Фокус на широкой аудитории: Когда важно охватить пользователей на разных платформах без необходимости установки из магазинов.
    • Внутренние приложения компании: Для быстрого развертывания приложений внутри организации.
  • Xamarin:
    • Требуется полный доступ к нативным API: Когда необходим доступ ко всем аппаратным функциям устройства.
    • Важна высокая производительность и нативный UX: Для приложений, требующих плавности и интеграции с платформенными особенностями.
    • Есть опыт разработки на C#/.NET: Если команда разработчиков уже владеет этими технологиями.
    • Сложные и ресурсоемкие приложения: Для разработки игр или приложений с интенсивными вычислениями.
  • Flutter:
    • Необходим богатый и кастомизированный пользовательский интерфейс: Когда внешний вид и анимации играют важную роль.
    • Требуется высокая производительность и плавность: Для приложений, где важна отзывчивость интерфейса.
    • Относительно свободный бюджет и сроки: Есть время на изучение Dart и разработку с использованием Flutter.
    • Создание единого дизайна для iOS и Android: Flutter позволяет создавать приложения с единым визуальным стилем на обеих платформах.
    • Акцент на UI/UX: Когда внешний вид и взаимодействие с пользователем являются ключевыми факторами успеха.

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

  • PWA – это отличный выбор для быстрого и экономичного создания кроссплатформенных приложений с акцентом на веб-доступность и SEO.
  • Xamarin предоставляет мощный инструмент для создания нативных приложений с полным доступом к API, особенно если команда разработчиков владеет C#/.NET.
  • Flutter идеально подходит для создания визуально привлекательных и высокопроизводительных приложений с кастомизированным пользовательским интерфейсом, несмотря на необходимость изучения Dart.

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

Недостатки (минусы) разработки приложений с помощью PWA

Несмотря на множество преимуществ, разработка мобильных приложений с помощью Progressive Web Apps (PWA) также имеет ряд недостатков и ограничений, которые следует учитывать при выборе этого подхода:

1. Ограниченный доступ к аппаратным функциям устройства:

  • Не полный набор нативных API: PWA имеют доступ к некоторым аппаратным функциям устройства через браузерные API, но этот доступ все еще ограничен по сравнению с нативными приложениями. Это означает, что некоторые возможности, такие как работа с Bluetooth, NFC, датчиками движения, геолокацией в фоновом режиме (на iOS), доступ к контактам и календарю, могут быть недоступны или иметь ограниченную функциональность. Ссылка на сайт What Web Can Do Today для отслеживания доступных API.
  • Зависимость от браузерных реализаций: Доступ к аппаратным функциям зависит от того, какие API поддерживает конкретный браузер и насколько полно они реализованы. Это может привести к различиям в функциональности PWA на разных браузерах и платформах.

2. Ограничения на iOS (хотя ситуация улучшается):

  • Не полная поддержка push-уведомлений: До недавнего времени iOS имела значительные ограничения в поддержке push-уведомлений для PWA, добавленных на главный экран. Хотя ситуация улучшается, функциональность все еще может отличаться от нативных приложений.
  • Отсутствие фоновой синхронизации: Service Workers на iOS имеют более строгие ограничения на фоновую работу, что может затруднить реализацию функций, требующих постоянной синхронизации данных в фоновом режиме.
  • Очистка кэша: iOS более агрессивно очищает кэш Service Workers, что может привести к необходимости повторной загрузки ресурсов при повторном открытии PWA.
  • Ограничения на размер кэша: iOS имеет ограничения на размер кэша, используемого Service Workers.

3. Пользовательский опыт и восприятие:

  • Отсутствие в магазинах приложений: Для многих пользователей привычным способом поиска и установки приложений являются магазины приложений (App Store, Google Play). Отсутствие PWA в этих магазинах может снизить их обнаруживаемость и доверие пользователей.
  • Не всегда ощущается как “настоящее” приложение: Несмотря на прогресс, некоторые пользователи могут воспринимать PWA как “просто веб-сайт”, а не как полноценное приложение, особенно если UI/UX не оптимизирован под мобильные платформы.
  • Процесс установки: Добавление PWA на главный экран через браузер может быть не таким интуитивно понятным для некоторых пользователей, как установка нативного приложения из магазина.
  • Ограничения интеграции с ОС: PWA могут иметь менее глубокую интеграцию с операционной системой по сравнению с нативными приложениями (например, интеграция с общими элементами управления, настройками системы).

4. Технические ограничения и сложности:

  • Зависимость от браузеров: Функциональность и стабильность PWA напрямую зависят от браузера пользователя. Баги в браузере могут повлиять на работу PWA.
  • Необходимость постоянного интернет-соединения для первоначальной загрузки: Хотя PWA могут работать в offline-режиме после первоначальной загрузки, для первого запуска и обновления требуется интернет-соединение.
  • Сложности с реализацией некоторых функций: Некоторые функции, которые легко реализовать в нативных приложениях, могут потребовать более сложного подхода в PWA из-за ограничений браузерных API.
  • Отладка и тестирование: Отладка Service Workers и других PWA-специфичных функций может быть сложнее, чем отладка традиционного веб-приложения.

5. Разработка и поддержка:

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

6. Энергопотребление:

  • Потенциально более высокое энергопотребление: В некоторых случаях PWA, особенно при активном использовании Service Workers в фоновом режиме, могут потреблять больше энергии аккумулятора по сравнению с оптимизированными нативными приложениями.

7. Монетизация:

  • Ограничения в моделях монетизации: Модели монетизации, привычные для нативных приложений (например, встроенные покупки через магазины приложений), могут быть сложнее реализовать в PWA и могут потребовать использования сторонних платежных систем.

Важно отметить:

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

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

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

Сравнение стоимости разработки мобильных приложений с использованием Progressive Web Apps (PWA) и других популярных языков программирования, таких как нативная разработка (Kotlin/Java для Android, Swift/Objective-C для iOS), Xamarin и Flutter, требует учета множества факторов. Не существует однозначного ответа, какой подход всегда будет самым дешевым, так как стоимость зависит от сложности проекта, требуемых функций, квалификации разработчиков и других переменных.

Тем не менее, можно выделить общие тенденции и рассмотреть основные факторы, влияющие на стоимость:

Факторы, влияющие на стоимость разработки:

  • Время разработки: Чем быстрее разрабатывается приложение, тем ниже трудозатраты и, соответственно, стоимость.
  • Количество платформ: Разработка под несколько платформ (Android, iOS) увеличивает стоимость.
  • Необходимые навыки разработчиков: Высококвалифицированные специалисты стоят дороже.
  • Сложность функциональности: Реализация сложных функций (например, работа с геолокацией в фоне, сложная интеграция с аппаратными функциями) требует больше времени и усилий.
  • Дизайн и UX: Сложный и кастомный дизайн увеличивает стоимость работы дизайнеров и фронтенд-разработчиков.
  • Поддержка и обслуживание: Долгосрочная поддержка приложения также влияет на общую стоимость.

Сравнение стоимости разработки:

1. PWA (Progressive Web Apps):

  • Стоимость разработки: Обычно самая низкая.
  • Почему дешевле:
    • Единая кодовая база: PWA разрабатывается с использованием стандартных веб-технологий (HTML, CSS, JavaScript), что позволяет создать одно приложение, работающее на разных платформах (Android, iOS, Desktop) без необходимости писать отдельный код для каждой.
    • Использование существующих веб-разработчиков: Компании могут использовать уже имеющихся веб-разработчиков, знакомых с этими технологиями, что снижает затраты на поиск и обучение новых специалистов.
    • Более быстрая разработка: Процесс разработки PWA часто быстрее, чем разработка нативных или кроссплатформенных приложений, особенно для проектов с несложной функциональностью.
    • Меньше затрат на тестирование: Тестирование PWA, как правило, проще, поскольку нужно тестировать одну веб-версию, адаптированную под разные браузеры.
    • Простота развертывания и обновлений: Обновления PWA развертываются на сервере и становятся доступны пользователям мгновенно, без необходимости прохождения процесса одобрения в магазинах приложений.
  • Когда PWA может быть дороже:
    • Сложная функциональность, требующая интенсивного использования аппаратных возможностей: Если PWA требуется доступ к сложным нативным API, которые ограничены в браузерах, могут потребоваться дополнительные усилия и обходные пути, что увеличит стоимость.
    • Необходимость реализации специфических нативных функций: Некоторые функции, которые легко реализовать в нативных приложениях, могут потребовать значительных усилий для реализации в PWA.
    • Очень сложный и кастомный дизайн: Хотя веб-технологии позволяют создавать разнообразный дизайн, реализация некоторых сложных UI/UX решений может потребовать больше времени.

2. Нативная разработка (Kotlin/Java для Android, Swift/Objective-C для iOS):

  • Стоимость разработки: Обычно самая высокая.
  • Почему дороже:
    • Разработка под каждую платформу отдельно: Требуется создание двух отдельных приложений (для Android и iOS) с использованием разных языков программирования и инструментов разработки.
    • Необходимость найма специализированных разработчиков: Нужны квалифицированные Android-разработчики (Kotlin/Java) и iOS-разработчики (Swift/Objective-C).
    • Более длительное время разработки: Разработка двух отдельных приложений занимает больше времени, чем создание одного PWA или кроссплатформенного приложения.
    • Более сложное тестирование: Необходимо тестировать две отдельные кодовые базы на разных устройствах и версиях ОС.
    • Затраты на поддержку и обновления: Необходимо поддерживать и обновлять две отдельные кодовые базы.
  • Когда нативная разработка может быть экономически оправдана:
    • Приложения с очень сложной функциональностью и интенсивным использованием аппаратных возможностей: Нативная разработка обеспечивает полный доступ ко всем возможностям платформы и позволяет создавать высокопроизводительные приложения.
    • Приложения, требующие максимальной оптимизации производительности: Для игр, графических редакторов и других ресурсоемких приложений нативная разработка часто является лучшим выбором для достижения максимальной производительности.
    • Приложения, требующие уникального и сложного UI/UX: Нативная разработка предоставляет больше гибкости для создания кастомных интерфейсов, полностью интегрированных с платформой.
    • Приложения, ориентированные на конкретную платформу: Если целевая аудитория преимущественно использует одну платформу (например, только iOS), разработка только под эту платформу может быть экономически целесообразной.

3. Xamarin:

  • Стоимость разработки: Средняя.
  • Почему средняя стоимость:
    • Общая кодовая база на C#: Xamarin позволяет использовать язык C# для написания большей части бизнес-логики приложения, которая может быть переиспользована на разных платформах (Android и iOS).
    • Сокращение времени разработки: По сравнению с нативной разработкой, Xamarin позволяет сократить время разработки за счет переиспользования кода.
    • Необходимость найма Xamarin-разработчиков: Требуются специалисты, владеющие C# и платформенными API.
    • UI может потребовать адаптации: Хотя бизнес-логика общая, пользовательский интерфейс в Xamarin может разрабатываться либо с использованием Xamarin.Forms (общие UI-элементы), либо с использованием нативных UI-элементов для каждой платформы (Xamarin.Android, Xamarin.iOS), что может потребовать дополнительных усилий.
  • Когда Xamarin может быть дороже:
    • Очень сложный и кастомный UI с использованием нативных элементов: Разработка сложного UI с использованием нативных элементов для каждой платформы может потребовать значительных усилий и приблизить стоимость к нативной разработке.
    • Необходимость глубокой интеграции с платформенными API: Хотя Xamarin предоставляет доступ к нативным API, интеграция с некоторыми сложными API может потребовать дополнительных усилий.

4. Flutter:

  • Стоимость разработки: Средняя, может быть ближе к PWA в некоторых случаях.
  • Почему средняя стоимость:
    • Единая кодовая база на Dart: Flutter использует язык Dart и позволяет писать единый код для Android и iOS.
    • Быстрая разработка благодаря Hot Reload: Функция мгновенного просмотра изменений в коде ускоряет процесс разработки.
    • Богатый набор готовых виджетов: Flutter предоставляет широкий набор кастомизируемых виджетов, упрощающих создание интерфейса.
    • Растущее сообщество разработчиков: Flutter имеет активное и быстрорастущее сообщество, что облегчает поиск ресурсов и решений.
  • Когда Flutter может быть дороже:
    • Необходимость найма Flutter-разработчиков: Требуются специалисты, владеющие языком Dart.
    • Сложная интеграция с нативными модулями: В некоторых случаях интеграция с нативным кодом может потребовать дополнительных усилий.
    • Специфические платформенные требования: Реализация очень специфичных нативных функций может потребовать написания платформенного кода.

Таблица сравнения стоимости разработки (общая оценка):

ТехнологияОтносительная стоимость разработки
PWAСамая низкая
FlutterСредняя (может быть ниже)
XamarinСредняя
Нативная разработкаСамая высокая

Важные замечания:

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

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

Статистика по миру использования PWA и прогнозы

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

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

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

Текущая статистика использования PWA (общие тенденции):

  • Растущая популярность и принятие: PWA демонстрируют устойчивый рост популярности и принятия среди компаний разных размеров и отраслей. Все больше организаций осознают преимущества PWA и внедряют их в качестве альтернативы или дополнения к нативным приложениям.
  • Значительный рост по сравнению с предыдущими годами: Наблюдается заметное увеличение количества развернутых PWA по сравнению с прошлыми годами.
  • Активное использование крупными компаниями: Многие крупные мировые бренды успешно внедрили PWA и сообщают о положительных результатах, включая увеличение конверсии, вовлеченности пользователей и снижение показателя отказов (примеры таких компаний будут приведены ниже).
  • Преобладание в электронной коммерции и медиа: Наибольшее распространение PWA получили в сферах электронной коммерции, медиа и новостных порталов, где скорость загрузки, offline-доступ и возможность повторного вовлечения играют ключевую роль.
  • Растущее понимание преимуществ PWA: Все больше разработчиков и бизнес-руководителей осознают преимущества PWA, такие как кроссплатформенность, простота разработки и обслуживания, а также улучшенный пользовательский опыт.

Ключевые статистические данные и метрики (на основе исследований и кейсов):

  • Увеличение конверсии: Многие компании, внедрившие PWA, сообщают о значительном увеличении конверсии (от нескольких десятков до сотен процентов). Например, AliExpress сообщила о 104% увеличении конверсии для новых пользователей после внедрения PWA. Ссылка на кейс AliExpress.
  • Увеличение вовлеченности пользователей: PWA часто приводят к увеличению времени, проведенного пользователями в приложении, и количества взаимодействий. Twitter Lite сообщила об увеличении количества страниц на сессию на 65% и увеличении количества твитов на 75% после внедрения PWA. Ссылка на кейс Twitter Lite.
  • Снижение показателя отказов: Быстрая загрузка PWA способствует снижению показателя отказов. Forbes сообщила о снижении показателя отказов на 43% после внедрения PWA. Ссылка на кейс Forbes.
  • Уменьшение размера приложения: PWA обычно имеют значительно меньший размер по сравнению с нативными приложениями, что экономит место на устройствах пользователей и ускоряет загрузку. Pinterest сообщила об уменьшении размера приложения на 150 КБ по сравнению с нативным Android приложением. Ссылка на кейс Pinterest.
  • Рост установок на главный экран: Все больше пользователей добавляют иконки PWA на главный экран своих устройств, что свидетельствует об их удобстве и ценности.
  • Увеличение числа взаимодействий с push-уведомлениями: Push-уведомления в PWA эффективно привлекают пользователей и стимулируют повторные посещения.

Примеры компаний, успешно использующих PWA (и их результаты):

  • Starbucks: Улучшение пользовательского опыта и возможности заказа offline. Ссылка на кейс Starbucks.
  • Trivago: Увеличение вовлеченности и конверсии благодаря быстрой загрузке. Ссылка на кейс Trivago.
  • Spotify: Предоставление доступа к музыке через веб с функциональностью, близкой к нативному приложению.
  • Telegram: Веб-версия Telegram, предоставляющая большую часть функциональности нативных приложений.
  • Flipkart: Увеличение конверсии и удержания пользователей в Индии. Ссылка на кейс Flipkart.
  • MakeMyTrip: Увеличение конверсии и лояльности клиентов. Ссылка на кейс MakeMyTrip.

Прогнозы по использованию PWA:

Прогнозы по использованию PWA в целом позитивные и указывают на дальнейший рост и расширение их применения:

  • Увеличение доли рынка PWA: Ожидается, что доля рынка PWA будет продолжать расти за счет их преимуществ в разработке, обслуживании и пользовательском опыте.
  • Расширение поддержки браузерами и операционными системами: Постоянное улучшение поддержки PWA со стороны основных браузеров (Chrome, Firefox, Safari, Edge) и операционных систем (Android, iOS) будет способствовать их распространению. В частности, улучшение поддержки push-уведомлений и фоновой синхронизации на iOS станет ключевым фактором.
  • Рост числа инструментов и библиотек для разработки PWA: Развитие экосистемы инструментов и библиотек, таких как Workbox, PWABuilder, и интеграция с популярными JavaScript-фреймворками (React, Angular, Vue.js), упростит процесс разработки PWA и сделает их более доступными для разработчиков.
  • Внедрение PWA в новых отраслях: Ожидается, что PWA будут все чаще использоваться в новых отраслях, таких как здравоохранение, образование, финансы и государственные услуги.
  • Использование PWA в качестве основы для “суперприложений”: Концепция “суперприложений”, объединяющих различные сервисы и функции в одном приложении, может активно использовать PWA в качестве модульных компонентов.
  • Акцент на производительность и пользовательский опыт: Тенденция к созданию быстрых, надежных и удобных веб-приложений будет стимулировать дальнейшее развитие и внедрение PWA.
  • Увеличение инвестиций в PWA со стороны крупных технологических компаний: Google, Microsoft и другие технологические гиганты продолжают инвестировать в развитие PWA и продвигать их использование.

Факторы, способствующие росту использования PWA:

  • Экономическая эффективность: Снижение затрат на разработку и обслуживание по сравнению с нативными приложениями.
  • Улучшенный пользовательский опыт: Быстрая загрузка, offline-доступ, возможность установки на главный экран.
  • Кроссплатформенность: Работа на различных устройствах и операционных системах.
  • Простота распространения: Не требуется установка через магазины приложений, распространение через URL.
  • SEO-оптимизация: PWA индексируются поисковыми системами.
  • Возможность повторного вовлечения пользователей: Push-уведомления.

Ограничения и вызовы:

Несмотря на позитивные прогнозы, существуют определенные ограничения и вызовы, которые могут замедлить темпы роста использования PWA:

  • Ограниченный доступ к некоторым аппаратным функциям: Не все нативные API доступны для PWA.
  • Не полное соответствие функциональности нативным приложениям в некоторых случаях.
  • Восприятие пользователями: Некоторые пользователи могут предпочитать нативные приложения.
  • Необходимость обучения разработчиков: Хотя используются веб-технологии, разработка качественных PWA требует понимания специфики Service Workers и Manifest.

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

Примеры приложений, сделанных на базе PWA

Progressive Web Apps (PWA) уже активно используются многими компаниями по всему миру, демонстрируя свою эффективность и универсальность. Вот несколько ярких примеров приложений, созданных на базе PWA, с указанием их основных особенностей и преимуществ:

Электронная коммерция:

  • AliExpress: PWA от AliExpress предлагает быстрый и удобный опыт покупок на мобильных устройствах. Благодаря PWA, AliExpress значительно увеличила конверсию и вовлеченность новых пользователей. Ссылка на кейс AliExpress
  • Flipkart: Индийская платформа электронной коммерции Flipkart создала PWA, получив значительное увеличение конверсии и снижение потребления данных, особенно для пользователей с медленным интернет-соединением. Ссылка на кейс Flipkart
  • Snapdeal: Еще один пример успешного внедрения PWA в сфере электронной коммерции в Индии. Snapdeal также отметила значительное улучшение показателей вовлеченности и конверсии.
  • Myntra: Популярный индийский фэшн-ритейлер также использует PWA для предоставления быстрого и удобного мобильного опыта покупок.
  • OLX: Глобальная платформа объявлений OLX использует PWA для обеспечения быстрого доступа к функциональности платформы на мобильных устройствах.

Социальные сети и медиа:

  • Twitter Lite: PWA от Twitter, разработанное специально для пользователей с медленным интернет-соединением и ограниченными тарифными планами. Twitter Lite обеспечивает быстрый доступ к основным функциям Twitter, занимая при этом очень мало места на устройстве. Ссылка на кейс Twitter Lite
  • Forbes: PWA от Forbes обеспечивает быструю загрузку статей и контента на мобильных устройствах, значительно снизив показатель отказов и увеличив количество просмотренных страниц. Ссылка на кейс Forbes
  • The Washington Post: Новостное издание The Washington Post также использует PWA для предоставления быстрого и надежного доступа к своим статьям на мобильных устройствах.
  • Pinterest: PWA от Pinterest позволило значительно увеличить вовлеченность пользователей и время, проведенное на сайте, а также уменьшить размер приложения. Ссылка на кейс Pinterest
  • Telegram Web: Веб-версия популярного мессенджера Telegram, предоставляющая большую часть функциональности нативных приложений через PWA.

Путешествия и туризм:

  • Trivago: PWA от Trivago обеспечивает быструю загрузку и удобный поиск отелей, что особенно важно для пользователей в пути. Ссылка на кейс Trivago
  • MakeMyTrip: Индийская платформа для бронирования путешествий MakeMyTrip внедрила PWA и получила значительное увеличение конверсии и лояльности клиентов. Ссылка на кейс MakeMyTrip
  • Uber: Хотя основное приложение Uber является нативным, компания активно использует PWA для предоставления доступа к своим сервисам через веб, например, для пользователей, у которых еще не установлено нативное приложение.
  • Booking.com: Также использует элементы PWA для улучшения пользовательского опыта на мобильном вебе.

Музыка и развлечения:

  • Spotify: Веб-плеер Spotify является примером PWA, предоставляющим доступ к музыке через браузер с функциональностью, близкой к нативному приложению.
  • YouTube TV: Веб-версия YouTube TV также построена на принципах PWA, обеспечивая просмотр телеканалов в прямом эфире через браузер.

Утилиты и продуктивность:

  • Google Maps Go: Облегченная версия Google Maps, предназначенная для устройств с ограниченными ресурсами и медленным интернет-соединением.
  • 星巴克 (Starbucks): PWA от Starbucks позволяет пользователям просматривать меню, делать заказы и оплачивать их, даже в автономном режиме. Ссылка на кейс Starbucks
  • Housing.com: Индийская платформа для поиска недвижимости Housing.com также использует PWA для улучшения мобильного опыта пользователей.

Другие примеры:

  • ** বাম্পার (Bumper):** Бангладешская платформа электронной коммерции для автомобилей и мотоциклов.
  • Yummly: Сервис кулинарных рецептов.
  • Pokedex.org: Онлайн-покедекс.
  • Medium: Платформа для публикации статей и блогов.

Ключевые моменты, которые объединяют эти примеры:

  • Улучшенная производительность: PWA обеспечивают более быструю загрузку и плавную работу, что особенно важно для пользователей с медленным интернет-соединением.
  • Offline-доступ: Многие из этих PWA предоставляют возможность доступа к контенту и функциональности даже без подключения к интернету.
  • Установка на главный экран: Пользователи могут добавить иконку PWA на главный экран своего устройства, что обеспечивает быстрый доступ, как к нативному приложению.
  • Push-уведомления: Возможность отправлять push-уведомления для удержания пользователей и информирования их о важных событиях.
  • Меньший размер приложения: PWA обычно занимают меньше места на устройстве по сравнению с нативными приложениями.

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

Заключение

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

Список источников:

  1. MDN Web Docs: Service Worker API. https://developer.mozilla.org/ru/docs/Web/API/Service_Worker_API
  2. MDN Web Docs: Push API. https://developer.mozilla.org/ru/docs/Web/API/Push_API
  3. MDN Web Docs: Background Synchronization API. https://developer.mozilla.org/ru/docs/Web/API/Background_Synchronization_API
  4. W3C: Web App Manifest. https://www.w3.org/TR/appmanifest/
  5. Google Developers: HTTPS. https://developers.google.com/web/fundamentals/security/encrypt-in-transit/https
  6. What Web Can Do Today. https://whatwebcando.today/
  7. Google Developers: Twitter Lite PWA. https://developers.google.com/web/showcase/2016/twitter
  8. Progressive Web Apps: Starbucks. https://www.pwastats.com/articles/starbucks
  9. Medium: A Pinterest Progressive Web App Performance Case Study. https://medium.com/dev-channel/a-pinterest-progressive-web-app-performance-case-study-3bd6ed2e6154
  10. Google Developers: Trivago. https://developers.google.com/web/showcase/2017/trivago
  11. The Verge: Forbes progressive web app. https://www.theverge.com/2018/2/26/17051848/forbes-progressive-web-app-pwa
  12. Google Developers: Workbox. https://developers.google.com/web/tools/workbox
  13. GitHub: PWACompat. https://github.com/GoogleChromeLabs/pwacompat
  14. PWABuilder. https://www.pwabuilder.com/

Вопросы для проверки усвоения материала:

  1. Что такое Progressive Web App и каковы его ключевые характеристики?
  2. Какие три основные технологии лежат в основе PWA и какова их роль?
  3. Перечислите не менее пяти преимуществ разработки мобильных приложений с помощью PWA.
  4. Какие основные недостатки и ограничения существуют у PWA по сравнению с нативными приложениями?
  5. Опишите основные этапы процесса разработки PWA.
  6. Приведите примеры известных компаний, использующих PWA, и укажите, какие преимущества они получили.
  7. В чем заключаются основные различия между PWA, нативными и гибридными мобильными приложениями?
  8. Назовите несколько инструментов и технологий, которые помогают в разработке PWA.
  9. Почему HTTPS является обязательным требованием для PWA?
  10. Каковы перспективы развития PWA в будущем?