Приложение на Flutter: одна команда вместо двух и релиз на iOS и Android
Flutter выгоден бизнесу, когда приложение нужно и на iOS, и на Android: одна команда пишет один код на языке Dart, и обе версии выходят одновременно. Для заказов, склада и выездных сотрудников это дешевле двух нативных разработок. Мобильная разработка у нас стоит от 500 000 ₽.
Почему возникает двойной бюджет на мобильное приложение 📱
Оптовая компания в Москве заказывает приложение для торговых представителей. Подрядчик спрашивает: iOS или Android? У коммерческого директора iPhone, а большинство торговых ходит с недорогими Android-смартфонами. Начинают с Android, потому что так проще уложиться в бюджет.
Но скоро выясняется, что директор не видит сводку по заказам на своём телефоне, поэтому заказывают iOS-версию. Это отдельный проект: код на Kotlin в Swift не переносится, дизайн рисуют заново, тестируют отдельно. Дальше версии расходятся. Сканирование штрихкодов на Android уже работает, на iOS его только дорабатывают, и торговые с iPhone присылают заявки в мессенджер. Вечером менеджеры вносят их в 1С руками.
Здесь теряют сразу в двух местах. Второй бюджет уходит на то, что уже написано один раз. А ручной ввод даёт ошибки: заявка приходит в 1С с неверным количеством или адресом, и находят её при отгрузке, когда клиент уже ждёт товар.
Как Flutter убирает дубли: один код вместо двух
Flutter — фреймворк от Google с открытым исходным кодом. Приложение пишут на языке Dart, а Flutter сам рисует интерфейс и собирает из одного проекта версии для iOS и Android. Из того же кода при необходимости выходит веб-версия и приложение для Windows или macOS.
Для заказчика это значит следующее:
- ✓Один проект ведёт одна команда, поэтому новая функция выходит на обе платформы одновременно.
- ✓Экран сканирования, список заказов и форму заявки проектируют и тестируют один раз.
- ✓Баг исправляют в одном месте, а обе версии собираются из одной ветки.
- ✓Во время разработки правка появляется на экране телефона за секунды (режим hot reload), поэтому прототип можно показать и поправить прямо на встрече.
Скорость работы не страдает. Flutter компилирует код в машинный и не прячет интерфейс в веб-обёртку, поэтому для учётных задач (списки, формы, фото, сканер штрихкодов) его возможностей хватает. Этот стек выбирают и крупные команды: на Flutter сделаны приложения My BMW и Google Pay.
Когда Flutter не подходит и что выбрать вместо него
Flutter не универсален. Для 3D-игры, обработки видео по кадрам или приложения, которое в день выхода новой iOS должно использовать её свежие функции, надёжнее нативная разработка: плагины Flutter подхватывают новинки платформ с задержкой. Если приложение лишь тонкая надстройка над 1С для своих сотрудников, хватит мобильной платформы 1С. Сравнение подходов:
| Подход | Кодовых баз | Работа без сети | Когда выбирать |
|---|---|---|---|
| Flutter | Одна | Да, данные хранятся на устройстве и синхронизируются позже | Заказы, склад, выездные сервисы, клиентские кабинеты на iOS и Android |
| Нативная разработка (Swift и Kotlin) | Две | Да | Игры, тяжёлая графика, новинки ОС в день выхода |
| 1С:Мобильная платформа | Одна | Да, встроенная база на устройстве | Приложение, которое повторяет логику конфигурации 1С |
| Веб-приложение (PWA) | Одна | Ограниченно | Простые формы и справочники без сканера и Bluetooth |
Когда логика целиком живёт в конфигурации 1С, а пользователи сидят только внутри компании, смотрите в сторону разработки на 1С:Мобильной платформе. Если нужны фирменный интерфейс, клиенты вне компании или публикация в магазине приложений, берут Flutter.
Как исправить ситуацию, если у вас уже два нативных приложения
Переписывать всё с нуля не нужно. Flutter встраивается в готовое нативное приложение отдельными экранами (режим add-to-app), поэтому переход идёт по частям.
Порядок такой. Сначала выясняем, какие экраны правят чаще всего: заявки, каталог, акции. Их переносим первыми, потому что именно на них двойная правка стоит дороже всего. Стабильные экраны вроде настроек остаются нативными, пока не появится повод их трогать. Обмен с 1С выносим в общий слой, и обе версии ходят в одни и те же сервисы.
Обмен строится на HTTP-сервисах 1С. Как это устроено, описано на странице про интеграцию приложения с 1С. Если вы продаёте через торговых и клиентов, у нас есть формат B2B-приложения с 1С: клиент видит остатки и свои цены, оформляет заказ, а менеджер получает его в базе без перепечатки.
Отдельно проверьте, где стоит сама база. Если она работает на компьютере в офисе, снаружи до неё не достучаться: приложение либо не получает данные, либо базу выводят в интернет через открытые порты, а это риск. Перенос базы на арендованный сервер (от 1 100 ₽/мес за пользователя) снимает проблему, и приложение обращается к ней по защищённому каналу.
Что делать, если ошибки повторяются после релиза ⚠️
Проекты на Flutter ломаются по предсказуемым причинам. Вот три самые частые.
Приложение подвисает на старых телефонах
Кладовщики работают на смартфонах, которым несколько лет, и список из тысяч позиций прокручивается рывками. Обычно причина в том, что приложение строит список целиком, а не по мере прокрутки. Помогает ленивая отрисовка (ListView.builder) и профилирование в Flutter DevTools: там видно, какой экран перестраивается зря. Проверяйте приложение на самом слабом телефоне из парка, а не на флагмане разработчика.
Заказы дублируются после обрыва связи
Торговый стоит в подвале склада, где нет связи, и нажимает «Отправить». Ничего не происходит, он нажимает ещё раз. Позже в 1С приходят два одинаковых заказа. Исправляют это на уровне обмена: приложение присваивает документу уникальный идентификатор (GUID) при создании, а 1С при загрузке проверяет, нет ли уже документа с таким идентификатором. Повторная отправка после этого ничего не ломает.
Обновление Flutter ломает сборку
Новая версия Flutter выходит несколько раз в год, а сторонние пакеты подтягиваются не сразу. Если обновить всё за день до сдачи, сборка может не собраться, и релиз сдвигается. Версии Flutter и пакетов фиксируют в проекте, а обновляют по плану: отдельной задачей и с проверкой на реальных устройствах.
Как предотвратить проблемы: что зафиксировать до старта 🛡️
Большинство описанных историй закладывается на старте. Перед разработкой согласуйте пять вопросов.
- ✓Какие смартфоны и версии iOS и Android у сотрудников. От этого зависят минимальные версии системы и объём тестирования.
- ✓Что сотрудник делает без связи и как эти данные потом попадают в 1С. Офлайн-режим проще заложить в начале, чем добавлять к готовому приложению.
- ✓Какие роли есть в приложении: кто видит цены, кто остатки по складам, кто может отменять заказы.
- ✓Какие персональные данные приложение собирает и где хранит. 152-ФЗ требует держать базы с персональными данными граждан РФ на серверах в России, и сервер выбирают с учётом этого.
- ✓Кто сопровождает приложение после релиза. Обновления Flutter и пакетов, поддержка новых версий iOS и Android — отдельная работа, её прописывают в договоре.
Сколько стоит приложение на Flutter и как проходит разработка 💰
Разработка мобильного приложения у нас начинается от 500 000 ₽. Итог зависит от числа экранов, ролей, офлайн-режима и глубины обмена с 1С, поэтому точную сумму называем после аудита требований.
Работа идёт в четыре шага. Сначала аудит: собираем сценарии, список устройств и данные, которые нужны из 1С. Затем кликабельный прототип на Flutter, который вы запускаете на своих телефонах. После согласования идёт разработка этапами, и на каждом этапе вы получаете рабочую сборку, а не отчёт. В конце публикация и сопровождение.
От студий, которые делают только приложения, мы отличаемся тем, что внедряем и сопровождаем 1С, поэтому учётную систему и приложение проектирует одна команда. Обмен документами, справочники и права закладываются с первого дня, а не подгоняются после того, как приложение написано. Опишите задачу на странице разработки мобильных приложений, и мы скажем, подойдёт ли Flutter и из чего сложится стоимость.
❓ Частые вопросы
Сколько стоит мобильное приложение на Flutter для бизнеса?
Разработка мобильного приложения у нас начинается от 500 000 ₽. Итоговая сумма зависит от числа экранов, ролей пользователей, офлайн-режима и глубины обмена с 1С. Точную стоимость называем после аудита требований: к этому моменту понятны все экраны, роли и сценарии обмена, а значит, и объём работ. Прототип показываем на ваших телефонах до старта разработки.
Чем Flutter лучше нативной разработки для малого и среднего бизнеса?
Flutter даёт одну кодовую базу вместо двух: одна команда делает приложение для iOS и Android, а новая функция выходит на обе платформы сразу. Нативная разработка нужна для игр, тяжёлой графики и случаев, когда важны новинки ОС в день их выхода. Для заказов, склада и выездных сотрудников хватает Flutter.
Можно ли подключить приложение на Flutter к 1С?
Да. Приложение обменивается данными с 1С через HTTP-сервисы: получает номенклатуру, остатки и цены, отправляет заказы и документы. Заявки при этом могут создаваться без связи и уходить в 1С позже. Чтобы обмен работал, база 1С должна быть доступна из интернета по защищённому каналу, поэтому её часто переносят с офисного компьютера на арендованный сервер.
Как защитить данные клиентов в мобильном приложении по 152-ФЗ?
Если приложение собирает персональные данные граждан РФ, 152-ФЗ требует хранить их в базах на территории России. Поэтому сервер для приложения и базы 1С размещают в российском дата-центре, а обмен ведут по защищённому соединению. Состав данных и способ хранения фиксируют до начала разработки.
Можно ли перейти на Flutter, если приложение уже написано на Swift и Kotlin?
Можно, переписывать всё сразу не нужно. Flutter встраивается в готовое нативное приложение отдельными экранами, поэтому сначала переносят те, что правят чаще всего: заявки, каталог, акции. Стабильные экраны остаются нативными, пока нет повода их менять. Обмен с 1С выносят в общий слой.
Или позвоните: +7 906 045-28-27 — в рабочее время с 9:00 до 19:00
Остались вопросы? Нужна помощь?
Менеджеры компании с радостью ответят на ваши вопросы, произведут расчет стоимости услуг и подготовят индивидуальное коммерческое предложение.
Бесплатная консультация

