В 2025 году уже недостаточно просто выпустить приложение — оно должно быстро адаптироваться к изменениям рынка, удобно и эффективно интегрироваться с новыми технологиями и обеспечивать хороший пользовательский опыт. Но что лучше выбрать: нативную разработку, кроссплатформу, или технологию Kotlin Multiplatform?
Александр Кияйкин, CTO компании по разработке мобильных приложений CleverPumpkin, разбирает эти три подхода и сравнивает плюсы и минусы каждой технологии.

Архитектура нативных приложений
Нативное приложение пишут под конкретную операционную систему на «родных» языках и инструментах: Kotlin/Java в Android Studio и Swift/Objective‑C в Xcode. Ключевая особенность нативной разработки — глубокая интеграция с операционной системой. Разработчик взаимодействует напрямую с API платформы, что дает полный контроль над тем, как приложение выглядит и работает.
Преимущества нативных приложений
Привычный интерфейс для пользователей. Интерфейс, разработанный в строгом соответствии с платформенными гайдлайнами Apple и Google, максимально знакомый пользователю.
Главное преимущество — это высокая отзывчивость интерфейса, что сильно влияет на пользовательский опыт. В нативных приложениях скролл и анимации работают плавно, в том числе при сложных переходах между экранами, а жесты и свайпы поддерживаются на системном уровне.
Большинство популярных e-commerce приложений: маркетплейсы, рестораны быстрого питания, fashion и beauty-приложения разработаны нативно, чтобы обеспечить высокую скорость работы и комфортное взаимодействие.
Глубокая интеграция со смартфоном. Нативные приложения используют все аппаратные возможности: камеру, микрофон, геолокацию, NFC, биометрию, Bluetooth, датчики. Это критично для сервисов со сложной бизнес-логикой, и приложений, где важны скорость отклика и безопасность, например, мультиканальные e-commerce платформы.
Быстрая поддержка новых функций ОС. Нативные приложения быстрее адаптируются под обновления iOS и Android: новые API, типы устройств, фичи. Это важно для продуктов, где необходима поддержка новых функций ОС сразу после релиза, например, внедрение новых API Apple/Google.
Возможность интеграции сложных технологий. Искусственный интеллект, машинное обучение, дополненная реальность, сложные сторонние интеграции (например, от банков или платежных систем) оптимальнее реализуются в нативной среде.
Недостатки нативных приложений
Ресурсоемкость — главный недостаток нативной разработки. Для создания приложений под iOS и Android требуется содержать две отдельные команды специалистов, владеющих нативными языками программирования. При этом постоянное развитие нативных фреймворков SwiftUI и Jetpack Compose позволяют снижают итоговую разницу в трудозатратах.
Разница в функциональности приложений на iOS и Android. Разработка для каждой платформы ведётся независимо, поэтому темпы работы могут различаться. Чтобы выпустить обновления одновременно на обе платформы, придется синхронизировать команды, перераспределять ресурсы и координировать график. В совокупности тоже создает дополнительную нагрузку на менеджмент проекта.
Разработка бизнес-логики ведется отдельно для каждой платформы. Это создает риски расхождений в работе приложений на разных платформах и требует дополнительных усилий по контролю качества и синхронизации поведения на всех устройствах.
Все эти минусы делают стоимость нативных приложений выше кроссплатформенных решений, так как процессы разработки для каждой платформы дублируются.
Архитектура кроссплатформенных приложений
Кроссплатформенная разработка позволяет создавать одно приложение с единой кодовой базой, которое работает сразу на iOS и Android. Среди лидеров кроссплатформенной разработки в 2025 году:
React Native (от Meta, запрещенная в РФ организация) — использует JavaScript и библиотеку React. Изначально приложения на React Native работали через мост, связывающий JavaScript и нативный код. Это обеспечивало доступ к нативным компонентам, но влияло на производительность. В прошлом году фреймворк получил обновление архитектуры, которое избавило его от использования данного моста и позволило использовать нативные модули напрямую.
Flutter (от Google) — построен на языке Dart и использует собственный движок рендеринга. За счет этого приложения на Flutter имеют одинаковый UI на iOS и Android. Производительности этого движка хватает на UI, но для реализации тяжелых мультимедиа‑нагрузок (например, с 4K) требуются дополнительные знания и временные ресурсы команды разработки.
Преимущества кроссплатформенных приложений
Главное преимущество обоих фреймворков — сокращение бюджета разработки. Flutter и React Native отлично подойдут в следующих ситуациях:
Быстрый запуск и экономия на MVP. Разработка первого продукта и выход на рынок обходятся дешевле, так как вместо двух отдельных приложений создаётся единая версия. Это особенно важно на стадии проверки гипотез.
Быстрый сбор команды. Не нужно нанимать отдельные команды под iOS и Android. Один специалист может работать с обеими ОС, что особенно ценно в условиях ограниченности ресурсов.
Создание утилитарных сервисов и продуктов с ограниченной функциональностью. Если приложение выполняет одну-две задачи, например, обмен информацией или поиск розничных магазинов, без планов на масштабирование.
Например, сеть «Магнит» запустили Flutter-приложение для сотрудников. Программа отображает расписание смен, содержит справочники, чат, отправляет важные оповещения и предоставляет мгновенный доступ к информации о наличии и стоимости продукции. Такой функциональный минимум решает узкий круг внутренних корпоративных задач.
Реализовать большие проекты на React Native или Flutter возможно — тому пример Alibaba. Однако на масштабе изначальные плюсы кроссплатформы нивелируются, а риски и технические ограничения становятся критичнее.
Недостатки кроссплатформенных приложений
У кроссплатформенных решений есть ряд важных ограничений и сложностей, о которых стоит знать заранее.
Ограничения в поддержке новых функций ОС. Кроссплатформенные фреймворки часто отстают в поддержке новейших возможностей операционных систем. Новые возможности iOS или Android становятся доступны с задержкой, зачастую через месяцы после официального релиза.
А если нужной функции во фреймворке нет, разработчики пишут нативные плагины, которые позволяют сделать связь между фичей и кроссплатформенным движком. В итоге растет количество «прослоек» и требования к компетенциям команды, а архитектура усложняется. В результате теряется изначальная простота единого кода, появляется зависимость от специалистов, умеющих сочетать язык кроссплатформы и нативные языки.
Например, компания Airbnb, перейдя на React Native, столкнулась с тем, что многие привычные функции сложно реализовывались, приходилось поддерживать громоздкую инфраструктуру. Спустя два года команда вернулась на натив.
Производительность ниже нативных решений. Flutter требует точной настройки и не всегда справляется с задачами, где задействованы сложные сценарии. Из-за этого разработчикам приходится вручную оптимизировать и настраивать приложение, чтобы исключить просадки.
React Native же не так давно получил обновление архитектуры и вплотную приблизился к Flutter по производительности, уступая ему незначительно в некоторых сценариях.
В одном из кейсов компания AGIMA рассказывала о сложностях с Flutter проектом: серьезные проблемы с производительностью при обработке 4K видео и при одновременном открытии видео и модальных окон. Команда пришла к выводу, что видео в 4К для приложения на Flutter — это «сложно реализуемое решение, от которого лучше сразу отговаривать заказчика».
Сложности с отладкой и интеграцией. Возникают проблемы при интеграции с нативными модулями, сторонними SDK и сложной бизнес-логикой, что опять же потребует привлечения специалистов с компетенциями в нативной разработке.
Непривычный интерфейс и UX. Flutter использует собственную систему рендеринга интерфейса, а не системные компоненты. Поэтому пользователи сталкиваются с непривычными паттернами навигации и поведением, что особенно заметно при интеграции с системными виджетами, анимациями и UI-компонентами последних версий iOS и Android.
Например, могут отсутствовать привычные анимации при открытии и закрытии экранов, визуальные эффекты выглядят иначе, а стандартный жест свайпа назад может работать нестабильно или вовсе не поддерживаться без дополнительной настройки. Также ощущается разница в поведении и плавности скролла — он может быть менее интуитивным, особенно на устройствах с высокой частотой обновления экрана.
Визуальное и функциональное отставание кроссплатформенных решений. На WWDC 2025 Apple анонсировала обновления пользовательского интерфейса и искусственного интеллекта, которые создают новые ограничения для разработчиков кроссплатформенных приложений. Подробнее об этом мы писали в предыдущей статье.
Архитектура мультиплатформенных приложений
Kotlin Multiplatform, разработанный компанией JetBrains и официально поддерживаемый Google, сосредоточен на переиспользовании бизнес-логики. При этом UI и взаимодействие с ОС остаются полностью нативными. Это позволяет добиться хорошего пользовательского опыта при заметной экономии ресурсов разработки.
Преимущества мультиплатформенных приложений
Повторное использование бизнес-логики. Логика работы с сетью, базами данных, валидацией и алгоритмами пишется один раз и переиспользуется на всех платформах.
Например, команда Leroy Merlin внедрила Kotlin Multiplatform для бизнес-логики. Обработка данных и сетевые запросы были вынесены в общий код, который работает на обеих платформах. В результате сократились затраты на разработку и ускорился выпуск обновлений.
Высокая производительность и нативный UX. KMP компилирует общий код в нативный, а интерфейсы создаются через стандартные UI-фреймворки iOS и Android. Это обеспечивает плавную работу приложения без компромиссов в дизайне.
По сути, KMP — это компромисс между кроссплатформой и нативной разработкой: вы не дублируете бизнес-логику, но сохраняете родной UI, доступ ко всем возможностям платформы и привычные паттерны поведения. Практика показывает, что KMP позволяет сократить примерно на 20-40% бюджет на разработку.
Например, компания Flawery использовала Kotlin Multiplatform для вынесения всей бизнес-логики в общий код. Android-команда разработала полноценное нативное приложение с учетом требований мультиплатформенной архитектуры, а iOS-команда сосредоточилась на верстке экранов и подключении к уже готовой логике. Это позволило выпустить iOS-версию за 2,5 месяца, в то время как на Android ушло 5 месяцев. За счет сокращения часов iOS‑команды произошло уменьшение сметы проекта.
Важный плюс KMP — это эффективное использование ресурсов устройства. Нативный код напрямую взаимодействует с системой, что исключает дополнительные слои абстракции. За счет этого обеспечивается оптимальная производительность и меньший вес.
Экономия на длинной дистанции. Повторное использование бизнес-логики и сервисного кода сокращает время и затраты на поддержку и развитие сразу для нескольких платформ, особенно в крупных и долгосрочных проектах.
В Avito применяют Kotlin Multiplatform для создания внутренних библиотек и сервисов, что помогает поддерживать масштабируемость и ускоряет добавление новых функций в мобильных продуктах.
Гибкая архитектура и интеграция с существующими нативными проектами. KMP можно внедрять частями — например, переписать только авторизацию или модуль аналитики. Это снижает риски и не требует полной переработки приложения. Кроме того, KMP хорошо интегрируется в текущие нативные приложения без необходимости полной переработки. Можно постепенно выносить общие модули в библиотеки и расширять зону их применения.
Этот подход уже используют ритейл и e-commerce-компании в России и Европе, внедряя KMP в отдельные модули — корзину, авторизацию, аналитику, интеграции.
Также поступили и мы в нашем проекте для билетного ритейлера Kassir.ru. Мы внедрили KMP для унификации сетевых функций и части бизнес-логики, что позволило стандартизировать обработку API-запросов и ускорить выпуск обновлений.
Недостатки мультиплатформенных приложений
UI необходимо разрабатывать отдельно под каждую платформу. В отличие от Flutter и React Native, KMP не предоставляет единого слоя для интерфейса. От команды требуется создание и поддержка UI — отдельно для iOS и Android, что увеличивает время и трудозатраты на дизайн и разработку визуального оформления. Но уже происходит развитие KMP в сторону шейринга и UI слоя, и можно будет применять комбинированный подход для второстепенных сценариев в приложении, максимально используя преимущества такого подхода.
Развивающаяся экосистема и ограниченный выбор библиотек. KMP пока уступает более зрелым фреймворкам по количеству готовых решений, документации и сторонних библиотек, но сообщество активно растет. В 2025 KMP интегрирован в Jetpack, официально поддержан Google, и стал частью Gradle toolchain. Сообщество сильно выросло, появились полноценные SDK (Ktor, SQLDelight, Realm Kotlin).
Потенциальные сложности при масштабировании. В мультиплатформенной архитектуре могут размываться границы общего и платформенного кода, что создает дополнительные сложности при отладке и масштабировании проекта.
Рекомендации по выбору технологии
Выбор стека зависит от задач проекта, ресурсов команды и приоритетов бизнеса. Ниже — краткий ориентир для типичных сценариев:
MVP и тест гипотез — React Native или Flutter. Позволят недорого запустить приложение с единым кодом для iOS и Android. Подходят для стартапов и утилитарных решений, где важно дешево выпустить без оглядки на развитие.
Долгосрочные проекты с высокими требованиями к UX, безопасности, большим объемом бизнес-логики — нативная разработка (Swift, Kotlin). Максимальная производительность, гибкость и доступ к последним функциям платформ. Идеальна для крупных маркетплейсов, сервисов с высокой пользовательской нагрузкой.
Оптимизация разработки существующих нативных приложений и новых проектов — Kotlin Multiplatform.
Подходит для компаний, которые хотят снизить затраты на поддержку приложений без переписывания приложения с нуля. KMP позволяет внедрять общий код поэтапно, без риска для стабильности. И с точки зрения бюджета чаще оказываются выгоднее всего в долгосрочной перспективе.
Заключение
Современная мобильная разработка требует баланса между краткосрочными потребностями бизнеса и долгосрочной устойчивостью проекта. Поэтому правильный выбор технологии сегодня определяет не только текущий успех продукта, но и его способность развиваться вместе с рынком завтра.
Кроссплатформенные фреймворки снижают первоначальные затраты, но создают зависимость от сторонних разработчиков, имеют заметное отставание от нововведений платформ, дорогостоящие на этапе поддержки и развития.
Нативный подход обеспечивают технологическую независимость и готовность к изменениям экосистем, что особенно критично в условиях возрастающей требовательности аудитории к качеству и постоянно развивающихся технологий. Однако, имеет весомый минус в виде высокой стоимости разработки.
Мы в CleverPumpkin придерживаемся подхода долгосрочного технологического партнерства при оптимальном балансе затрат. По нашему опыту, устойчивее всего себя показывают проекты, где стек адаптирован под темп развития бизнеса и его планами на будущее, но развивается в ногу с мобильными платформами. По этой причине мы отдаем предпочтение нативным технологиям и мультиплатформенному Kotlin Multiplatform.
Это блог CleverPumpkin. 14 лет мы создаём мобильные приложения и цифровые сервисы под ключ — от идеи до поддержки. На Хабре рассказываем о своём опыте и проектах, технических сложностях и решениях, которые помогают бизнесу достигать целей.
Если вы ищете исполнителей, готовых помочь вам с разработкой — напишите нам — мы помогаем ритейлерам превращать идеи в надёжные и удобные мобильные продукты.
Комментарии (2)
Anfet
09.09.2025 17:25Единственное что можно выдать флаттеру как проблема - это интеграция нативных либ. Да, это иногда требуется и может стать камнем. Но задайте себе вопрос, как часто вам такой случай выпадал? Мне за 5 лет - один... А вот для копоуз мультиплатформы пока все печально в этом плане.
Далее. Всегда будет выгоднее держать 1 разраба вместо 1+1. А флаттер позволяет сделать в 1 разраба то, что часто делают 2+2. Для бизнеса это супер выгодно.
И ещё. Флаттер пока, ещё очень понятный. Это не натив, где иногда встречаются такие легаси и кодогенеративные решения, что можно браться за голову.
Хотя да, в последнее время работодатели начали наглеть. На одну позицию становится нужен и фронтовик на мобилках и флаттер веб, да ещё чтоб.в бэк и проектирование умел. За зарплату мидла.
vsting
Напрашивается мысль, что лучше учить просто Kotlin и Swift, что бы один разработчик поддерживал обе версии приложения, вместо того, что бы мучаться с этими мультиплатформами.