Что такое Kotlin Multiplatform
Kotlin Multiplatform (KMP) — это open-source технология JetBrains, которая позволяет переиспользовать код для Android, iOS, desktop, web и server-side разработки, сохраняя преимущества нативной разработки.
С Compose Multiplatform можно также переиспользовать UI-код на нескольких платформах и добиться максимального повторного использования кода. Статус поддержки платформ описан в разделе Stability of supported platforms.
Почему компании выбирают KMP
Экономия затрат и более быстрая поставка
Kotlin Multiplatform помогает упростить и технические, и организационные процессы:
- Вы можете сократить дублирование и расходы на сопровождение, переиспользуя логику и UI-код на разных платформах. Это также позволяет выпускать функции одновременно для нескольких платформ.
- Командная работа становится проще, потому что единая логика доступна в общем коде. Это упрощает передачу знаний между участниками команды и снижает дублирование усилий между платформенными командами.
Помимо более быстрого вывода продукта на рынок, по результатам KMP Survey Q2 2024 55% пользователей сообщили об улучшении совместной работы после внедрения KMP, а 65% команд — об улучшении производительности и качества.
KMP используется в production в организациях разного масштаба: от стартапов до глобальных компаний. Google, Duolingo, Forbes, Philips, McDonald’s, Bolt, H&M, Baidu, Kuaishou, Bilibili и другие команды выбирают KMP за гибкость, нативную производительность, возможность создавать нативный пользовательский опыт, экономичность и поддержку постепенного внедрения. Подробнее см. на странице кейсов внедрения Kotlin.
Гибкость переиспользования кода
Вы сами выбираете, какой код делать общим: можно начать с отдельных модулей, например networking или storage, и постепенно расширять общий код. Можно переиспользовать всю бизнес-логику, оставив UI нативным, или постепенно переносить UI на Compose Multiplatform.
Нативный опыт на iOS
UI можно полностью писать на SwiftUI или UIKit, создавать единый опыт для Android и iOS с помощью Compose Multiplatform или комбинировать нативный и общий UI-код в нужных частях приложения.
Какой бы подход вы ни выбрали, приложение может ощущаться нативным на каждой платформе.
Нативная производительность
Kotlin Multiplatform использует Kotlin/Native, чтобы создавать нативные бинарные файлы и напрямую обращаться к API платформы там, где виртуальные машины нежелательны или невозможны, например на iOS.
Это помогает получать близкую к нативной производительность, продолжая писать платформенно-независимый код.
Удобные инструменты
IntelliJ IDEA и Android Studio предоставляют умную поддержку KMP с Kotlin Multiplatform IDE plugin, общие UI previews, hot reload для Compose Multiplatform, навигацию между языками, рефакторинги и отладку Kotlin- и Swift-кода.
Разработка с поддержкой AI
Junie — AI coding agent от JetBrains — может брать на себя задачи по KMP и помогать команде двигаться быстрее.
Изучите сценарии Kotlin Multiplatform
Посмотрите, как компании и разработчики уже используют преимущества общего Kotlin-кода:
- Узнайте, как компании внедряют KMP в своих кодовых базах, на странице кейсов.
- Изучите подборку примеров приложений и GitHub-тему kotlin-multiplatform-sample.
- Найдите подходящие мультиплатформенные библиотеки среди тысяч пакетов на klibs.io.
Изучите основы
Чтобы быстро увидеть KMP в действии, пройдите quickstart: вы настроите окружение и запустите пример приложения на разных платформах.
Выберите сценарий:
- Чтобы создать приложение с общей бизнес-логикой и общим UI-кодом, пройдите руководство по shared logic and UI.
- Чтобы превратить Android-приложение в мультиплатформенное, изучите руководство по миграции.
- Чтобы переиспользовать часть кода без общего UI, пройдите руководство по shared logic.
Углубитесь в технические детали:
- Начните с базовой структуры проекта.
- Изучите доступные механизмы переиспользования кода.
- Разберитесь, как в KMP-проекте работают зависимости.
- Рассмотрите разные способы интеграции с iOS.
- Узнайте, как KMP компилирует код и собирает бинарные файлы для разных targets.
- Прочитайте о публикации мультиплатформенного приложения или мультиплатформенной библиотеки.
Внедрите Kotlin Multiplatform в масштабе
Внедрение кроссплатформенного фреймворка в команде может быть непростой задачей. Чтобы узнать о преимуществах и решениях потенциальных проблем, посмотрите обзорные материалы:
- Что такое кроссплатформенная мобильная разработка? Обзор подходов и реализаций для кроссплатформенных приложений.
- Как представить multiplatform mobile development своей команде Стратегии внедрения кроссплатформенной разработки в команде.
- Десять причин выбрать Kotlin Multiplatform Причины рассмотреть KMP как решение для кроссплатформенной разработки.