В отличие от RxJava где есть потоки с backpressure и без, SharedFlow по умолчанию работают с буфером. На примере работы операторов
emit() и tryEmi() Александр Гирёв показал работу разных режимов BufferOverflow: SUSPEND (по умолчанию), DROP_OLDEST и DROP_LATEST.Не так давно Саша провел демо собеседования в WB. Видео на
#coroutines
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥93❤18👍11🙏4
createHTML().html {
head {
jslScript {
val button = Const {
JsButton.def("button")
} assign Document.getElementById("button")
+button.setOnClick {
val title = Const {
JsParagraph.def("title")
} assign Document.getElementById("title")
+title.setTextContent("Clicked!")
Log("Clicked!")
}
}
}
body {
div {
p {
id = "title"
}
}
button {
id = "button"
+"Click me"
}
}
}#kotlin #js
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔22❤7👍5
Разработчик языка Kotlin запустил опрос по KMP опыту для анализы рынка и улучшения его развития. Пройдите опрос тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Kotlin Multiplatform Broadcast
Розыгрыш книг "Kotlin Multiplatform на практике" от Анны Жарковой @prettygeeknotes с автографом автора 🔥 Книга позволяет погрузиться в KMP с нуля и расскажет как мигрировать уже существующие проекты! Для участия в розыгрыше надо подписаться на каналы 🔨 @…
1. Михаил (@zcmxx)
2. Nikolai (@Nikolai0033)
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍10🏆2
Основные улучшения:
✅ Язык: больше стабильных и включённых по умолчанию фич
✅ Kotlin/JVM: поддержка Java 25.
✅ Kotlin/Native: улучшенная совместимость с Swift export и включённые по умолчанию проверки типов на границах дженериков🔥
✅ Kotlin/Wasm: включены полные имена и новая система обработки исключений.
✅ Kotlin/JS: экспериментальный экспорт suspend-функций и новая реализация LongArray.
✅ Gradle: поддержка Gradle 9.0 и новый API для регистрации сгенерированных исходников.
✅ Стандартная библиотека: kotlin.time.Clock и kotlin.time.Instant теперь Stable.
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24❤5🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
// Пример в common коде
share(
data = "file:///path/to/your/file.jpg",
options = SharingOptions(
android = AndroidSharingOptions(...),
ios = IosSharingOptions(...),
)
)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍49🔥2
#kotlin #koog #ai #ии
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍3
Как найти время и силы на пет-проект и решить — а надо ли оно всё?
Яндекс Вертикали приглашают всех на мультистек-вечеринку про хобби и технологии, чтобы помочь ответить на эти вопросы. Вместе с разработчиками, аналитиками и ML-специалистами разберёмся, как совмещать работу с side-проектами.
В программе:
🔴 Истории ребят из Вертикалей о своих внерабочих экспериментах
🔴 Воркшоп, на котором можно создать свой MCP-сервер для автоматизации задач
🔴 Open talk, где обсудим всё — от яхтинга и мотоциклов до открытия своего бара в Москве
🔴 DJ-сет, настолки и другие активности
Подробности и регистрация
#реклама
Яндекс Вертикали приглашают всех на мультистек-вечеринку про хобби и технологии, чтобы помочь ответить на эти вопросы. Вместе с разработчиками, аналитиками и ML-специалистами разберёмся, как совмещать работу с side-проектами.
В программе:
Подробности и регистрация
#реклама
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤔4
Litmus testing - это методика, схожая со стресс тестированием, но нацеленная на проверку работы многопоточных программ. Методика - запуск программы сотни или даже тысячи раз для поиска редких багов.
🐱 LitmusKt - решение от JetBrains Research, которое позволяет проверить работу многопоточных Kotlin приложений. Сейчас можно запускать Kotlin/JVM и Kotlin/Native на всех платформах.
// Пример теста
class StoreBufferingState(
var x: Int = 0,
var y: Int = 0,
var r1: Int = 0,
var r2: Int = 0,
)
val StoreBuffering = litmusTest(::StoreBufferingState) {
thread {
x = 1
r1 = y
}
thread {
y = 1
r2 = x
}
outcome {
r1 to r2
}
spec {
accept(listOf(0 to 1, 1 to 0, 1 to 1))
interesting(listOf(0 to 0))
}
reset {
x = 0
y = 0
r1 = 0
r2 = 0
}
}
# Результат выполнения теста
outcome | type | count | frequency
---------------------------------------------
[1, 0] | ACCEPTED | 6298680 | 48.451%
[0, 1] | ACCEPTED | 6291034 | 48.392%
[0, 0] | INTERESTING | 405062 | 3.1158%
[1, 1] | ACCEPTED | 5224 | 0.0401%
Жду примеров как использовать это с кодом из корутин
#kotlin #concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23❤1