Sobes.tech
Back to questions
Junior — Middle
81

Каким образом осуществляется процесс кросс-компиляции в Kotlin Multiplatform?

Answer from AI

sobes.tech AI

В Kotlin Multiplatform процесс кросс-компиляции позволяет писать общий код, который затем компилируется в разные целевые платформы (JVM, JavaScript, Native).

Основные шаги:

  1. В build.gradle.kts указываются таргеты (targets), например jvm(), js(), ios().
  2. Общий код пишется в общем модуле (commonMain), а специфичный для платформы — в соответствующих sourceSet.
  3. При сборке Gradle запускает компиляцию для каждого таргета, используя соответствующие компиляторы:
    • Kotlin/JVM компилирует в байткод JVM
    • Kotlin/JS компилирует в JavaScript
    • Kotlin/Native компилирует в нативный код для iOS, Linux и др.

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

Пример конфигурации в build.gradle.kts:

kotlin {
    jvm()
    js(IR) { browser() }
    ios()

    sourceSets {
        val commonMain by getting
        val jvmMain by getting
        val jsMain by getting
        val iosMain by getting
    }
}