Kotlin Multiplatform: вопросы на собеседовании
Вопросы и ответы по Kotlin Multiplatform: подготовка, примеры и типичные ошибки.
Проверьте себя по Kotlin Multiplatform: 5 вопросов, ~10 минут
Вопросов: 38. Частые идут первыми, сложные возвращаются на повторение.
- Что такое механизм
expect/actualв KMP и как он работает?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost - Что такое Kotlin Multiplatform (KMP) и какие платформы он поддерживает?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Как структурировать KMP-проект (shared module, платформо-зависимые модули)?Middle· спрашивают почти всегда
- Какой код можно разделять между платформами, а какой должен оставаться платформо-зависимым?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое структура source set:
commonMain,androidMain,iosMain?Junior· спрашивают почти всегда - Каковы основные сложности при внедрении KMP в существующий проект?Senior
- Каковы build-таргеты в KMP (jvm, android, iosArm64, iosSimulatorArm64 и др.)?Junior· полный разбор — Jobs/Boost
- Что такое Compose Multiplatform и как он связан с KMP?Middle· полный разбор — Jobs/Boost
- Какова роль
kotlinx.coroutinesв KMP и как он настраивается для каждой платформы?Middle - Что такое Gradle multiplatform plugin (
kotlin("multiplatform")) и как настраивать таргеты?Middle· полный разбор — Jobs/Boost - В каких mobile-проектах Kotlin Multiplatform является сильным выбором, а где лучше выбрать native или другую cross-platform альтернативу?Middle
- Как сравнить Kotlin Multiplatform с альтернативами по performance, UX, доступу к platform APIs, найму и долгосрочной поддержке?Middle· полный разбор — Jobs/Boost
- Как понять, что проблема в приложении связана с Kotlin Multiplatform, а не с backend, сетью, дизайном состояния или платформой?Senior· полный разбор — Jobs/Boost
- Представьте, экран на Kotlin Multiplatform тормозит, теряет состояние или ведёт себя по-разному на разных платформах. Как вы будете искать причину?Senior
- Какие ошибки делают команды, когда строят приложение на Kotlin Multiplatform как web/backend-проект без учёта mobile constraints?Middle· полный разбор — Jobs/Boost
- Какие архитектурные решения Kotlin Multiplatform задаёт вокруг UI state, lifecycle, navigation, threading и platform integration?Middle· полный разбор — Jobs/Boost
- Какие production-риски есть у Kotlin Multiplatform: memory, lifecycle bugs, accessibility, offline mode, app size или platform-specific behavior?Senior
- Как работает Kotlin/Native и каковы его ограничения по сравнению с Kotlin/JVM?Senior· полный разбор — Jobs/Boost
- Как обрабатывать платформо-зависимые зависимости (Android, iOS) в общем KMP-модуле?Middle· полный разбор — Jobs/Boost
- Каковы текущие соображения о production-готовности KMP на iOS?Senior· полный разбор — Jobs/Boost
- Как разделять сетевой код между платформами в KMP (например, с помощью Ktor)?Middle· полный разбор — Jobs/Boost
- Как KMP взаимодействует со Swift/Objective-C на iOS?Senior· полный разбор — Jobs/Boost
- Как тестировать общий KMP-код?Middle
- В чём разница между разделением логики UI и разделением бизнес-логики в KMP?Middle· полный разбор — Jobs/Boost
- Как использовать dependency injection в KMP-проекте (например, Koin)?Middle· полный разбор — Jobs/Boost
- Как KMP обрабатывает параллелизм на iOS (с учётом отсутствия разделяемого изменяемого состояния)?Senior
- В чём ключевые различия между KMP и Flutter/React Native для кросс-платформенной разработки?Senior· полный разбор — Jobs/Boost
- Расскажите о случае, когда вы решали проблему с Kotlin Multiplatform: lifecycle, performance, testing, release или platform integration.Middle· полный разбор — Jobs/Boost
- Как устроены hierarchical source sets и зачем они нужны?Middle· полный разбор — Jobs/Boost
- Как работает interop с C/Objective-C/Swift и какие ограничения у exported API?Middle
- Как тестировать KMP-библиотеку на Android, iOS simulator и JVM в CI?Middle· полный разбор — Jobs/Boost
- Какие риски совместимости возникают при обновлении Kotlin, Gradle и Kotlin/Native в KMP-проекте?Middle
- Как проектировать общий networking/storage слой в KMP без утечек платформенных деталей?Middle· полный разбор — Jobs/Boost
- Каковы ограничения Kotlin/Native в отношении coroutines и многопоточности?Senior
- Что такое SQLDelight и как он используется для мультиплатформенного доступа к базе данных?Middle· полный разбор — Jobs/Boost
- В чём разница между Kotlin Multiplatform и Kotlin Multiplatform Mobile (KMM)?Junior
- Какие улучшения принёс Kotlin 2.0 в экосистему KMP?Senior· полный разбор — Jobs/Boost
- Как опубликовать KMP-библиотеку в Maven?Senior· полный разбор — Jobs/Boost