Работал ли с KMM

«Работал ли с KMM» — вопрос из категории Kotlin, который задают на 26% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, работал с KMM (Kotlin Multiplatform Mobile). Использовал для разделения бизнес-логики между Android и iOS. Основные модули — shared (общий код), androidApp, iosApp.

Пример:

// shared модуль
expect fun getPlatformName(): String  

// Android реализация
actual fun getPlatformName() = "Android"  

// iOS реализация (в iOS-модуле)  
actual fun getPlatformName() = "iOS"  

Плюсы:

  • Общий код для платформ
  • Снижение дублирования
  • Поддержка корутин, сериализации

Сложности:

  • Ограниченный доступ к платформенным API
  • Требуется настройка окружения для iOS
  • Debug может быть сложнее

Использовал Ktor для сетевых запросов, SQLDelight для БД.