Какие основные отличия общего кода при разработке с Kotlin Multiplatform?

При разработке с Kotlin Multiplatform общий код имеет несколько отличий от обычного Kotlin-кода:

Короткий ответ

Что ответить на собеседовании

При разработке с Kotlin Multiplatform общий код имеет несколько отличий от обычного Kotlin-кода:

Подробный разбор

Ответ с пояснениями

При разработке с Kotlin Multiplatform общий код имеет несколько отличий от обычного Kotlin-кода:

  • Модульность и разделение по платформам: общий код пишется в специальных модулях (commonMain), а платформо-зависимый — в отдельных (androidMain, iosMain и т.д.).
  • Ограниченный API: в общем коде нельзя использовать платформо-специфичные библиотеки и API напрямую. Вместо этого применяются expect/actual механизмы для объявления интерфейсов и их реализации на конкретных платформах.
  • Использование expect/actual: позволяет объявлять в общем коде ожидаемые функции или классы (expect), а реализовывать их отдельно для каждой платформы (actual).
  • Более строгие ограничения по библиотекам: в общем коде можно использовать только мультиплатформенные библиотеки или стандартные Kotlin-библиотеки, поддерживающие MPP.

Пример использования expect/actual:

// commonMain
expect fun getPlatformName(): String

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

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

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

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку