Kotlin Multiplatform: один код — два приложения

Android-разработчики пишут для обеих платформ. Без дефицитных специалистов. Экономия 30-50%.

Обсудить проект

Kotlin Multiplatform в 2025: стандарт индустрии

Kotlin Multiplatform — не эксперимент, а production-ready технология. В ноябре 2023 года JetBrains объявила о стабильном релизе, в мае 2024 Google добавил официальную поддержку в Android Studio.

В России на KMP переходят лидеры рынка. X5 Group переписывает все флагманские приложения на Kotlin Multiplatform — Пятёрочка, Перекрёсток, Чижик. Технологию используют Netflix, McDonald's, Cash App, Philips и тысячи компаний по всему миру.

Почему Surf для KMP-проекта

Мы занимаемся Android-разработкой с 2011 года и следим за развитием Kotlin Multiplatform с момента его появления.

ТОП-3

В мобильной разработке в России

ТОП-17 в мире

14 лет

Опыта в Android на Kotlin

С первых версий языка

250+

Специалистов в команде

Kotlin — основной стек

Главный профит KMP для бизнеса

Android-разработчиков на рынке в 2-3 раза больше, чем iOS. С Kotlin Multiplatform они пишут код для обеих платформ без изучения Swift.

Один язык — две платформы

Android-разработчики уже знают Kotlin. Теперь их код компилируется в нативный iOS-код через Kotlin/Native. Не нужно искать редких iOS-специалистов.

30-50% экономии на разработке

Бизнес-логика, сетевой слой, работа с данными — пишется один раз в shared-модуле. Исправил баг один раз = исправлено на обеих платформах.

Быстрее time-to-market

Новая фича добавляется один раз и работает везде. Вместо 2-4 недель на две команды — 1.5-2 недели одной командой.

Нативная производительность

В отличие от Flutter и React Native, KMP компилируется в нативный код. Нет JavaScript-моста, нет интерпретации. Полный доступ ко всем API платформы.

Как работает Kotlin Multiplatform

Kotlin Multiplatform позволяет писать общий код на Kotlin и компилировать его под разные платформы. Архитектура проекта делится на три основные части.

Shared-модуль: общая бизнес-логика

В shared-модуле размещается код, который одинаков для всех платформ:

  • Бизнес-логика — правила валидации, расчёты, обработка данных
  • Сетевой слой — HTTP-клиент на Ktor, сериализация JSON через kotlinx.serialization
  • Работа с данными — локальная база данных на SQLDelight, кэширование, синхронизация
  • Модели данных — data-классы, которые используются везде
  • Утилиты — форматирование дат, валидация, хелперы

Shared-код компилируется в разные форматы: байт-код JVM для Android и нативный машинный код для iOS через компилятор Kotlin/Native.

Механизм expect/actual

Когда нужен платформо-специфичный код, KMP использует механизм expect/actual. В shared-модуле объявляется expect-функция или класс — это контракт, который должен быть реализован на каждой платформе. В платформенных модулях пишутся actual-реализации.

Пример: получение UUID. В shared-коде объявляем expect fun randomUUID(): String. В Android-модуле реализуем через java.util.UUID.randomUUID(). В iOS-модуле — через NSUUID().UUIDString.

Такой подход позволяет использовать нативные API там, где это нужно, сохраняя единый интерфейс в общем коде.

Android-модуль

Android-часть проекта подключает shared-модуль как обычную Kotlin-библиотеку. UI строится на Jetpack Compose — современном декларативном фреймворке от Google. Разработчики работают в привычной среде Android Studio со всеми инструментами: отладка, профилирование, превью Compose.

iOS-модуль

Shared-модуль компилируется в .framework — стандартный формат iOS-библиотек. Этот фреймворк подключается к Xcode-проекту и используется из Swift-кода как обычная зависимость. UI строится на SwiftUI или UIKit — выбор за командой.

Важно: iOS-разработчики работают в привычном Xcode, пишут UI на Swift. Они не обязаны знать Kotlin — shared-модуль для них выглядит как обычная библиотека с Swift-совместимым API.

Compose Multiplatform: единый UI

С мая 2025 года Compose Multiplatform для iOS стал стабильным. Это означает, что UI тоже можно писать один раз — на Jetpack Compose — и он будет работать на обеих платформах. Compose Multiplatform рендерит интерфейс через Skia (как Flutter), но код остаётся на Kotlin.

Когда использовать Compose Multiplatform: для внутренних приложений, MVP, проектов с ограниченным бюджетом. Когда нужен нативный UI: для consumer-приложений, где важно pixel-perfect соответствие гайдлайнам платформы.

[ 01 ]

Разработка приложений с нуля

Создаём кроссплатформенные приложения на KMP от идеи до публикации. Shared-модуль с бизнес-логикой + нативный UI или Compose Multiplatform.

[ 02 ]

Миграция существующих приложений

Переносим нативные Android/iOS приложения на KMP. Постепенная миграция: начинаем с сетевого слоя, не останавливая разработку.

[ 03 ]

Аудит и консалтинг

Оцениваем целесообразность перехода на KMP. Анализируем архитектуру, рассчитываем ROI, составляем план миграции.

[ 04 ]

Усиление команды

Подключаем наших KMP-специалистов к вашей команде. Помогаем внедрить технологию и передаём экспертизу инхаус.

Когда выбрать Kotlin Multiplatform

Есть Android-команда

KMP интегрируется в существующие проекты. Ваши Android-разработчики уже знают Kotlin — им не нужно учить новый язык.

Критична производительность

Финтех, AR/VR, сложные анимации, real-time данные — KMP компилируется в нативный код без overhead'а.

Нужна глубокая интеграция

Touch ID, Face ID, Apple Pay, push-уведомления — всё работает через нативные API без ограничений.

Долгосрочный проект

За KMP стоят JetBrains и Google. 2500+ библиотек в экосистеме. Технология будет развиваться.

KMP vs Flutter vs React Native

Честное сравнение технологий кроссплатформенной разработки.

KMP: нативный код

Компилируется в JVM (Android) и Kotlin/Native (iOS). Нативная производительность, полный доступ к API, бесшовная интеграция в существующие проекты.

Flutter: свой движок

Собственный движок рендеринга Skia. Быстрый для MVP с нуля, но UI не системный. Сложнее интегрировать в существующий код.

React Native: JS-мост

JavaScript-мост к нативным компонентам. Много JS-разработчиков, но есть overhead на мосте и сложности с нативными API.

Вывод

KMP — для команд с Kotlin-экспертизой и проектов, где важна производительность. Flutter — для быстрых MVP. React Native — если команда из веба.

01

Анализ и архитектура

Изучаем проект и бизнес-требования. Определяем, какие модули вынести в shared-код. Оцениваем ROI перехода на KMP.

02

Разработка shared-модуля

Создаём общую бизнес-логику на Kotlin. Сетевой слой, работа с данными, валидация. Настраиваем CI/CD для сборки под обе платформы.

03

UI и интеграция

Разрабатываем UI: нативный (Jetpack Compose + SwiftUI) или единый (Compose Multiplatform). Интегрируем shared-модуль.

04

Тестирование и релиз

Комплексное тестирование на обеих платформах. Публикация в App Store и Google Play. Передача документации.

[ FAQ ]

Клиенты часто спрашивают

Да. JetBrains объявила о стабильном релизе KMP в ноябре 2023. В мае 2024 Google добавил поддержку в Android Studio. В мае 2025 Compose Multiplatform для iOS стал стабильным. Технологию используют Netflix, McDonald's, X5 Group и тысячи компаний.
KMP компилируется в нативный код и позволяет использовать нативный UI. Flutter использует собственный движок Skia. KMP лучше интегрируется в существующие проекты и даёт полный доступ к платформенным API.
Да, это главное преимущество KMP. Можно постепенно выносить код в shared-модуль без переписывания всего приложения. Начните с сетевого слоя — это даст быстрый эффект при минимальных рисках.
Для shared-кода — нет, его пишут на Kotlin. Для нативного iOS UI — да, но объём работы меньше. С Compose Multiplatform iOS-разработчики нужны только для платформо-специфичных интеграций.
KMP позволяет сэкономить 30-50% бюджета по сравнению с двумя нативными приложениями. Точная стоимость зависит от проекта. Оставьте заявку — подготовим оценку за 48 часов.
X5 Group переписывает все флагманские приложения (Пятёрочка, Перекрёсток, Чижик) на KMP. Технологию внедряют крупные банки, ритейлеры, фудтех-компании. Глобально: Netflix, McDonald's, Cash App, VMware, Philips.
Экосистема KMP включает 2500+ библиотек. Ktor — для сетевых запросов, SQLDelight — для баз данных, kotlinx.serialization — для JSON, Koin/Kodein — для DI. Jetpack-библиотеки (Room, DataStore, ViewModel) получают KMP-поддержку.
Android-часть отлаживается в Android Studio как обычно. Для iOS используется Xcode с подключением к shared-модулю. JetBrains выпустила плагин для отладки Kotlin-кода прямо из Xcode. Логирование через Napier работает на обеих платформах.
Compose Multiplatform — это UI-фреймворк от JetBrains, позволяющий писать интерфейс один раз на Jetpack Compose. Подходит для внутренних приложений, MVP, B2B-продуктов. Для consumer-приложений с высокими требованиями к UX лучше нативный UI.
Surf занимается Android-разработкой с 2011 года. Мы в ТОП-3 мобильной разработки в России и ТОП-17 в мире. Следим за развитием KMP с момента появления технологии. Kotlin — наш основной стек, 250+ специалистов в команде.

[ обратная связь ]

Расскажите о проекте и мы предложим подходящие решения

напишите нам в Telegram
добавить файл

Отправляя запрос, вы соглашаетесь с политикой конфиденциальности