Одна правка вместо двух: iOS и Android из одной базы кода
Кроссплатформенная разработка позволяет написать приложение один раз и собрать из него версии для iOS и Android. Общий код содержит логику, экраны и обмен с сервером; платформенные функции вроде push-уведомлений или сканера подключаются отдельными модулями. Для малого и среднего бизнеса это одна команда и одна правка вместо двух.
Почему два отдельных приложения для iOS и Android дорожают с каждым релизом 💸
Типичная история московского дистрибьютора. Торговым представителям заказали приложение: каталог, остатки, заказ клиента. Сначала сделали версию для iPhone, потому что её хотел директор. Android-версию через несколько месяцев писала другая команда по пересказанному ТЗ. В понедельник менеджер меняет прайс в 1С, и в iOS-версии скидка считается от прайса, а в Android от последней цены клиента. Клиент, к которому ходят два представителя с разными телефонами, получает два разных предложения от одной компании.
Обычно двойная разработка получается без злого умысла. Приложение стартует под ту платформу, на которой сидит руководитель, а вторую добавляют, когда выясняется, что половина сотрудников пользуется Android. Заказчик покупает второй проект с нуля, потому что код первого переиспользовать нельзя.
Две кодовые базы дают два набора ошибок
Нативная разработка требует отдельного кода на Swift для iOS и на Kotlin для Android. Правило расчёта скидки приходится реализовывать дважды, но разработчики читают задачу по-разному, поэтому версии расходятся. Каждая правка проходит два цикла тестирования и две проверки в магазинах приложений. Новая функция выходит на одной платформе раньше, на другой позже, а сотрудники всё это время работают по разным правилам.
Что теряет бизнес, пока версии расходятся
Ставка выше стоимости разработки. Бухгалтерия вручную пересчитывает спорные заказы. Менеджеры не доверяют приложению и звонят в офис уточнять цену. Подрядчик берёт деньги за исправление ошибки дважды: один раз на Swift, второй на Kotlin. Владельцы начинают откладывать обновления, потому что каждое изменение стоит как две задачи, и приложение отстаёт от новых версий iOS и Android.
Как собрать iOS и Android из одной базы кода: Flutter, React Native, Kotlin Multiplatform 📱
Кроссплатформенный подход убирает причину расхождения: логика расчёта лежит в одном месте, и разойтись ей негде. Правка скидки превращается в один коммит, из которого собираются обе версии. Реализаций у подхода несколько, и они ведут себя по-разному.
Flutter рисует интерфейс собственным движком, поэтому экраны выглядят одинаково на обеих платформах; язык разработки — Dart. React Native пишут на JavaScript или TypeScript, а элементы интерфейса на устройстве получаются нативными: это удобно, если в компании уже есть веб-разработчики. Kotlin Multiplatform делит между платформами бизнес-логику, а интерфейс можно оставить нативным.
Отдельный вариант для компаний на 1С — 1С:Мобильная платформа. Одна конфигурация собирается под iOS и Android и сразу работает с данными учётной системы. Ограничение тоже понятно: интерфейс строится из того, что умеет платформа, и для витрины с фирменным дизайном её возможностей обычно не хватает.
Ниже сводка по подходам, нативная разработка дана для сравнения.
| Подход | Что общего в коде | Когда подходит | Ограничение |
|---|---|---|---|
| Нативная разработка (Swift и Kotlin) | Ничего, два проекта и две команды | Тяжёлая графика, глубокая работа с системой | Каждая правка делается и оплачивается дважды |
| Flutter | Интерфейс и логика | Фирменный интерфейс, одинаковый на iOS и Android | Часть функций устройства подключается через плагины |
| React Native | Логика и компоненты экранов | В компании есть веб-команда на JavaScript | Зависимость от сторонних библиотек, обновления требуют внимания |
| Kotlin Multiplatform | Бизнес-логика и обмен с сервером | Сложная офлайн-логика при нативном виде экранов | Интерфейс часто пишется отдельно под каждую платформу |
| 1С:Мобильная платформа | Вся конфигурация | Приложение для сотрудников на данных 1С | Интерфейс ограничен возможностями платформы |
Как выбрать под вашу задачу
- ✓Приложение для торговых представителей, курьеров или кладовщиков на данных 1С: сначала проверьте 1С:Мобильную платформу, она может закрыть задачу без разработки с нуля.
- ✓Клиентское приложение с фирменным интерфейсом и анимацией: Flutter.
- ✓В штате есть команда на JavaScript, а интерфейс должен быть нативным: React Native.
- ✓Сложная логика с работой без сети и собственный дизайн под каждую ОС: Kotlin Multiplatform.
Одно ограничение не обходит ни один из подходов: iOS-версию собирают только на компьютере Apple с Xcode, даже если код пишет разработчик на Windows. Учитывайте это при расчёте бюджета и инфраструктуры.
Что делать, если часть функций упирается в нативный код 🔧
Фреймворк не знает про ваше железо. Складской терминал со встроенным сканером штрихкодов, Bluetooth-весы на приёмке, NFC-метка на оборудовании, фоновая геолокация курьера: к каждой функции iOS и Android дают доступ по-своему.
Сначала ищем готовый плагин и проверяем, живой ли он. Если последний релиз вышел несколько лет назад, опираться на него опасно: свежая версия ОС сломает функцию, а чинить некому. Когда плагина нет или он не закрывает сценарий, пишем нативный модуль на Swift и Kotlin. Модуль небольшой и подключается к общему коду через канал обмена, поэтому вы поддерживаете один общий проект и две тонкие вставки вместо двух полных приложений.
Если ошибка воспроизводится только на одной платформе
Баг, который видят на Android и не видят на iPhone, сидит в платформенном слое: в плагине, разрешениях или настройках энергосбережения. Общая логика отрабатывает на обеих ОС одинаково. Поэтому поиск начинают с журнала устройства и версии плагина, а не с пересмотра всего кода. Типичный случай: курьерское приложение теряет геолокацию в фоне на отдельных моделях Android, потому что оболочка телефона закрывает фоновые процессы. Лечится настройкой исключений и нативным сервисом, а не переписыванием приложения.
Есть задачи, где кроссплатформа проигрывает: игры, дополненная реальность, обработка видео в реальном времени. Для учётных, торговых и сервисных приложений таких требований почти не бывает, и общий код справляется.
Как предотвратить расхождение версий и проблемы при публикации
- ✓Держите расчёты в учётной системе. Цены, скидки и остатки считает 1С, приложение только показывает результат. Тогда сценарий с двумя разными ценами невозможен: обе версии берут число из одного источника. Так устроена интеграция мобильного приложения с 1С.
- ✓Ведите один список задач и одно ТЗ на обе платформы. Пересказанное ТЗ и породило расхождение в начале статьи.
- ✓Настройте автоматическую сборку: из одной ветки репозитория выходят обе версии и попадают к тестировщикам одновременно.
- ✓Держите тестовый парк: по одному старому и одному новому устройству на каждую ОС, плюс модели, которые реально лежат в руках у сотрудников.
- ✓Планируйте ежегодное обновление под новые версии iOS и Android: в общем проекте это одна задача, а не две.
Публикация отнимает время, которое проще заложить заранее. App Store, Google Play и RuStore проверяют приложения по своим правилам, и срок модерации у каждого свой. Приложение для сотрудников не обязательно выкладывать в открытый каталог: на Android установочный файл раздают напрямую, на iOS есть закрытая раздача через TestFlight и корпоративные программы Apple.
Отдельная тема — персональные данные. Если приложение собирает данные клиентов или сотрудников, их первичная запись и хранение должны идти в базах на территории России: этого требует 152-ФЗ. Серверную часть выбирают с учётом этого требования, а не после запуска, когда перенос данных обойдётся дороже.
Сколько стоит кроссплатформенное приложение и как мы его делаем
Разработка мобильного приложения в ukved.ru стоит от 500 000 ₽. Итог зависит от числа экранов, интеграций с учётной системой, офлайн-режима и платформенных функций вроде сканера. Точную сумму называем после разбора задачи, ориентиры по услугам собраны на странице цены и тарифы.
Работаем так. Сначала выбираем технологию под задачу, а не под моду: между Flutter, React Native, Kotlin Multiplatform и 1С:Мобильной платформой. Если хватает 1С, говорим об этом сразу, и вы не платите за разработку с нуля. Бизнес-логику и данные оставляем в 1С, а приложение подключаем через интеграцию, поэтому цены и остатки на iOS и Android совпадают.
Для оптовых компаний и дистрибьюторов делаем B2B-приложение с 1С: клиент собирает заказ с телефона и видит цены и остатки из вашей базы. Если задача шире, смотрите общее описание: разработка мобильных приложений.
Напишите, кто будет пользоваться приложением и с какими данными работать. По этому описанию мы подберём подход и посчитаем бюджет сразу на обе платформы.
❓ Частые вопросы
Сколько стоит кроссплатформенное мобильное приложение для бизнеса?
Разработка мобильных приложений в ukved.ru начинается от 500 000 ₽. Итоговая сумма зависит от числа экранов, интеграции с 1С, офлайн-режима и платформенных функций вроде сканера штрихкодов. Один проект сразу даёт версии для iOS и Android, поэтому второе приложение отдельно оплачивать не нужно. Точный бюджет считаем после разбора задачи.
Чем кроссплатформенное приложение хуже нативного?
Для учётных, торговых и сервисных приложений разница почти незаметна. Нативный код выигрывает там, где нужна тяжёлая графика, дополненная реальность или обработка видео в реальном времени. Некоторые функции устройства, например сканер терминала, требуют небольшого нативного модуля, который подключается к общему коду и не превращается во второе приложение.
Можно ли подключить кроссплатформенное приложение к 1С?
Можно. Приложение обращается к базе 1С через интеграцию: цены, остатки и заказы берутся из учётной системы, а не считаются на телефоне. Поэтому на iOS и Android сотрудники и клиенты видят одни и те же данные. Для сотрудников есть и вариант на 1С:Мобильной платформе без разработки с нуля.
Нужно ли публиковать приложение для сотрудников в App Store и Google Play?
Не обязательно. Корпоративное приложение можно раздавать закрыто: на Android установочный файл устанавливают напрямую, на iOS работает закрытая раздача через TestFlight и корпоративные программы Apple. Открытая публикация нужна, когда приложением пользуются клиенты. Тогда проверку проходят в каждом магазине, включая RuStore, и у каждого свои правила и сроки.
Что выбрать: Flutter, React Native или Kotlin Multiplatform?
Flutter берут, когда нужен фирменный интерфейс, одинаковый на обеих платформах. React Native подходит, если в компании есть веб-разработчики на JavaScript. Kotlin Multiplatform выбирают при сложной логике и требовании к нативному виду экранов. Если приложение работает с данными 1С, сначала проверяют 1С:Мобильную платформу: она может закрыть задачу без разработки с нуля.
Или позвоните: +7 906 045-28-27 — в рабочее время с 9:00 до 19:00
Остались вопросы? Нужна помощь?
Менеджеры компании с радостью ответят на ваши вопросы, произведут расчет стоимости услуг и подготовят индивидуальное коммерческое предложение.
Бесплатная консультация

