Какие знаешь особенности common code в Kotlin Multiplatform

«Какие знаешь особенности common code в Kotlin Multiplatform» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Common code в KMP позволяет писать бизнес-логику один раз и использовать её на всех платформах.

Особенности:

  • Доступ к платформенным API через expect/actual
  • Ограниченный доступ к платформенным SDK (например, нет прямого доступа к Android View)
  • Поддержка multiplatform библиотек (корутины, сериализация, Ktor)
  • Разделение на commonMain, androidMain, iosMain и др.

Пример:

// commonMain
expect fun getPlatformName(): String

// androidMain
actual fun getPlatformName() = "Android"

// iosMain
actual fun getPlatformName() = "iOS"

Проблемы:

  • Ограниченная поддержка некоторых Kotlin фич (например, reflection)
  • Сложности с нативными зависимостями