Touchlab выпустила статью c рекомендациями по ускорению сборки KMP проектов:
🔥 Указывайте точный таск для сборки, а не
🔥 Изучайте логи и ищите странности
🔥 Swift Package Manager и XCFrameworks: что выбрать?
🔥 Не делайте сборок для iOS симуляторов на CI
Как по мне, все рекомендации имеют базовый характер и уж совсем для тех кто не имеет опыта с Gradle и разработкой
#сборка #gradle #kmp
🔥 Указывайте точный таск для сборки, а не
build
, который соберет всё🔥 Изучайте логи и ищите странности
🔥 Swift Package Manager и XCFrameworks: что выбрать?
🔥 Не делайте сборок для iOS симуляторов на CI
Как по мне, все рекомендации имеют базовый характер и уж совсем для тех кто не имеет опыта с Gradle и разработкой
#сборка #gradle #kmp
👍11🔥2
Улучшения Gradle в Kotlin 2.0:
👉 Новое Gradle DSL для конфигурации опций компиляции для всех тасков мультиплатформенных проектов
👉 Compose Runtime теперь часть Kotlin репозитория и теперь всегда будет с актуальными версиями. Из-за этого появился отдельный Gradle Compose плагин для Jetpack и Multiplatform Compose
👉 Теперь в атрибутах при публикации будет указываться для какого JVМ варианта сделана библиотека: Android, Standrat JVM или NO JVM
👉 Улучшена работа с зависимостями в Kotlin/Native
👉 Разграничение какие API можно вызывать в разных уровнях DSL
👉 Kotlin/Native компилятор будет загружать только когда он нужен для сборки, а не только если Kotlin/Native используется в проекте
👉 Минимальная поддерживаемая версия Android Gradle Plugin поднята до 7.1.3
👉 Gradle опция
👉 Вывод отчета сборки в JSON формате
👉 kapt наследует конфигурацию из родителського Gradle проекта
#gradle #kotlin2
👉 Новое Gradle DSL для конфигурации опций компиляции для всех тасков мультиплатформенных проектов
👉 Compose Runtime теперь часть Kotlin репозитория и теперь всегда будет с актуальными версиями. Из-за этого появился отдельный Gradle Compose плагин для Jetpack и Multiplatform Compose
👉 Теперь в атрибутах при публикации будет указываться для какого JVМ варианта сделана библиотека: Android, Standrat JVM или NO JVM
👉 Улучшена работа с зависимостями в Kotlin/Native
👉 Разграничение какие API можно вызывать в разных уровнях DSL
👉 Kotlin/Native компилятор будет загружать только когда он нужен для сборки, а не только если Kotlin/Native используется в проекте
👉 Минимальная поддерживаемая версия Android Gradle Plugin поднята до 7.1.3
👉 Gradle опция
kotlin.experimental.tryNext
для использования следующей dev версией Kotlin за текущей👉 Вывод отчета сборки в JSON формате
👉 kapt наследует конфигурацию из родителського Gradle проекта
#gradle #kotlin2
🔥12
Amper - билд система от JetBrains, которая работал поверх Gradle, теперь обзавелась своим движком для выполнения. Это одна из новинок релиза 0.3. Как попробовать Amper смотрите тут
#amper #gradle
#amper #gradle
👍22❤2
Forwarded from Android Broadcast
Статья про Gradle Convention Plugins(8м) - фича, которая позволяет переиспользовать код между Gradle скриптами, что очень актуально для KTS. Автор описал полный пример настройки и применения
#gradle
#gradle
👍30👎2
Также ждут и улучшения в Gradle для KMP в 2024
👉 Объявление зависимостей проекта на уровне проекта, а не через KMP плагин
👉 Лучше интеграция инструментов Kotlin/Native
👉 Поддержка klib
👉 Предоставление полной поддержки KMP в Declarative Gradle
Также ведут работу над поддержкой Gradle Project Isolation, документацию по API Kotlin Gradle плашина и др. инициативы
#gradle #kmp
👉 Объявление зависимостей проекта на уровне проекта, а не через KMP плагин
👉 Лучше интеграция инструментов Kotlin/Native
👉 Поддержка klib
👉 Предоставление полной поддержки KMP в Declarative Gradle
Также ведут работу над поддержкой Gradle Project Isolation, документацию по API Kotlin Gradle плашина и др. инициативы
#gradle #kmp
👍22❤1
👉 Новые фичи языка (разберу отдельно в @kotlin_broadcast, но ничего такого)
👉 Улучшения K2 компилятора, что также повлияло и на kapt (который deprecated)
👉 KMP Базовая поддержка Swift Export, стабильный Gradle для опций компилятора и много чего ещё
👉 В Kotlin/Native улучшили поддержку iosArm64
👉 Поддержка новых версий Gradle и Android Gradle Plugin
Ждем багфиксы в 2.1.10 и потом обновляемся. За разборами с большими подробностями идите в @kotlin_broadcast
#kotlin #gradle #k2 #kmp #swift
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍8🎉4❤2
KMMBridge — это мощный Gradle-плагин для публикации Kotlin Multiplatform Xcode Framework в Swift Package Manager (SPM) и CocoaPods, что позволяет интегрировать мультиплфторменные решения быстрее и прозрачнее
Что нового в версии 1.1.0?
🛠 Сделан серьезный рефакторинг под капотом
🚀 Поддержка Gradle Configuration Cache, ускоряющая сборки.
👉 Модульная структура по фичам, упрощающая поддержку.
🔒 Упрощение публичного API, чтобы избежать случайного использования внутренних частей.
Для перехода на новую версию потребуется выполнить миграцию. Авторы подготовили подробное руководство.
#kmp #spm #cocoapods #gradle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
Forwarded from Android Broadcast
В новом видео показываю как настроить публикации для Android и Kotlin Multiplatform библиотеки в Gradle с новым механизмом подписи артефактов для Maven Central в 2024
#AndroidBroadcast #видео #gradle #maven #kmp #android
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍4
🎉 KAPT переезжает на K2 и теперь будет работать в этом режиме
#kotlin #kapt #gradle
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉29👍6
KotlinX Coroutines уже давно обзавелись своим BOM-ом, подключайте
#kotlin #gradle #coroutines
dependencies {
implementation(platform(libs.kotlinx.coroutines.bom))
implementation(libs.kotlinx.coroutines.core)
}
#kotlin #gradle #coroutines
🔥35👍10
👉 Поддержка Gradle Project Isolation (подробнее об этой функции здесь)
👉 Улучшение отчетов по компиляции Kotlin
👉 Поддержка Declarative Gradle
👉 Улучшение интеграции инструментов Kotlin/Native в Gradle
👉 Выпуск стабильных аргументов компилятора в Gradle DSL для упрощения конфигурации проектов на Kotlin и KMP
#kotlin #gradle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
Новое DSL на замену Gradle Application плагина
В Kotlin 2.1.20 появилось новое экспериментальное DSL для замены функций Gradle Application плагин (несовместим с KMP Gradle плагин, начиная с Gradle 8.7)
#kotlin #gradle #kmp
В Kotlin 2.1.20 появилось новое экспериментальное DSL для замены функций Gradle Application плагин (несовместим с KMP Gradle плагин, начиная с Gradle 8.7)
kotlin {
jvm {
@OptIn(ExperimentalKotlinGradlePluginApi::class)
binaries {
// Configures a JavaExec task named "runJvm"
// and a Gradle distribution for the "main" compilation in this target
executable {
mainClass.set("foo.MainKt")
}
// Configures a JavaExec task named "runJvmAnother"
// and a Gradle distribution for the "main" compilation
executable(KotlinCompilation.MAIN_COMPILATION_NAME, "another") {
// Set a different class
mainClass.set("foo.MainAnotherKt")
}
// Configures a JavaExec task named "runJvmTest"
// and a Gradle distribution for the "test" compilation
executable(KotlinCompilation.TEST_COMPILATION_NAME) {
mainClass.set("foo.MainTestKt")
}
// Configures a JavaExec task named "runJvmTestAnother"
// and a Gradle distribution for the "test" compilation
executable(KotlinCompilation.TEST_COMPILATION_NAME, "another") {
mainClass.set("foo.MainAnotherTestKt")
}
}
}
}
#kotlin #gradle #kmp
👍15
Команда Kotlin обновляет дорожную карту каждые полгода, подводя итоги и планируя следующие шаги:
Compose Multiplatform
👉 Перевести Compose Multiplatform for Web в Beta
👉 Выпустить больше Jetpack библиотек для KMP. В первую очередь Navigation 3 и Paging 3
👉 Новый компонент для ввода текста на iOS с целью чтобы сделать его максимально нативным по виду и поведению
👉 Унификация Compose Preview аннотации (сейчас их 3 с разными пакетами)
Kotlin Multiplatform IDE плагин
👉 Поддержка работы плагина на Windows и Linux, но там не будет поддержки работы со Swift и сборки под Apple платформы
👉 Возможность просмотра документации подключенных Swift/Obj-C библиотек
👉 Поддержка Swift 6.2 и Xсode 2026
👉 Улучшение навигации и рефакторинга кросс языков
👉 Улучшение работы Compose Preview в common
Kotlin/Native и Kotlin/iOS
👉 Развитие Swift Export и стабильный релиз в 2026 году
👉 Поддержать Kotlin Coroutines и Flow в Swift Export
👉 Сокращение времени сборки
Kotlin/JS
👉 Автоматическое переключение на Kotlin/JS для Compose for Web, когда WASM таргет не работает
👉 Расширение возможностей JavaScript Export: suspend функции, value классы, typealias и другие
Kotlin/WASM
👉 Релиз Kotlin/WASM Beta
👉 Поддержка многомодульной компиляции для динамической загрузки
Инструменты для сборки
👉 Сделать конфигурацию Gradle сборки удобнее
👉 Упростить публикацию KMP библиотек
👉 Предоставление Build tools API для удобства интеграции с разными билд системами
👉 Ускорение сборки и процесса импорта проекта в Gradle
#kotlin #compose #wasm #ios #native #gradle #idea #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥37👍6❤4