Разработка мобильного приложения: нативное, кроссплатформенное или PWA
Первый вопрос про мобильное приложение — не «на чём писать», а «зачем оно вообще должно быть приложением». Часть задач, которые заказывают как «мобильное приложение», на практике лучше и дешевле закрывает PWA — веб-сервис, который ведёт себя как приложение. Разбираем, чем отличаются подходы и как выбрать между ними, не потратив бюджет на лишнюю разработку.
Разработать мобильное приложение под ключ — не значит автоматически выбрать нативную разработку: часто дешевле и быстрее получится с PWA.
Три подхода к разработке мобильного приложения
- Нативная разработка — приложение пишется отдельно под каждую платформу с использованием её собственных инструментов. Максимальный доступ к возможностям устройства и лучшая производительность, но два отдельных проекта разработки и поддержки — под iOS и под Android.
- Кроссплатформенная разработка — единая кодовая база собирается в приложения для обеих платформ. Компромисс между скоростью разработки и глубиной доступа к специфичным возможностям устройства.
- PWA — веб-приложение, которое устанавливается на домашний экран и работает офлайн частично, без публикации в сторах. Самый быстрый и дешёвый способ дать пользователю опыт, похожий на приложение — с ограничениями по доступу к аппаратным функциям.
PWA или нативное: сравнение по цене и ограничениям
| Критерий | PWA | Нативное / кроссплатформенное |
|---|---|---|
| Публикация в сторах | Не нужна — ссылка или добавление на экран | Модерация App Store и Google Play / RuStore |
| Push-уведомления | Работают, но с ограничениями на iOS | Полноценно на обеих платформах |
| Офлайн-режим | Частичный, через кеширование | Полноценный локальный доступ к данным |
| Доступ к камере, геолокации, датчикам | Базовый, не ко всем API | Полный доступ ко всем возможностям устройства |
| Скорость запуска разработки | Быстрее — одна кодовая база, без модерации | Дольше — сборка, тестирование, модерация сторов |
Когда выбирать PWA, а когда — нативную разработку
PWA чаще всего достаточно, если продукт — это в первую очередь про контент и транзакции: интернет-магазин, сервис бронирования, личный кабинет клиента, MVP для проверки спроса до вложений в полноценное приложение. Здесь скорость запуска и отсутствие модерации сторов важнее глубокого доступа к устройству.
Нативная или кроссплатформенная разработка нужна, если продукт активно использует то, что PWA не умеет или умеет плохо: постоянная фоновая геолокация (доставка, такси), интенсивная работа с камерой или датчиками, требования к максимальной производительности (игры, обработка видео), или когда присутствие в App Store и Google Play само по себе часть бизнес-стратегии — например, для узнаваемости и доверия аудитории.
Публикация в сторах: что изменилось
Помимо App Store и Google Play, на российском рынке есть RuStore — отдельный магазин приложений для Android. Публикация туда не заменяет Google Play, но для части аудитории становится дополнительным или приоритетным каналом распространения. Стратегию публикации — только один магазин, оба, или вовсе без магазинов через PWA — стоит выбирать под целевую аудиторию продукта, а не по умолчанию копировать чужой подход.
Как выбрать подрядчика
Разработчика для такой задачи стоит выбирать по конкретным признакам, а не по общему впечатлению от презентации:
- Не продаёт нативную разработку там, где хватило бы PWA — и наоборот. Выбор подхода должен объясняться задачей, а не тем, что подрядчику удобнее или дороже продать.
- Разбирает конкретные сценарии использования устройства — фоновая работа, датчики, офлайн — до выбора подхода, а не после.
- Прозрачен по срокам модерации сторов — это внешний процесс, который подрядчик не контролирует полностью, и об этом стоит говорить заранее, а не удивляться в моменте.
- Предлагает начать с пилота — рабочего сценария в проде, а не с презентации полного проекта на несколько месяцев вперёд.
Частые вопросы
Что такое PWA простыми словами?
PWA (Progressive Web App) — это веб-сайт, который умеет вести себя как приложение: его можно добавить на домашний экран, он работает без адресной строки браузера и частично — без интернета. При этом это по-прежнему веб-технология, а не отдельное нативное приложение, поэтому доступ к возможностям устройства у неё более ограниченный.
Можно ли обойтись PWA вместо публикации в App Store и Google Play?
Да, если задача — быстро дать пользователю удобный доступ к сервису без сложных функций устройства: интернет-магазин, личный кабинет, MVP для проверки идеи. PWA не проходит модерацию сторов и устанавливается по ссылке, что также снимает риски, связанные с политиками сторов. Для приложений с интенсивной фоновой работой, глубокой интеграцией с датчиками устройства или высокими требованиями к производительности лучше подходит нативная разработка.
Работают ли push-уведомления в PWA на iPhone?
Да, но с оговорками: Apple добавила поддержку push-уведомлений для PWA, добавленных на домашний экран, но раньше такой поддержки не было, и часть пользователей может использовать устройства или версии iOS, где это не работает. Если push-уведомления — критичная часть продукта, это стоит закладывать в оценку рисков при выборе PWA.
Что такое RuStore и обязательно ли туда публиковаться?
RuStore — российский магазин приложений для Android. Публикация туда не заменяет Google Play, но становится дополнительным и для некоторых категорий бизнеса приоритетным каналом распространения на российском рынке. Конкретную стратегию публикации — только RuStore, оба магазина или PWA без сторов вообще — стоит выбирать под аудиторию продукта, а не по умолчанию.
Сколько времени занимает разработка мобильного приложения?
Первый пилот — один рабочий сценарий приложения в проде — обычно занимает около 2 недель после старта. Полноценное приложение с несколькими экранами, бэкендом и интеграциями обычно занимает от 2 до 3 месяцев, дальше система развивается в рабочем режиме релизами.
Расскажите про задачу и аудиторию продукта — на созвоне за 40 минут поймём, нужна ли нативная разработка или хватит PWA.
Обсудить проект