Kotlin Multiplatform Broadcast
9.51K subscribers
840 photos
52 videos
1.14K links
Новости и фичи Kotlin, а также Kotlin Multiplatform

YouTubе канал: https://youtube.com/androidBroadcast
Compose Multiplatform @compose_broadcast
iOS разработка @ios_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager
Download Telegram
🏝 kotlinx.fuzz - библиотека для Fuzz тестирования Kotlin кода

Fuzz testing - это подход для автоматичекской генерации тестов со случайными или невалидными входными данными, чтобы проверить неожиданные ошибки и сценарии. Теперь есть официальное решение от JetBrains kotlinx.fuzz

@KFuzzTest
fun testDuration(f: KFuzzer) {
val isoString = f.asciiString(10)
val duration = Duration.parseIsoStringOrNull(isoString)
println("$isoString -> $duration")
}


#kotlin #тестирование
Please open Telegram to view this post
VIEW IN TELEGRAM
27👍11
Media is too big
VIEW IN TELEGRAM
📹 Coroutine Debugging in IntelliJ IDEA | Alexey Merkulov (EN,15м)

Подробный рассказ как в IDEA улучшали интеграцию между IDE и библиотекой Kotlin Coroutines для реализации дебага корутин как синхронного кода

#kotlin #coroutines #idea #kotlinconf25
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔105👍3
🏝 Использование inline, crossinline и reified в Kotlin может иметь ряд сложностей: сломанные стектрейсы, встраивание кода может повлиять негативно на код и другие. Подробнее читайте в статье

🔗 Альтернативная ссылка

#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🤯102🙏1
🏝 Вышла вторая Beta Kotlin 2.2.20

В свежей версии исправили баги и сделали улучшения в работе

#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23
🏝🦢 Kotlin-to-Swift экспорт теперь работает по умолчанию [EXPERIMENTAL]

Kotlin-to-Swift экспорт позволяет удобно использовать скомпилированный для Apple таргетов код из Swift удобным образом. Изменение добавили в Kotlin 2.2.20-Beta2

Ключевые фичи:
👉 Поддержка многомодульности: каждый Kotlin модуль - отдельный Swift модуль
👉 Поддержка пакетов в коде
👉 type alias теперь доступны из Swift
👉 Улучшения в nullability с примитивными типами
👉 Вызов перегруженных функций в Kotlin из Swift кода
👉 Можно изменить имя модуля

Фича всё ещё в экспериментальном режиме и для её включения надо выполнить ряд действий (подобно как раньше в XCode проект подключался KMP модуль)

#kotlin #swift #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🔥11🤔1
🏝 В Kotlin 2.2.20 упростили объявление common зависимостей KMP проекта

Теперь общие зависимости (common) можно объявить в dependencies блоке в kotlin {}
kotlin {
@OptIn(ExperimentalKotlinGradlePluginApi::class)
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2")
}
}

#kotlin #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
17🔥7🎉3👍1
В Kotlin Multiplatform проекте теперь можно шарить код между JS и wasmJs таргетами через общий source set - WEB.

Изменение доступно в Kotlin 2.2.20-Beta2

#kotlin #kmp
🔥167👍2
🏝 Kotlin 2.2.20-Beta2: кроссплатформенная компиляция без Mac* 🤯 [STABLE]

В новой бете Kotlin 2.2.20 стабилизирована кроссплатформенная компиляция .klib-артефактов. Теперь публиковать Kotlin-библиотеки можно с любой хост-машины, что значительно упрощает процесс, особенно для Apple-таргетов.

Mac всё ещё потребуется, если проект использует cinterop, CocoaPods или нужно собрать финальные бинарники для Apple. Подробности — в документации.

Если в gradle.properties добавляли kotlin.native.enableKlibsCrossCompilation=true, то теперь можно убрать

#kotlin #kmp #klib #native
Please open Telegram to view this post
VIEW IN TELEGRAM
🏆23👍63🤔1
🏝 В Kotlin 2.3.0 запретят использовать return без явного объявления возвращаемого типа в функции

В Kotlin 2.2.20-Beta2 можно попробовать новое поведение при использовании return - обязательное объявление возвращаемого типа функции. Новое поведение будет по умолчанию работать в Kotlin 2.3.0
//  Возвращаемый типы функции указан. Можно использовать return
fun getDisplayNameOrDefault(userId: String?): String =
getDisplayName(userId ?: return "default")

// Не компилируется. Используется return без явного указания возвращаемого типа функции
fun getDisplayNameOrDefault(userId: String?) =
getDisplayName(userId ?: return "default")


Готовимся к миграции после обновления языка. Всё во славу большей стабильности нашего кода

#kotlin #kotlin_2_3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍75🤔28🤯9🏆4