Flutter или нативная разработка: как выбрать и не переплатить

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

В чём разница по сути

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

При кроссплатформенной разработке на Flutter пишется один код, который собирается в приложения для обеих платформ. Интерфейс рисует сам фреймворк, поэтому картинка на iOS и Android получается одинаковой. Отсюда следует главное: кроссплатформа экономит не на качестве, а на дублировании работы.

Где Flutter выигрывает

Стоимость и срок. Одна команда вместо двух, одна кодовая база, одно тестирование логики. На типовых задачах разница в смете ощутимая: у нас ставка на Flutter 3 200 ₽ за час против 3 800 ₽ на нативной разработке, и при этом клиентская часть пишется один раз, а не дважды.

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

Одинаковый интерфейс. Если бренду важно, чтобы приложение выглядело идентично везде, Flutter даёт это из коробки.

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

Где нативная разработка обязательна

  • Тяжёлая работа с железом. Постоянная работа с камерой и компьютерным зрением, сложная обработка звука, Bluetooth-устройства с нестандартными протоколами, точная фоновая геолокация.
  • Требования к энергопотреблению и производительности. Трекеры, навигация, игры, приложения, которые работают часами в фоне.
  • Ранний доступ к новым возможностям системы. Если продукту важно использовать функцию iOS или Android в первые недели после релиза платформы, нативная разработка получает её раньше.
  • Специфические требования безопасности. В отдельных отраслях требования к криптографии и хранению данных проще закрыть родными средствами платформы.

Чего боятся зря

«Кроссплатформа тормозит». Для интерфейсных приложений разница не видна пользователю. Проблемы с производительностью чаще возникают из-за тяжёлых изображений и неоптимальных запросов к серверу, а не из-за фреймворка.

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

Чего не стоит недооценивать

Серверная часть одинаковая в обоих случаях. Если у бизнеса нет API, его придётся делать, и это может оказаться больше половины сметы. Технология клиента на эту часть не влияет.

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

Простой способ выбрать

Ответьте на три вопроса. Есть ли в продукте работа с железом или фоном, критичная для сценария? Если да, смотрите в сторону нативной разработки. Будет ли приложение меняться чаще одного раза в квартал? Если да, кроссплатформа выгоднее в поддержке. Планируете ли обе платформы сразу? Если нужна только одна, разница в стоимости почти исчезает.

Для большинства проектов малого и среднего бизнеса ответ получается в пользу Flutter. Для нишевых продуктов с аппаратной частью в пользу нативной.

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

Сколько стоит владеть приложением после релиза

Разработка это разовые деньги, владение это регулярные. В год закладывайте: аккаунты разработчика в App Store и Google Play, серверную часть и хранилище, обновления под новые версии iOS и Android, исправления и мелкие доработки. У нас поддержка считается по часам: базовая ставка 2 500 ₽ в час, абонемент на 10 часов в месяц 22 000 ₽, на 20 часов 42 000 ₽, а режим эксплуатации без часов на правки, то есть обновления, бэкапы и мониторинг, стоит 5 000 ₽ в месяц.

На кроссплатформенном приложении поддержка обычно дешевле просто потому, что правка делается один раз. На нативном те же изменения вносятся в две кодовые базы.

Как выглядит переход с одной технологии на другую

Переписать приложение с Flutter на нативное или наоборот означает разработку заново: переносится только серверная часть и дизайн. Поэтому решение принимается один раз, на старте, и именно поэтому его стоит проверять на сценариях, а не на вкусах разработчика.

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

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

Можно ли начать с одной платформы? Да, и часто это разумно: сначала та платформа, где больше ваших клиентов. На Flutter вторая платформа потом добавляется заметно дешевле, чем при нативной разработке.

Кому принадлежит код? Вам. Исходники, аккаунты в сторах и серверная часть должны оставаться на ваших реквизитах, это фиксируется в договоре.

Сколько занимает разработка? Зависит от состава: витрина с личным кабинетом обычно 2,5-4,5 месяца, приложение с оплатой и интеграциями дольше. Сроки по типам приложений мы публикуем на странице стоимости.