Telegram Web
🏝 Лучшие практики использования Kotlin Coroutines

Рекомендую всем кто пользуется корутинами или недавно перешел на них, стоит почитать лучшие практики по их использованию. Они хоть и для Android, но есть много полезного что надо применять на любой платформе

#coroutines #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
В рекомендациях пишут, что надо делать Inject диспатчеров, но не описывают как это сделать. Я реализую это с помощью собственного класса со всеми CoroutineDispatcher вместо того чтобы использовать квалификаторы для зависимостей в графе, например @Named()

#coroutines #di
Альтернативный вариант как делать inject CoroutineDispatcher в Dagger без дополнительного класса

#coroutines #di
KHealth - KMP обёртка над Android Health Connect и Apple HealthKit API

#kmp #android #ios
KmpEssentials - набор более 40 модулей для ускорения KMP разработки под iOS, Android и AppleWatch. Подробности на сайте

#kmp #android #ios #applewatch
🏝 Kotlin Scripting в 2024: Что нового и куда мы идем?

JetBrains поделилась важными изменениями и планами для Kotlin Scripting:
👉 Базовые скрипты (.kts): поддержка сохраняется, но Kotlin не конкурирует с Bash или Python для скриптовых задач.
👉 Custom Scripting API: продолжает развиваться для сложных задач (например, Gradle Kotlin DSL), но остается экспериментальным.
👉 main.kts: улучшение функциональности и интеграции в IDE, чтобы сделать работу еще удобнее.
👉 Kotlin REPL: поддержка прекращается, но вместо этого рекомендуются Kotlin Notebook и Scratch-файлы в IntelliJ IDEA.
👉 Снятие с поддержки: JSR-223, KotlinScriptMojo и другие технологии постепенно уйдут в прошлое.

#kts #скриптинг #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Icarion - 100% Kotlin библиотека с поддержкой JVM и Android для выполнения миграции и откатов на старые версии. Чем-то напоминает SQLite миграции, но с поддержкой еще и отката назад

#kmp #jvm #andorid #desktop
В Coil после выхода мажорной версии 3.0 уже вышло 4 багфикс релиза. Обратите внимание, если уже обновились или ждали исправления ошибок
Channel name was changed to «Kotlin Multiplatform Broadcast»
🏝🎉 Вышел Kotlin 2.1.0

👉 Новые фичи языка (разберу отдельно в @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
🎉 guard condition в when - новая фича Kotlin в 2.1 [PREVIEW]

Некое подобие Pattern Matching из Java. Теперь в ветках проверки условия для значения из when блока можно указать несколько условий. Синтаксис спорный конечно и не очень понятный. Раньше тоже самое можно было сделать через when без значения

Фича экспериментальная и чтобы включить её надо передать флаг компилятору:
// build.gradle.kts
kotlin {
compilerOptions {
freeCompilerArgs.add("-Xwhen-guards")
}
}


#kotlin
🎉 Kotlin 2.1. Non-local break and continue [PREVIEW]

Теперь станет возможно использование break и continue нелокально, это значит что вызов этих выражений внутри циклов стало возможно из лямбды, переданной в inline функцию.

Фича экспериментальная и чтобы включить её надо передать флаг компилятору:
// build.gradle.kts
kotlin {
compilerOptions {
freeCompilerArgs.add("-Xnon-local-break-continue")
}
}
🎉 Multi-dollar string interpolation [PREVIEW]

В Kotlin 2.1 теперь возможно указать какое количество символов $ необходимо использовать внутри String, чтобы это интерпретировалось как вычисляемое выражение

Фича экспериментальная и чтобы включить её надо передать флаг компилятору:
// build.gradle.kts
kotlin {
compilerOptions {
freeCompilerArgs.add("-Xmulti-dollar-interpolation")
}
}


#kotlin
🚀 Ускорение KAPT в Kotlin 2.1

Текущая стабильная версия KAPT работает на основе K1 компилятора. Еще в Kotlin 1.9 сделали экспериментальную реализацию KAPT на основе K2 компилятора. По заявлением авторов, реализацию K2 KAPT в Kotlin 2.1 сделали стала значительно быстрее чем раньше, но кроме слов никаких тестов не показали.

В будущих версия KAPT реализация на основе K2 будет включена по умолчанию и версия K1 будет удалена.

Приятно видеть такие улучшения в инструменте, который переведён в режим поддержки. На замену рекомендуется KSP, но авторы популярных кодогенераторов не спешат с поддержкой (привет Dagger 👋)

Чтобы попробовать новый K2 KAPT надо добавить в gradle.properties флаг
kapt.use.k2=true


Если вы уже попробовали новый KAPT - поделитесь впечатлениями и результатами скорости работы/потреблению памяти.

#kapt #k2
В Kotlin 2.1 when будет лучше работать в when, когда используется Generic тип, ограниченный сверху sealed классом/интерфейсом

#kotlin
🏝 Swift Export в Kotlin 2.1

Еще на KotlinConf 2024 сделали анонс экспорта Kotlin кода в Swift, что обеспечить удобную работу при подключении KMP библиотеки в современные iOS проекты. В Kotlin 2.1.0 можно попробовать первые результаты. Пока только базовая поддержка.

Проект с примером настройки от JetBrains на 🐱 GitHub

Чтобы включить Swift Export надо добавить в gradle.properties флаг:
# gradle.properties
kotlin.experimental.swift-export.enabled=true


#kotlin #swift
Please open Telegram to view this post
VIEW IN TELEGRAM
В официальной документации по Kotlin Multiplatform появился раздел по интеграции с iOS. Описываются как подходы локальные, так и через SPM и CocoaPods

Теперь подключение iOS в KMP проект перестало быть магией. До этого приходилось потратить прилично времени на разбор

#ios #kmp #spm #swift #документация
Media is too big
VIEW IN TELEGRAM
📹 В стандартной библиотеки Kotlin 2.1 добавили KMP версию UUID (экспериментальное API). В видео больше подробностей

UUID (Universally Unique Identifier) - это универсальный уникальный идентификатор, используемый для уникальной идентификации объектов в распределённых системах. UUID широко применяется в программировании, базах данных, сетевых приложениях и других областях, где требуется обеспечить уникальность идентификатора. UUID имеет длину 128 бит (16 байт)

#kmp #stdlib
Please open Telegram to view this post
VIEW IN TELEGRAM
JetBrains проводит опрос опыта работы с Kotlin Multiplatform. Займёт 10 минут вашего времени и принесёт пользу для развития технологии

#kmp #опрос
2025/07/01 11:24:44
Back to Top
HTML Embed Code: