Unical.
← Все статьи
Сайты и приложения

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

Когда Flutter экономит бюджет, а когда натив дешевле на дистанции: модель расчёта, сравнительная таблица, чек-лист и нюансы Payme, Click и 1С.

Unical IT

На первой встрече вопрос «Flutter или нативная разработка» обычно звучит так: «Сделайте на Flutter, это же в два раза дешевле?». Иногда так и есть. А иногда через полтора года бизнес второй раз платит за те же функции. Разберём, из чего складывается итоговая цена. Посчитаем на простой модели, в которую можно подставить свои цифры.

Короткий ответ

  • Flutter выигрывает, когда приложение состоит в основном из экранов, форм, каталогов, личного кабинета и работы с API, и при этом сразу нужны iOS и Android.
  • Натив в итоге дешевле, когда продукт сильно зависит от возможностей устройства: фоновых процессов, Bluetooth, обработки изображения с камеры в реальном времени, виджетов, часов, CarPlay/Android Auto, сложной работы с картами.
  • Не нужно ни то, ни другое, если задачу решает Telegram-бот, Mini App или адаптивный сайт. Ниже объясняем, почему это серьёзный вариант.

Почему Flutter вообще экономит деньги

На Flutter пишут один код на Dart сразу для iOS и Android. Экономия возникает не потому, что Flutter-разработчики «дешевле». Просто следующие вещи пишутся один раз:

  • бизнес-логика: корзина, расчёт рассрочки, статусы заявок;
  • интерфейс и анимации;
  • работа с сервером и кэшем;
  • тесты.

Это давно уже не эксперимент. В блоге Flutter со ссылкой на Apptopia сказано, что доля Flutter среди новых бесплатных приложений в App Store выросла примерно с 10% в 2021 году почти до 30% в 2024-м (flutter.dev). Поэтому риск «через год приложение некому будет поддерживать» сегодня невелик.

Где экономия заканчивается

Одна кодовая база не означает, что платформенного кода не будет совсем. Если для нужной функции нет готового пакета, разработчик пишет мост (platform channel) отдельно на Swift и на Kotlin. По сути это та же нативная разработка, только внутри Flutter-проекта. Когда мостов много, вы платите уже за три стека вместо двух.

Модель расчёта в человеко-неделях

Цифры ниже условные и нужны только для иллюстрации логики. Это не рыночные данные. Подставьте оценки своего подрядчика.

Допустим, клиентская часть на одной нативной платформе занимает N человеко-недель. P — доля функций, которые во Flutter всё равно придётся писать нативно через мосты.

СтатьяНатив (iOS + Android)Flutter
Общая логика и экраны2 × N × (1 − P)≈ 1,0–1,2 × N × (1 − P)
Платформенные функции2 × N × P2 × N × P + время на мосты
Тестированиена двух платформахна двух платформах (меньше, но не вдвое)
Дизайнчасто под два набора гайдлайноводин дизайн с подгонкой под платформы

Пример 1. Каталог автосалона с записью на тест-драйв. N = 10, P = 0,05. Натив займёт около 20 недель. На Flutter общая часть займёт примерно 10–12 недель, платформенная — около недели. Экономия ощутимая.

Пример 2. Логистическое приложение с фоновым GPS-трекингом, офлайн-режимом и сканером штрихкодов. N = 10, P = 0,4. Натив займёт около 20 недель. На Flutter общая часть займёт 6–7 недель, платформенные функции — ещё 8, плюс отладка мостов. Разница почти пропадает, а рисков становится больше.

Вывод простой: чем больше P, тем меньше смысла в одной кодовой базе. Когда P приближается к половине, сравнивайте полные сметы на оба варианта, а не верьте общим словам про «экономию в два раза».

Когда натив дешевле на дистанции

Стартовая смета покрывает только часть расходов. Приложение живёт 3–5 лет, и за это время появляются траты, которых в первом коммерческом предложении нет.

  1. Обновления iOS и Android. Apple и Google каждый год меняют правила: разрешения, работу в фоне, требования к целевой версии SDK. В нативе вы обновляетесь сразу. Во Flutter иногда приходится ждать, пока обновятся сторонние пакеты, или чинить их самим.
  2. Зависимость от пакетов. Пакет на pub.dev, который поддерживал один энтузиаст, может перестать обновляться. Если на нём держится ключевая функция, переписывать её будете вы.
  3. Тяжёлые функции устройства. AR, обработка видео, Bluetooth-оборудование (весы, чековые принтеры, OBD-адаптеры) — здесь натив работает с железом напрямую, без прослоек.
  4. Команда. Если у вас уже есть штатный iOS- или Android-разработчик, Flutter ради второй платформы означает три компетенции вместо двух.
  5. Нужна только одна платформа. Если приложением пользуются курьеры на служебных Android-смартфонах, iOS вам не нужен. Flutter тогда ничего не экономит, а нативный Kotlin проще поддерживать.

Узбекский контекст: о чём молчат зарубежные статьи

Большинство сравнений пишут для рынков, где платят через Apple Pay и Stripe. У нас картина другая.

Платежи: Payme, Click, Uzum, карты Uzcard и Humo

До выбора стека выясните, как именно приложение будет принимать оплату.

  • Серверная интеграция и платёжная страница. Оплата открывается по ссылке или в WebView, подтверждение приходит на ваш сервер. Это одинаково работает и во Flutter, и в нативе, так что стек здесь не важен.
  • Мобильный SDK платёжной системы внутри приложения. Тут важно, для каких платформ SDK выпущен официально. Если он есть только для iOS и Android, во Flutter его придётся оборачивать мостом. Это лишние дни работы и ещё одна зависимость.

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

Интеграция с 1С

Мобильное приложение почти никогда не обращается к 1С напрямую. Между ними стоит сервер: он забирает из 1С остатки, цены и статусы заказов и отдаёт их приложению через API. Для выбора стека это хорошая новость: интеграция с 1С от мобильного стека не зависит. Если подрядчик утверждает, что «с 1С работает только натив», задайте ему уточняющие вопросы. О связке учётных систем и приложений подробнее в разделе CRM и ERP-систем.

Устройства пользователей

У многих пользователей в Узбекистане недорогие Android-смартфоны. Flutter на них работает нормально, но установочный файл Flutter-приложения обычно больше, чем у такого же нативного. Если человек качает приложение через мобильный интернет ради одного действия, это может снизить конверсию. Тестируйте на реальных бюджетных устройствах, а не только на флагмане разработчика.

Сводная таблица: что выбрать

СитуацияРекомендацияПочему
Каталог, заказы, личный кабинет, нужны iOS и AndroidFlutterБольшая доля общего кода
MVP для проверки идеиFlutter или вообще не приложениеСкорость важнее идеальной производительности
Только Android, корпоративные устройстваНативный KotlinВторая платформа не нужна
Фоновый GPS, Bluetooth-оборудование, сканерыНативМного платформенного кода
Тяжёлая графика, AR, обработка видеоНативПрямой доступ к железу
Уже есть сильная нативная командаНативНезачем добавлять третий стек
Нужны веб, iOS и Android на одной логикеFlutter (для веба с оговорками)Одна команда на все платформы

Чек-лист перед подписанием договора

Ответьте на эти вопросы письменно. Это сэкономит недели споров с подрядчиком.

  1. Нужны ли обе платформы с первого дня? Сколько ваших клиентов пользуется iOS? Посмотрите аналитику сайта.
  2. Какие функции устройства нужны: камера, геолокация в фоне, Bluetooth, NFC, push-уведомления с действиями, виджеты?
  3. Есть ли для каждой из них поддерживаемый пакет? Когда он последний раз обновлялся?
  4. Как будет проходить оплата: через платёжную страницу или через SDK внутри приложения?
  5. Откуда приложение берёт данные: из 1С, CRM, собственной базы? Есть ли уже API?
  6. Кто будет поддерживать приложение через год: подрядчик или ваша команда? На каком стеке работает ваша команда?
  7. Заложены ли в смету ежегодные обновления под новые версии iOS и Android?
  8. Тестировали ли прототип на бюджетном Android-смартфоне?

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

Когда мобильное приложение вообще не нужно

Скажем честно: многим бизнесам в Узбекистане приложение из магазина не нужно. Чтобы оно работало, клиент должен его найти, скачать, зарегистрироваться и потом не удалить.

  • Telegram-бот или Mini App. Запись на услугу, приём заявок, статусы заказов, в том числе оплата, прямо в мессенджере, которым клиенты и так пользуются каждый день. Автосалону запись на тест-драйв и ТО через бота часто даёт не меньше, чем отдельное приложение, а стоит заметно дешевле.
  • Адаптивный сайт или PWA. Подходит, если клиент заходит редко: раз в месяц посмотреть каталог или оставить заявку.
  • Готовые конструкторы приложений для доставки и кафе. Они бывают дешевле заказной разработки, если процесс у вас стандартный и рамки шаблона вас устраивают.

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

Итог

Выбор между Flutter и нативом — вопрос не моды, а двух вещей: доли платформенного кода и срока, который приложение проживёт. Посчитайте P для своего проекта, пройдите чек-лист и попросите подрядчика показать, где в смете появляются мосты и почему.

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

Читайте также