Forwarded from Kotlin Multiplatform Broadcast
👉 Новые фичи языка (разберу отдельно в @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
🔥6
📊 Автогенерация тестов для Kotlin в IntelliJ IDEA: сравнение AI-инструментов
Для многих разработчиков тестирование остается нелюбимой частью работы. На недавних конференциях Joker и Heisenbug более 400 разработчиков поделились мнением о применении AI-инструментов для тестирования.
В статье рассказывается о полученной информации, а также о существующих AI-инструментах для автоматической генерации тестов, включая их плюсы и минусы.
👉 Читать статью
#новость #kotlin
Для многих разработчиков тестирование остается нелюбимой частью работы. На недавних конференциях Joker и Heisenbug более 400 разработчиков поделились мнением о применении AI-инструментов для тестирования.
В статье рассказывается о полученной информации, а также о существующих AI-инструментах для автоматической генерации тестов, включая их плюсы и минусы.
👉 Читать статью
#новость #kotlin
👍5❤1👎1
Forwarded from Kotlin Multiplatform Broadcast
JetBrains представила новую версию языка программирования Kotlin 2.1.20. В этом обновлении:
👉 Новый плагин компилятора kapt на основе K2 по умолчанию (обещают ускорение работы)
🧪 Kotlin Multiplatform: Новый DSL для замены плагина Application в мультиплатформенных проектах.
🧪 Kotlin/Native: Оптимизация инлайнинга для повышения производительности (нужно включение через опцию компилятора)
👉 Kotlin/Wasm: Пользовательские форматтеры теперь включены по умолчанию в дев сборках.
👉 Стандартная библиотека: Введение common атомарных типов, улучшенная поддержка UUID и новая функциональность для отслеживания времени.
#kotlin #kmp #k2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
Forwarded from Kotlin Multiplatform Broadcast
В Kotlin 2.1.20 несовместим со свежей версий XCode, поддержка будет в Kotlin 2.1.21. Отложите обновление!
#kotlin #kmp #xcode
Please open Telegram to view this post
VIEW IN TELEGRAM
👌5
Forwarded from Kotlin Multiplatform Broadcast
В Kotlin 2.1.20 добавили экспериментальную новый проход inline оптимизации, который по тестам JetBrains ускоряет работу кода в runtime на 9.5%
Чтобы попробовать надо передать компилятору опцию
-Xbinary=preCodegenInlineThreshold=40
#kotlin #native #производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Forwarded from Kotlin Multiplatform Broadcast
❗️ Все новые функции пока экспериментальные — их использование требует аннотаций или специальных флагов компилятора.
val Any.isHelloString: Boolean
get() {
contract { returns(true) implies (this@isHelloString is String) }
return "hello" == this
}
fun decode(encoded: String?): String? {
contract { (encoded != null) implies (returnsNotNull()) }
if (encoded == null) return null
return java.net.URLDecoder.decode(encoded, "UTF-8")
}Документация
fun <T> T.alsoIf(
condition: Boolean,
block: (T) -> Unit,
): T {
contract {
// Объявляет, что лямбда будет вызвана не более одного раза
callsInPlace(block, InvocationKind.AT_MOST_ONCE)
// Объявляет, что условие считается истинным внутри лямбды
condition holdsIn block
}
if (condition) block(this)
return this
}
fun <T, F : Failure> Result<T, F>.isHttpError(): Boolean {
contract {
returns(true) implies (this@isHttpError is Result.Failed<Failure.HttpError>)
}
return this is Result.Failed && this.failure is Failure.HttpError
}✨ Зачем это нужно
Контракты помогают компилятору и IDE лучше понимать поведение функций и условий в коде. Это значит: меньше лишних !!, меньше кастов типов, больше подсказок от IDE и меньше багов на рантайме. По сути, вы даёте компилятору «дополнительные знания», и он становится умнее при анализе вашего кода.
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤1👍1