Руки держат смартфон с открытым приложением, экран светится синим

Мобильное приложение для бизнеса: натив, кроссплатформа или PWA

Когда компания решает сделать мобильное приложение, первый технический спор почти всегда один и тот же: писать отдельно под iOS и Android, взять Flutter или React Native, или вообще обойтись PWA. У каждого варианта есть сторонники, и каждый в своей ситуации прав. Проблема в том, что выбор часто делают по принципу «так умеет наш подрядчик», а не по задачам продукта.

Ниже — честное сравнение подходов к разработке мобильного приложения для бизнеса: в чём сильные и слабые стороны нативной и кроссплатформенной разработки и PWA, когда что выбирать, и что нужно знать о публикации в App Store, Google Play и RuStore. Без религиозных войн — только критерии, по которым мы сами принимаем решение на проектах.

Сначала задача, потом технология

Прежде чем выбирать стек, стоит ответить на несколько вопросов. От ответов зависит больше, чем от любых сравнительных таблиц.

Эти вопросы мы разбираем на первом этапе — исследовании аудитории и сценариев. Технологию выбираем после, а не до.

Стек выбирают по задачам продукта, а не по принципу «так умеет наш подрядчик».

Нативная разработка: максимум возможностей платформы

Нативное приложение пишется отдельно под каждую платформу: под iOS — на Swift, под Android — на Kotlin, с использованием родных инструментов и интерфейсных компонентов.

Когда выбирать. Продукт, где приложение — основной канал и ключевое конкурентное преимущество; сложная работа с железом; высокие требования к производительности и плавности; большие ресурсы на долгосрочное развитие.

Кроссплатформенная разработка: Flutter и React Native

Кроссплатформенная разработка позволяет писать одну кодовую базу для iOS и Android. Два самых распространённых фреймворка устроены по-разному.

Flutter

Фреймворк от Google на языке Dart. Отрисовывает интерфейс собственным движком, поэтому приложение выглядит одинаково на всех платформах и даёт полный контроль над каждым пикселем. Хорошо подходит для продуктов с собственным выразительным дизайном, где не нужно точно повторять системные элементы iOS и Android. Ограничение — меньше специалистов на рынке, чем по JavaScript, и для специфических функций устройства иногда приходится писать нативные модули.

React Native

Фреймворк от Meta на JavaScript или TypeScript. Использует нативные компоненты платформ, поэтому интерфейс ближе к системному. Большой плюс — общий язык и часть логики с веб-разработкой: команда, которая делает ваш сайт или веб-сервис на React, может переиспользовать знания и часть кода. Ограничения похожи: для нестандартной работы с устройством нужны нативные модули, а обновления фреймворка и библиотек требуют внимания.

Где кроссплатформа проигрывает

Тяжёлые вычисления на устройстве, сложная графика, глубокая интеграция с системными функциями, которые только что вышли. Ещё один риск — зависимость от сторонних библиотек: если библиотека для нужной функции заброшена, её поддержку придётся брать на себя.

Когда выбирать. Большинство бизнес-приложений: интернет-магазины, сервисы записи и доставки, личные кабинеты, программы лояльности, внутренние инструменты. Одна команда, одна кодовая база, синхронные релизы и заметно меньшая стоимость поддержки при хорошем качестве интерфейса.

PWA: приложение без магазинов

PWA (Progressive Web App) — это веб-приложение, которое можно установить на главный экран прямо из браузера. Оно умеет работать офлайн с закешированными данными и отправлять push-уведомления.

Когда выбирать. Внутренние инструменты для сотрудников, сервисы для партнёров, быстрая проверка гипотезы до вложений в полноценное приложение, продукты, где основной трафик приходит из поиска и по ссылкам. Логика проекта здесь ближе к разработке веб-сервиса, чем к мобильной разработке.

Как выбрать подход: короткая шпаргалка

Если свести три подхода в одну таблицу, разница выглядит так.

НативКроссплатформаPWA
Кодовая базаДве: iOS и AndroidОдна для iOS и AndroidОдна для всех устройств, включая компьютеры
Доступ к устройствуПолный, новые функции ОС сразуШирокий, для специфических функций — нативные модулиОграниченный, особенно на iOS
Разработка и поддержкаДороже: каждая функция делается дваждыЗаметно дешевле поддержка, синхронные релизыЧасто можно сделать из готового веб-сервиса
ПубликацияЧерез сторы с модерациейЧерез сторы с модерациейБез сторов, обновления сразу
Когда выбиратьПриложение — основной канал, сложная работа с железомБольшинство бизнес-приложенийВнутренние инструменты, партнёры, проверка гипотез

Например, если задача — приложение для гостей отеля или курорта, важны работа на склоне при слабой связи, геолокация и покупка услуг в пару касаний. А для мобильного VPN-сервиса вроде WOLF VPN на первый план выходят системные сетевые возможности платформы и стабильная работа в фоне. Разные задачи — разные приоритеты при выборе стека.

Что заложить в приложение с первого релиза

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

Состав первого релиза влияет и на бюджет. Чем точнее описаны сценарии и интеграции, тем точнее оценка.

Публикация в App Store, Google Play и RuStore

Публикация — отдельный этап, который часто недооценивают при планировании сроков.

После публикации работа продолжается: обновления под новые версии ОС, исправление ошибок, развитие функциональности по данным аналитики. Для приложения принцип тот же, что и для сайта: заранее решить, какие действия пользователя считаются успехом, и отслеживать их как цели и события.

Частые вопросы

Что дешевле: нативная или кроссплатформенная разработка?

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

Flutter или React Native — что выбрать?

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

Может ли PWA заменить мобильное приложение?

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

Нужно ли публиковать приложение в RuStore?

Если ваша аудитория в России и пользуется Android, RuStore имеет смысл как дополнительный канал наряду с Google Play. Публикация требует подготовки сборки под правила магазина и, при необходимости, интеграции его платёжных инструментов.

На кого оформлять аккаунты разработчика в сторах?

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

Обсудим ваш проект
Ещё по теме