Киллер-фича 🚀
Хотите приложение для своего проекта? Допустим, у вас есть портал, сервис или интернет-магазин, и вы хотите сделать для него мобильное приложение. Какие у вас есть варианты?

Нативные приложения 📱
Первое, что приходит на ум, — это нативные приложения для iOS и Android. Для их разработки используются Swift и Kotlin. По сути, это два отдельных проекта, объединенных только общим API и дизайном (и то далеко не всегда). У каждой платформы свои особенности, поэтому неудивительно, что иногда Android уходит вперед в развитии, а иногда наоборот. Разработка нативного приложения требует ресурсов, ведь поддерживать две платформы сразу — это двойная работа, больше затрат на тестирование, исправление багов и обновления.
Кроссплатформенные решения 🔄
Следующий вариант — кроссплатформенные технологии. Например, Xamarin (жив ли он еще?), React Native или Flutter, который сейчас на коне. В этом случае процесс разработки схож: сначала создаем API, затем собираем дизайн, интегрируем аналитику, настраиваем пуш-уведомления и наконец запускаем приложение. Поддерживать такой проект проще, так как код один, но все же в некоторых случаях приходится делать доработки под каждую платформу. Это дешевле, чем нативная разработка, но все равно может быть затратным.
Но что, если и этот вариант не подходит по бюджету? 🤔
PWA — альтернатива ⚡️
Здесь на сцену выходит PWA — технология, которая позволяет создать приложение на базе обычного веба. Прогрессивные веб-приложения (Progressive Web Applications) представляют собой улучшенные версии привычных сайтов, которые ведут себя как мобильные приложения.
Существует также TWA (Trusted Web Activities), которая позволяет запускать веб-сайты как приложения на Android, используя Chrome Custom Tabs, и IWA (Isolated Web Apps) — изолированные веб-приложения, работающие в ограниченной среде. Однако в большинстве случаев никто не вникает в эти нюансы и называет все просто PWA.
Мы используем эту технологиями уже 6-7 лет и можем сказать: работает, можно брать.
Как создать? 🛠
Если ваш проект уже работает на Vue или React, то считайте, что он готово, почти. В противном случае сначала нужно собрать API, затем создать отдельный фронтенд, ориентируясь на мобильное разрешение, и наконец интегрировать все вместе. Бэкенд может быть любым — хоть Laravel, хоть Битрикс, хоть даже WordPress (да-да, мы такое встречали). Главное, чтобы сайт работал по HTTPS.
Когда все готово, начинается магия. Загружаем проект на сервер и переходим на сайт PWA Builder или аналоги Аналогов довольно много. Указываем ссылку на наш PWA, ждем. Если есть ошибки в манифесте или других настройках, исправляем их и повторяем процесс. В результате получаем два исходника: один для Android, другой для iOS. Дальше загружаем их в магазины приложений, следуя стандартным инструкциям.
Киллер фича ✨
Самое крутое в PWA — обновления. Вам не нужно каждый раз проходить модерацию магазинов приложений, чтобы внести изменения. Достаточно просто обновить сайт, и пользователи сразу получат новую версию. Это невероятно удобно. Кроме того, разработка занимает меньше времени и не требует расширенного стека технологий.
Минусы? 🤷♂️
Есть нюансы, с которыми придется мириться. Например, пуш-уведомления работают через браузер, а не как нативные. Но все же их можно настроить. Аналитика также имеет ограничения, поскольку PWA не обладает полным доступом к системным возможностям устройства. И наконец, PWA не может работать в офлайне. Хотя если речь идет об интернет-магазине, то какая разница, ведь без интернета покупки все равно никто не делает?
Заключение 📊
По последним исследованиям, спрос на PWA растет, и это неудивительно. Решение обладает своими плюсами и минусами, но при этом работает стабильно, обходится дешевле, чем нативная разработка, и позволяет быстро выпускать обновления. Возможно, в будущем PWA станет стандартом, а пока это отличная альтернатива.