Koog, фреймворк для разработки агентов на Kotlin от JetBrains, обзавёлся возможность коммуникации между Агентами, для создания мультиагенстких систем. Делается это с помощью протокола A2A (Agent2Agent)
Пример реализации на
#ai #agent
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🔥8🤔1
Forwarded from Aurora Developers
Kotlin Multiplatform снова расширяет свои возможности. Опубликован проект Aurora KInterop выводящий на новый уровень поддержку KMP в ОС Аврора.
Проект Aurora KInterop позволяет взаимодействовать Kotlin с операционной системой Аврора для выполнения различных платформа зависимых задач. В проекте 16 независимых друг от друга библиотек Kotlin Multiplatform для различных задач.
👉 Battery Info.
👉 Camera Info.
👉 Connectivity Info.
👉 Device Info.
👉 Local Notification.
👉 Location Info.
👉 Package Info.
👉 Path Info.
👉 Sensors Info.
👉 Share Data.
👉 Shared Pref.
👉 Shared Pref Secure.
👉 Theme Info.
👉 Uri Launcher.
👉 Vibration.
👉 WakeLock.
В документации можно найти подробное описание библиотек проекта, способы их подключения, примеры использования и демонстрационное приложение которые наглядно показывает работу всех 16-ти библиотек проекта. Приложение опубликовано и доступно для самостоятельного изучения.
🔗 https://omprussia.gitlab.io/kmp/docs
Мы продолжаем развивать поддержку Kotlin Multiplatform в операционной системе Аврора. Новый проект значительно расширяет способы использования KMP в ОС Аврора. Проекты открыты, будем рады вашим issue и мерж-реквестам.
🔗 https://gitlab.com/omprussia/kmp
@aurora_devs
Проект Aurora KInterop позволяет взаимодействовать Kotlin с операционной системой Аврора для выполнения различных платформа зависимых задач. В проекте 16 независимых друг от друга библиотек Kotlin Multiplatform для различных задач.
👉 Battery Info.
👉 Camera Info.
👉 Connectivity Info.
👉 Device Info.
👉 Local Notification.
👉 Location Info.
👉 Package Info.
👉 Path Info.
👉 Sensors Info.
👉 Share Data.
👉 Shared Pref.
👉 Shared Pref Secure.
👉 Theme Info.
👉 Uri Launcher.
👉 Vibration.
👉 WakeLock.
В документации можно найти подробное описание библиотек проекта, способы их подключения, примеры использования и демонстрационное приложение которые наглядно показывает работу всех 16-ти библиотек проекта. Приложение опубликовано и доступно для самостоятельного изучения.
Мы продолжаем развивать поддержку Kotlin Multiplatform в операционной системе Аврора. Новый проект значительно расширяет способы использования KMP в ОС Аврора. Проекты открыты, будем рады вашим issue и мерж-реквестам.
@aurora_devs
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔33🔥29👍10🤯1
Forwarded from Kotlin Adept Notes (Alex Panov)
Материалы для углублённого изучения KMP
По мотивам вчерашнего собеса хочу посоветовать классные доклады, которые помогут вам глубже разобраться в принципах работы Kotlin Multiplatform и Kotlin Native, а также лучше понять нюансы интеропа со Swift-кодом.
На английском:
🔘 ЖЦ объектов в Kotlin/Native
🔘 Процесс компиляции в Kotlin/Native, отличия статических и динамических фреймворков
🔘 Проблемы текущего интеропа и возможные пути улучшения
🔘 Разница между Kotlin и Swift concurrency
🔘 Принцип работы Swift Export
На русском:
🔘 Совместная работа Kotlin/Native GC и ARC в Swift
🔘 iOS Memory Management
#KMP
По мотивам вчерашнего собеса хочу посоветовать классные доклады, которые помогут вам глубже разобраться в принципах работы Kotlin Multiplatform и Kotlin Native, а также лучше понять нюансы интеропа со Swift-кодом.
На английском:
На русском:
#KMP
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23❤3👍1🤔1
👉 Новый формат описания стратегии агента - non-graph API. Теперь всё можно делать напрямую в Kotlin без работы с графами
👉 Улучшения сохранения и восстановления состояния без потери контекста
👉 Улучшения Tool API
👉 AIAgentService - способ управления несколькими агентами
#kotlin #ии #ai
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍2
Если коротко - использовать non-graph (функциональные) стратегии стоит в тех случаях, когда приоритетом является простота, скорость прототипирования и отсутствие необходимости в сложной инфраструктуре:
👉 Задача ограничена и хорошо определена
👉 Важно быстро создать и протестировать идею
👉 Нет требований к сохранению состояния и отказоустойчивости
👉 Не требуется сложная визуализация и наблюдаемость
🔗 Альтернативная ссылка
#kotlin #ai #ии
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍3
Media is too big
VIEW IN TELEGRAM
0:00 Обзор Kotlin 2.2.20 и 2.2.21
0:31 Проверка полноты с учётом потока данных (Dataflow-based exhaustiveness checks)
2:42 Возвраты в телах выражений
3:50 Улучшенные контракты Kotlin
6:23 Другие изменения: обобщённые типы в блоках catch и invokedynamic-выражения
7:11 Обновления общего API для атомарных операций
9:05 Новая функция копирования массивов
10:15 Kotlin/Wasm в статусе Beta и отладка в браузере
11:57 Экспорт в Swift доступен по умолчанию (экспериментально)
14:21 Меньший размер бинарных файлов
15:12 Обновления документации
15:30 В релизе есть и другие изменения!
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤2
Примите, что работы с iOS не будет на Windows и Linux, но потом будет возможность собирать klib для всех платформ.
#kotlin #kmp #androidstudio #idea
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥37❤6👍6🏆3
В отличие от RxJava где есть потоки с backpressure и без, SharedFlow по умолчанию работают с буфером. На примере работы операторов
emit() и tryEmi() Александр Гирёв показал работу разных режимов BufferOverflow: SUSPEND (по умолчанию), DROP_OLDEST и DROP_LATEST.Не так давно Саша провел демо собеседования в WB. Видео на
#coroutines
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤3
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥95❤18👍12🙏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
🤔23❤7👍6
Разработчик языка Kotlin запустил опрос по KMP опыту для анализы рынка и улучшения его развития. Пройдите опрос тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
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
👍25❤6🔥2
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
👍50🔥3
#kotlin #koog #ai #ии
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍3
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
👍33❤2