Многие знают Котлин в первую очередь как язык для разработки под Android и JVM. Однако это не единственные поддерживаемые платформы, и Котлин компилируется также в JavaScript и нативный код для различных архитектур. Естественным результатом такого разнообразия компиляторов стало появление проектов, в которых переиспользуется код под разные платформы.
Начиная с версии 1.2 экспериментальная поддержка таких мультиплатформенных проектов была добавлена в язык на уровне синтаксиса и со стороны тулинга. На практике это означает, что у программиста на Котлине появилась возможность использовать один и тот же код на разных платформах, при этом не теряя доступа к платформенно-специфичным API. Эта фича носит статус экспериментальной, а, значит, это одно из тех мест в языке, где изменения происходят чаще всего. Релиз 1.3 не стал исключением и поддержка мультиплатформенных проектов в нем была заметно переработана.
Этот доклад посвящён как самой по себе концепции мультиплатформенных проектов в Котлине, так и тем изменениям, которые появились в ней начиная с версии 1.3. Поэтому он будет интересен и тем, кто еще не знаком с этой фичей, и тем, кто уже успел попробовать ее в Kotlin 1.2.В докладе поговорим:
Работал в Intel над виртуальной машиной ART. Сейчас в JetBrains в проекте Kotlin/Native. Занимаюсь поддержкой тулинга со стороны интеграции с Gradle и немного самим компилятором Kotlin/Native.