Новости
Flutter или натив: что выбрать для первого приложения?
Короткий ответ
Для первого бизнес-приложения обычно хватает Flutter. Разработка приложения на Flutter в Inu-apps — это один код сразу для iPhone и Android: те же экраны выходят вместе. Нативная разработка — это два приложения. Её выбирают, когда продукт зависит от тяжёлой графики, AR или глубокого доступа к системе.
Вопрос не в том, какая технология новее. Вопрос в том, можно ли одним общим кодом проверить идею и сколько вы заплатите, если так нельзя.
Чем Flutter отличается от нативной разработки
Нативное приложение пишут под одну платформу. Версия для iPhone и версия для Android — два проекта, даже если экраны выглядят одинаково. Flutter собирает один проект в оба приложения. Для каталога, записи или личного кабинета пользователь разницы почти не замечает.
Экономия есть, и мы не выдаём её за фиксированный процент от чужой цены. Вы не делаете второй интерфейс, второй прогон тестов и вторую команду. Более широкий продукт — с оплатой, несколькими ролями и интеграциями — всё равно считается по своему составу.
Ниже — сравнение для первой версии, а не для продукта, который уже живёт годами и обрастает исключениями.
| Вопрос | Flutter | Две нативные команды |
|---|---|---|
| Сколько кодовых баз | Одна: экраны и логика общие | Две: iOS и Android живут отдельно |
| Срок до первой сборки | Один сценарий можно собрать за 3 недели | Тот же объём обычно дольше: работа идёт дважды |
| Стоимость первой версии | От 80 000 ₽ за узкую версию на обе платформы | Два интерфейса и два набора тестов |
| Одинаковое поведение | Исправление выходит на обе платформы вместе | Баг можно починить на одной платформе и забыть про вторую |
| Доступ к устройству | Камера, геолокация, пуши и обычные API | Нужен, если сценарий упирается в систему, графику или «железо» |
Когда Flutter не подходит
До оценки нужно сказать прямо, если идея — тяжёлая 3D-игра, дополненная реальность, сложная обработка видео или плотная работа с оборудованием. Таким продуктам нужны нативные модули. Обещание, что Flutter «как-нибудь вберёт» это дёшево, только переносит стоимость на потом.
Обычное приложение для бизнеса в этот список не попадает. Аккаунт, одно главное действие и результат на экране — это и есть первая версия. Если один вызов устройства ломает сценарий, мы называем его и предлагаем другой путь, а не прячем работу внутри стартовой цены.
Отдельный случай — уже написанный нативный код, который нужно продолжить. Тогда Flutter не заменяет то, что есть. Сначала смотрим, что реально поддерживается, и только потом говорим, имеет ли смысл новая кодовая база.
Ещё одна граница — уникальный интерфейс, который должен повторять нестандартную анимацию конкретной платформы до пикселя. Для первой версии это редко нужно. Пользователю важнее пройти сценарий, чем увидеть жест, который есть только на одной системе. Если такой жест и есть смысл продукта, это уже аргумент в пользу натива, и мы так и запишем в оценке.
Как не перепутать экономию с чужими процентами
В статьях о кроссплатформенной разработке часто встречаются проценты экономии относительно двух нативных приложений. Мы не ставим такой процент в смету. У двух студий разный состав «нативного» проекта: где-то это только экраны, где-то ещё сервер, дизайн и публикация. Процент без одинаковой базы ничего не обещает.
Полезная формулировка проще. Один сценарий на Flutter делается один раз и собирается на две платформы. Два нативных приложения — это два раза те же экраны. Поэтому узкая первая версия на Flutter заметно спокойнее по бюджету, чем заказ двух отдельных команд на тот же объём. Как только сценариев становится несколько, сравнение надо пересчитывать заново, а не умножать стартовую цену на коэффициент из чужой статьи.
То же и со сроком. Три недели — это не срок любого приложения на Flutter. Это срок до готовых сборок для одного сценария без тяжёлых интеграций. Публикация и модерация в этот срок не входят.
Одно приложение для iOS и Android одновременно
Частый вопрос: нужно ли заказывать два приложения. На Flutter — нет. Первую версию сразу собираем для обеих платформ. Результат узкого трёхнедельного объёма — готовые сборки и исходный код. Публикация в RuStore, App Store и Google Play — следующий шаг, его планируют, когда приложению действительно нужна страница в магазине.
Одинаковое поведение на обоих телефонах важнее, чем два отдельных макета с одним логотипом. Ошибку, найденную на Android, не нужно заново искать на iPhone: исправление уже общее. Поэтому небольшая команда может вести обе платформы, не нанимая вторую.
Это не значит, что магазины ведут себя одинаково. Модерация, аккаунты разработчика и правила оплаты у Apple, Google и RuStore разные. Технология тут ни при чём: один код не отменяет правила конкретного стора.
Как выбор влияет на бюджет первой версии
Сфокусированная первая версия стоит от 80 000 ₽. В неё входят один сценарий, до 10 экранов, личный кабинет, каталог или просмотр товаров и услуг и простой бэкенд. Это не полный продукт с оплатой, рассылками и админкой. Такие вещи живут в следующей оценке.
Flutter не делает безграничный объём дешёвым. Он делает узкий объём возможным сразу на двух платформах. Если идею нельзя проверить одним сценарием, говорим об этом на разборе. В смету тогда входит минимальный набор путей, которого достаточно, и срок сдвигается вместе с объёмом. Опубликованная стартовая цена остаётся у узкой версии.
Дизайн экранов под бренд, админка, онлайн-оплата, push и публикация в сторах увеличивают и цену, и срок. Их не нужно записывать в первую сборку только потому, что «в нормальном приложении так принято». Сначала стоит увидеть, проходит ли человек главный сценарий.
Первая версия на Flutter — от 80 000 ₽ : на странице услуги разобраны пакеты, срок до готовых сборок и что добавляет следующий тариф.
Что решить до оценки
До созвона достаточно трёх вещей: кто открывает приложение, какое одно действие он должен совершить и без чего это действие бессмысленно. Техническое задание для этого разговора не нужно. Если макеты уже есть, их можно приложить, но они не заменяют сценарий.
Дальше мы фиксируем, помещается ли задача в первую версию на Flutter или ей нужен другой состав. Оценка обычно готова за два рабочих дня: список экранов, цена и срок. Код после работы остаётся у вас, поэтому выбор Flutter не привязывает продукт к студии.
Имеет смысл спросить у любого подрядчика одно и то же: что именно будет готово через три недели, на чьём аккаунте окажутся сборки и можно ли отдать репозиторий другой команде. Если в ответе смешаны публикация в сторах, админка и оплата, это уже другой объём, и его нужно считать отдельно. Flutter тут никого не обязывает обещать весь продукт по цене первой сборки.
Для первого приложения спокойный путь такой: один сценарий, обе платформы, сборки на руках, код у вас. Следующий бюджет появляется после того, как этим сценарием воспользовались живые люди, а не после того, как в смету заранее записали все будущие роли.
Вопросы по теме
Можно ли одним кодом закрыть iOS и Android?
Да. На Flutter одна кодовая база собирается для iPhone и Android. Экраны и основной сценарий выходят вместе, исправление действует на обе платформы.
Когда лучше выбрать нативную разработку?
Когда продукт зависит от тяжёлой графики, AR, сложного видео или глубокого доступа к устройству. Для каталога, записи и личного кабинета обычно хватает Flutter. Если это не так, говорим до оценки.
Flutter делает первую версию дешевле?
Он убирает необходимость писать два нативных приложения под один и тот же сценарий. Узкая первая версия начинается от 80 000 ₽ и может быть готова за 3 недели. Более широкий состав считаем отдельно.
Нужно ли сразу публиковать приложение в сторах?
Нет. Первые три недели заканчиваются готовыми сборками и исходным кодом. Публикация в RuStore, App Store и Google Play — отдельный этап, его срок зависит от модерации магазина.
По теме
Обсудим ваш проект
Опишите цель и основной сценарий. Ответим, подходит ли разработка MVP за 3 недели, и что нужно для сметы.