Мобильные приложения на Flutter для iOS и Android
Разрабатываем мобильные приложения на Flutter: одна кодовая база работает и на iOS, и на Android, поэтому проект стоит примерно вдвое дешевле двух нативных и выходит быстрее. Публикуем в RuStore, App Store и Google Play. От 1 000 000 ₽ и от 2 месяцев за первую версию. Если задача решается мини-приложением в мессенджере за пятую часть бюджета, скажем об этом сразу — это чаще, чем кажется.
- Стоимость
- от 1 000 000 ₽первая версия для обеих платформ сразу
- Срок
- от 2 месяцевФиксируется в договоре
- Если сорвём срок
- минус 20%Стоимость работ по договору снижается на 20%. Пункт 3.2 образца
Отвечаем обычно в течение двух рабочих дней. Если задача не наша — скажем сразу.
Когда это нужно
Если узнали свою ситуацию хотя бы в одном пункте — задача решается. Если ни в одном, скажем прямо, что услуга вам не нужна.
Клиент пользуется вами каждый день
Доставка, парк техники, подписка, служба заказов — там, где человек открывает сервис по несколько раз в неделю, иконка на экране телефона окупается. Если реже нескольких раз в год — не окупается, и об этом честнее сказать до сметы.
Нужны возможности телефона
Камера и сканирование, работа без сети, уведомления, геопозиция в фоне, оплата в одно касание. Это то, чего браузер и мини-приложение не дают или дают с ограничениями.
Приложение для сотрудников в полях
Монтажники, курьеры, торговые представители работают там, где связь пропадает. Приложение копит данные локально и отправляет их, когда сеть появится, — веб-версия так не умеет.
Нативная разработка не влезла в бюджет
Две отдельные команды на iOS и Android означают двойную стоимость и разработки, и поддержки. Для малого и среднего бизнеса это чаще всего и есть причина, по которой приложение не появилось.
Почему Flutter
Это основной разбор страницы, а не приписка: выбор технологии здесь определяет и бюджет, и срок, и сколько будет стоить поддержка через три года. Сравнение с нативной разработкой — ниже.
Одна кодовая база вместо двух
Логика, экраны и связь с сервером пишутся один раз и работают на обеих платформах. Нативный проект — это два отдельных приложения, два набора задач и два тестирования каждой правки. Отсюда основная часть разницы в бюджете: на первой версии она обычно близка к двум разам.
Поддержка стоит вдвое дешевле
Экономия на разработке — половина дела; главное начинается потом. Каждая доработка в нативном проекте делается дважды и дважды проверяется, каждая ошибка чинится дважды. За три года содержания разница накапливается больше, чем на самой разработке.
Интерфейс одинаковый на обеих платформах
Flutter рисует интерфейс сам, а не собирает его из системных элементов. Экран выглядит и ведёт себя одинаково на iPhone и на Android — не расходятся ни отступы, ни поведение списков, ни фирменные цвета. В нативной паре это отдельная работа по сведению двух приложений к одному облику.
Одна команда на всём жизненном цикле
Не нужно искать и удерживать двух разных разработчиков и синхронизировать их. Для проекта на 1–2 миллиона это решает: нативная пара часто останавливается не из-за денег, а из-за того, что одна из двух половин осталась без исполнителя.
Обновление выходит одновременно
Правка уходит в обе платформы одной сборкой. В нативной паре релизы разъезжаются: сначала выходит одна платформа, вторая догоняет через неделю, и часть пользователей живёт со старой версией дольше, чем планировалось.
Всё то же в RuStore
Приложение публикуется в RuStore, App Store и Google Play из той же сборки. Отдельного проекта под российский магазин не требуется — это ровно та же кодовая база с другой подписью.
Почему мы выбрали Flutter и где он не подойдёт
Сравнение честное: строка, где выигрывает нативная разработка, заполнена всерьёз. Если ваш случай попадает именно в неё, наш вариант вам не подходит, и лучше узнать это здесь.
| Критерий | Flutter (наш вариант) | Нативная пара (Swift + Kotlin) |
|---|---|---|
| Бюджет первой версии | От 1 000 000 ₽ на обе платформы | От 2 000 000 ₽: два отдельных проекта |
| Срок первой версии | 2–4 месяца | 4–7 месяцев при параллельной работе двух команд |
| Стоимость доработок | Одна правка — одна реализация | Каждая правка делается и проверяется дважды |
| Единый облик на iOS и Android | Из коробки: интерфейс рисуется одинаково | Сводится вручную, расхождения всплывают постоянно |
| Доступ к возможностям телефона | Камера, уведомления, оплата, работа без сети, геопозиция — есть | То же самое |
| Новая возможность платформы в день выхода iOS | Появляется с задержкой в недели или месяцы | Доступна сразу |
| Тяжёлая графика, обработка видео, дополненная реальность | Возможно, но упирается в потолок производительности | Выигрывает: прямой доступ к системным механизмам |
| Специфическое оборудование и системные интеграции | Нужен нативный слой — стоимость приближается к нативной | Штатная работа |
Не берём на Flutter приложения, где основная ценность — тяжёлая графика, обработка видео в реальном времени, дополненная реальность или работа со специфическим оборудованием. В этих случаях нужна нативная разработка, мы её не поставляем и порекомендуем другую команду. Во всех остальных сценариях малого и среднего бизнеса — каталог, заказ, кабинет, задачи для сотрудников, уведомления, оплата — Flutter даёт тот же результат вдвое дешевле.
Что входит в работу
Оплата поэтапная: 50% перед этапом, 50% после подписания акта приёмки этапа. Аванса за весь проект нет.
Обследование и техническое задание
- Проверяем, нужно ли вам приложение: сколько раз в месяц человек им воспользуется
- Считаем стоимость альтернатив — мини-приложения и мобильной версии сайта
- Определяем состав первой версии и то, что откладываем
- Собираем требования магазинов: что нужно для публикации в RuStore и App Store
Остаётся у вас Техническое задание, оценка, схема решения и расчёт по альтернативам — включая вывод «приложение вам не нужно», если он честный.
Проектирование
- Кликабельный прототип всех экранов
- Прорисовываем состояния: нет сети, пустой список, ошибка оплаты, отказ в доступе
- Согласуем оформление под ваш бренд
Остаётся у вас Кликабельный прототип и макеты экранов.
Разработка
- Собираем приложение и серверную часть
- Подключаем уведомления, оплату и работу без сети
- Показываем сборку на реальном телефоне каждую неделю
Остаётся у вас Доступ к репозиторию с первого дня, тестовые сборки для установки на ваши телефоны.
Публикация и передача
- Готовим карточки и материалы для RuStore, App Store и Google Play
- Проводим приложение через проверку магазинов и отвечаем на замечания
- Передаём документацию, доступы и регламент выпуска обновлений
Остаётся у вас Опубликованное приложение, исходный код, руководства, 14 дней бесплатных доработок.
Что не входит
Перечисляю до договора, чтобы это не выяснилось после оплаты. Часть пунктов берём отдельно, часть проще сделать самим.
- Нативная разработка на Swift и Kotlin — не наша компетенция, и мы её не заявляем
- Учётные записи разработчика в магазинах и их ежегодная оплата — оформляются на вас
- Продвижение приложения и привлечение первых установок
- Гарантия прохождения проверки магазина с первого раза: правила меняются, замечания отрабатываем в рамках проекта
- Хостинг серверной части и платёжный сервис — оформляются на вас и оплачиваются напрямую
- Сопровождение сверх гарантийных 14 дней — берётся отдельно и по желанию
На чём делаем и почему
Стек выбран так, чтобы вы могли сменить подрядчика без переписывания проекта.
Приложение
- Flutter
- Dart
Одна кодовая база на iOS и Android — отсюда и бюджет, и срок, и стоимость поддержки.
Серверная часть
- Node.js
- PostgreSQL
- Docker
Свободные технологии, разворачиваются в российском контуре, без лицензионных платежей.
Магазины
- RuStore
- App Store
- Google Play
Публикация из той же сборки: отдельного проекта под российский магазин не нужно.
Возможности телефона
- уведомления
- работа без сети
- камера
- геопозиция
- оплата
Всё, ради чего обычно и делают приложение, доступно без нативного слоя.
Сколько это стоит
Вилка зависит от объёма, а не от того, насколько срочно вам нужно. Точную цену называем после обследования и фиксируем в договоре — до запуска она не меняется.
| Класс задачи | Стоимость | Срок | Что двигает цену |
|---|---|---|---|
| Первая версия: 5–10 экранов, вход, базовая логика | 1 000 000 – 2 000 000 ₽ | 2–4 месяца | Число экранов, нужна ли работа без сети, сложность связи с вашими системами |
| Среднее приложение: 20–30 экранов, платежи, интеграции, уведомления | 2 000 000 – 4 500 000 ₽ | 4–7 месяцев | Число ролей, платежи и подписки, обмен с учётной системой, требования к отчётности |
Проекты дешевле 150 000 ₽ не берём: на таком бюджете не получается ни обследования, ни документации, ни гарантии — а без них работа превращается в лотерею для обеих сторон. Если задача меньше, честнее сказать об этом сразу, чем растянуть её до нужной суммы. Все цены.
Документы можно посмотреть заранее
Без формы и обмена на контакты: откройте файл и прочитайте условия до того, как о чём-то договариваться.
- Образец договора на разработкуФиксированная цена, срок со скидкой 20% за просрочку по нашей вине, репозиторий на вашем аккаунте с первого дня, 14 дней бесплатных доработок, переход исключительных прав.Открыть PDFСкачать в Word, чтобы править
- Образец технического заданияОбезличенное ТЗ по ГОСТ 34.602-2020 на реальном проекте — чтобы заранее видеть, что именно получите на первом этапе.Открыть PDFСкачать в Word, чтобы править
Частые вопросы
Вопросы, которые задают до договора. Если вашего здесь нет — спросите, ответим так же прямо.
Проверяется одним вопросом: сколько раз в месяц человек им воспользуется. Если несколько раз в неделю — окупается. Если несколько раз в год, установка не произойдёт: человек не станет ставить приложение ради разовой покупки. В таком случае мини-приложение в мессенджере даёт тот же результат за пятую часть бюджета, и я предложу именно его, даже когда это значит отказаться от заказа в пять раз дороже.
Это настоящее приложение: оно устанавливается из магазина, работает без сети, шлёт уведомления, пользуется камерой и оплатой. Разница не в том, «настоящее» оно или нет, а в том, как рисуется интерфейс. На типичных для бизнеса задачах — списки, формы, карточки, оплата — разницы не видно. Она появляется на тяжёлой графике и дополненной реальности; там мы и не беремся.
RuStore публикует без ограничений, и для российской аудитории он сейчас основной канал. С App Store и Google Play ситуация зависит от вашего юридического лица и способа оплаты учётной записи разработчика; это решается, но требует подготовки, и мы проговариваем её на первом этапе, а не после сдачи. Учётные записи оформляются на вас: приложение должно принадлежать вам, а не подрядчику.
Обязательные расходы — учётные записи разработчика (App Store около 99 долларов в год, Google Play разово 25 долларов, RuStore бесплатно) и хостинг серверной части, обычно 5 000 – 20 000 ₽ в месяц. Плюс обновления: магазины поднимают требования примерно раз в год, и приложение нужно пересобирать, иначе его перестают принимать. Это несколько дней работы в год, если ничего не менять по существу.
Вам. Репозиторий заводится на вашем аккаунте до начала работ, учётные записи в магазинах оформляются на вас, приложение публикуется от вашего имени. Смена подрядчика не требует ничего, кроме передачи задач: у нового исполнителя будет и код, и история изменений, и доступ к публикации.
Да, и это наш обычный порядок: первая версия закрывает один ключевой сценарий целиком, выходит в магазины и собирает реальную обратную связь. Дальше вы достраиваете, глядя на то, чем пользуются. Ниже 1 000 000 ₽ опуститься не получится: публикация в магазинах, вход, серверная часть и проверка на реальных устройствах нужны даже самому простому приложению.
Расскажите, что нужно сделать
Достаточно пары предложений о задаче. Если она решается дешевле или другим способом — скажем об этом, даже когда это значит отказаться от заказа.
Отвечаем обычно в течение двух рабочих дней. Если задача не наша — скажем сразу.