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
Forwarded from Compose Broadcast
Что нового:
👉 Переход на K2
👉 Мультиплатформенные реализации BackHandler и PredictiveBackHandler
👉 Улучшения в тестах
👉 Поддержка вариативных шрифтов на всех платформах
👉 Clipboard API заменяет ClipboardManager для работы c буфером обмена на всех платформах
👉 Множество улучшений в Compose/iOS
👉 На Windows улучшили производительность и размер инсталятора
Множество других улучшений, которые надо разбирать отдельными постами.
#compose #k2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍50
Forwarded from Compose Broadcast
🔥⚙️ Compose iOS теперь Stable
Самый громкий и важный анонс в истории Compose Multiplatform с выходом версии 1.8.0
Что именно готово для продакшен применения
👉 Все основные фичи из Jetpack Compose работают на iOS
👉 Типобезопасная навигация с поддержкой deep link
👉 Гибкое управление ресурсами
👉 Поддержка iOS Accessibility API
👉 Ощущения от UI приложения как нативного (скрол, редактирование текста, drag-and-drop, адаптивный UI, навигация жестами и пр)
👉 Производительность UI на Compose близка к SwiftUI, но пока немного уступает
Новая эра мобильной разработки уже тут!
#compose #ios
Самый громкий и важный анонс в истории Compose Multiplatform с выходом версии 1.8.0
Что именно готово для продакшен применения
👉 Все основные фичи из Jetpack Compose работают на iOS
👉 Типобезопасная навигация с поддержкой deep link
👉 Гибкое управление ресурсами
👉 Поддержка iOS Accessibility API
👉 Ощущения от UI приложения как нативного (скрол, редактирование текста, drag-and-drop, адаптивный UI, навигация жестами и пр)
👉 Производительность UI на Compose близка к SwiftUI, но пока немного уступает
Новая эра мобильной разработки уже тут!
#compose #ios
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍132