Please open Telegram to view this post
    VIEW IN TELEGRAM
  Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍32
  Please open Telegram to view this post
    VIEW IN TELEGRAM
  1👍20
  В 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
  👍28🔥1
  
  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
👍38
  Из самого важного:
👉 Новый режим будет по умолчанию включен в 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
  👍13
  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
  👍49
  val result: Result<Int> = runCatching {
    // Код, который может выбрасывать исключения
    10 / 2
}🔗 Альтернативная ссылка
#kotlin
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍18
  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 #тестирование
👍22
  👉 Работа с XCode 16.3
👉 Поддержка K2 в KAPT и Lombok плагинах
👉 Улучшения в stdlib
👉 Новый DSL на замену Gradle Application плагина
🚀 Улучшения производительности
#kotlin #kmp
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍32
  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
  👍26
  Отмена корутины не останавливает операцию мгновенно, а помечает корутину как "требующую остановки". Этот подход называется cooperative cancellation. Остановка корутины произойдет при вызове suspend-функции или проверке ее статуса через isActive. Специальное исключение CancellationException используется для уведомления всех связанных корутин о необходимости отмены.
Больше фактов об отмене корутины в статье🏝  Разбор как устроена отмена выполнения корутины (EN, 3 мин) или по альтернативной ссылке. Также полезно ознакомиться с официальной документацией.
#kotlin #coroutines
Больше фактов об отмене корутины в статье
#kotlin #coroutines
Please open Telegram to view this post
    VIEW IN TELEGRAM
  8👍66🔥1
  (все видео курса в комментариях к видео)
#kotlin #ktor #server
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍43
  Концепция строится вокруг модульной структуры для разделения 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
  👍25
  Используете Decompose?
  Anonymous Poll
    21%
    Да
      
    7%
    Пробовал(а), не зашло
      
    29%
    Не пробовал(а)
      
    12%
    Не знаю что это
      
    22%
    Не использую
      
    1%
    Другой вариант (пиши в комментах)
      
    8%
    Не участвую
      
    👍11
  👉 equals() и hashCode() в Array не сравнивает содержимое массива
👉 Array - модифицируемый тип, могут изменить данные снаружи
Рекомендуется использовать List или ImmutableList
Источник тут (альтернативная ссылка)
#kotlin
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍90
  