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