Вопрос обычно задают как технический, а решается он экономикой: две кодовые базы стоят почти вдвое дороже одной и всегда дороже в поддержке.

Что даёт кроссплатформа

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

Для подавляющего большинства продуктов вопрос на этом закрывается.

Когда честный ответ — нативно

Продукт живёт на возможностях платформы. Тяжёлая работа с камерой в реальном времени, обработка звука, фоновая геолокация как основа продукта, системные виджеты и глубокие интеграции с ОС.

Частота кадров решает. Игры, AR, всё, что должно быть идеально плавным. Это не наш профиль, и мы скажем это прямо.

У вас уже есть нативная команда. Технически правильный выбор, который развалит процесс, — плохой выбор.

Чего кроссплатформа НЕ означает

Не означает, что можно не тестировать на обеих платформах. Android убивает фоновые приложения охотнее, разрешения ведут себя иначе, платёжные шторки выглядят по-разному. Одна кодовая база — не одна среда.

Не означает экономию на бэкенде: он тот же самый и часто дороже клиента.

Не означает, что вторая платформа бесплатна. Она дешёвая, но тестирование, публикация и ревью удваиваются.

Что это значит для сроков и денег

Разница считается не в процентах на строку кода, а в том, сколько раз надо

сделать одну и ту же работу.

Экраны и логика пишутся один раз вместо двух — это основная экономия, и она

заметна сразу.

Платформенные куски всё равно делаются дважды: пуши, оплата в приложении,

разрешения, работа в фоне. Их немного, но они всегда есть, и подрядчик, который

обещает «ноль платформенного кода», либо не делал этого, либо не считает то, что

уже написал за него автор библиотеки.

Проверка и публикация — двойные в любом случае: два стора, два ревью, два

набора устройств. Тестировать приложение [надо на обеих платформах и на живых

устройствах](/ru/services/test-automation), а не на эмуляторе: половина

интересных отказов случается именно на настоящем телефоне.

Итог в наших проектах: кроссплатформа даёт экономию порядка трети на первой

версии и больше — на втором году, когда каждая правка делается один раз, а не

дважды.

Что делать, если вы уже начали нативно

Частый случай: есть iOS-приложение, теперь нужен Android, и вопрос звучит как

«переписать всё или добавить вторую нативную команду».

Третий вариант — оставить рабочее приложение как есть, а вторую платформу

сделать кроссплатформенной, договорившись, что общий у них только сервер.

Звучит как компромисс и обычно им и является: вы получаете вторую платформу

быстрее и дешевле, но живёте с двумя интерфейсными кодовыми базами вместо одной.

Разумно это тогда, когда первое приложение уже приносит деньги и трогать его

рискованно. Неразумно — когда оно ещё меняет форму: тогда дешевле один раз

свести всё к одной базе и дальше идти вдвое быстрее.

Как решить за один разговор

Назовите три вещи: что приложение делает, где им пользуются и есть ли внутри деньги. Этого хватает, чтобы дать честный ответ, а не продать то, что удобнее.

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

Кстати, спросите заодно, как подрядчик тестирует то, что живёт вне приложения: системное окно разрешений, платёжную шторку, пуш на заблокированном экране. Мы это гоняем автотестами на живом устройстве, и таких сценариев у нашего приложения тридцать.

Соседний разбор: сколько стоит разработка мобильного приложения и что двигает эту цифру.