Ответ
Да, работал с 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 для БД.