Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
В Kotlin 2.2 в Beta статусе появится фича - Context parametrs, которая заменяет Context receivers (будут удалены в Kotlin 2.3)
// Пример Context parameters из Kotlin 2.2
interface Type {
context(analysisScope: AnalysisScope)
val isNullable: Boolean = ...
}
context(analysisScope: AnalysisScope)
fun Type.equalTo(other: Type): Boolean = ...
context(_: AnalysisScope)
val Type.isBoolean: Boolean get() = this.equalTo(BuiltIns.Boolean)
Всем разработчикам рекомендуется выполнить миграцию (будет автоматическая замена из IDE)
Делитесь в комментариях своими сценариями применения новой возможности языка
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Kotlin Multiplatform Broadcast
Чем отличается Context Parametr от Receiver Type в Extension fun
👉 Context Parameter может быть больше чем один
👉 Context Parameter позволяет задавать имена. Имя context parametr _ - это аналог использования this
Заявляется API compatibility при миграции на Context Parameter
#kotlin
👉 Context Parameter может быть больше чем один
👉 Context Parameter позволяет задавать имена. Имя context parametr _ - это аналог использования this
Заявляется API compatibility при миграции на Context Parameter
un <E> Raise<E>.foo() = ...
// станет
context(_: Raise<E>) fun <E> foo() = ...
Пора сделать разбор и выложить видео
#kotlin
Из самого важного:
👉 Новый режим будет по умолчанию включен в Idea 2025.1 (и Android Studio Narwhal)
👉 K2 позволяет ускорить работу c Kotlin в IDE
👉 Новые фичи языка в IDE уже только поддерживают K2 режим
По тем плагинам что использую я для Android и KMP разработки в Android Studio Meerkat FD 2024.3 уже все работают с K2. Пробуйте и вы, а затем делитесь мнением в комментариях
#kotlin #k2 #idea
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Кто пользуется Kotlin Notebook расскажите про сценарии применения в комментариях
#kotlin #idea
Please open Telegram to view this post
VIEW IN TELEGRAM
val result: Result<Int> = runCatching {
// Код, который может выбрасывать исключения
10 / 2
}🔗 Альтернативная ссылка
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
KotlinX Fuzz - новая библиотека для fuzz тестирования на Kotlin от JetBrains
#kotlin #тестирование
Фаззинг (fuzz testing или fuzzing) — это техника тестирования программного обеспечения, при которой приложению на вход передаются неправильные, неожиданные или случайные данные. Основная цель такого тестирования — выявление ошибок в работе программы
// Пример Fuzz теста
@KFuzzTest
fun testDuration(f: KFuzzer) {
val isoString = f.asciiString(10)
val duration = Duration.parseIsoStringOrNull(isoString)
println("$isoString -> $duration")
}
// Конфигурация теста в Gradle KTS
fuzzConfig {
instrument = listOf("kotlin.time.**")
maxFuzzTimePerTarget = 10.minutes
coverage {
reportTypes = setOf(CoverageReportType.HTML, CoverageReportType.CSV)
}
}
#kotlin #тестирование
👉 Работа с XCode 16.3
👉 Поддержка K2 в KAPT и Lombok плагинах
👉 Улучшения в stdlib
👉 Новый DSL на замену Gradle Application плагина
🚀 Улучшения производительности
#kotlin #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
JetBrains выпустили K2 Mode в IntelliJ IDEA 2025.1 — и это не просто галочка в настройках. Это новый режим анализа кода на Kotlin, который работает на движке K2 Compiler Frontend.
Зачем это нужно?
👉 Повышенная производительность при анализе кода
👉 Более точные инспекции и автодополнение
👉 Новый механизм лучше работает с современными фичами Kotlin
👉 Путь к улучшенной поддержке multiplatform и компиляции
В статье JetBrains делятся историей создания K2 Mode: как он развивался, с какими проблемами сталкивались, и почему переход на K2 — это стратегический шаг.
#kotlin #k2 #idea
Please open Telegram to view this post
VIEW IN TELEGRAM
Отмена корутины не останавливает операцию мгновенно, а помечает корутину как "требующую остановки". Этот подход называется cooperative cancellation. Остановка корутины произойдет при вызове suspend-функции или проверке ее статуса через isActive. Специальное исключение CancellationException используется для уведомления всех связанных корутин о необходимости отмены.
Больше фактов об отмене корутины в статье🏝 Разбор как устроена отмена выполнения корутины (EN, 3 мин) или по альтернативной ссылке. Также полезно ознакомиться с официальной документацией.
#kotlin #coroutines
Больше фактов об отмене корутины в статье
#kotlin #coroutines
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
(все видео курса в комментариях к видео)
#kotlin #ktor #server
Please open Telegram to view this post
VIEW IN TELEGRAM
Концепция строится вокруг модульной структуры для разделения API и реализации. Для DI по умолчанию используется kotlin-inject-anvil, для Presenter - Molecule, но можно заменить. UI слой может быть написан на удобном для вас UI фреймворке.
Для настройки требуется подключение Gradle плагина
На момент написания поста доступна версия 0.0.1
#kotlin #kmp #android #ios #web #desktop #jvm #native
Please open Telegram to view this post
VIEW IN TELEGRAM
Используете Decompose?
Anonymous Poll
21%
Да
7%
Пробовал(а), не зашло
29%
Не пробовал(а)
12%
Не знаю что это
22%
Не использую
1%
Другой вариант (пиши в комментах)
8%
Не участвую
👉 equals() и hashCode() в Array не сравнивает содержимое массива
👉 Array - модифицируемый тип, могут изменить данные снаружи
Рекомендуется использовать List или ImmutableList
Источник тут (альтернативная ссылка)
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM