Kotlin Multiplatform Broadcast
9.72K subscribers
882 photos
55 videos
1.21K links
Новости и фичи Kotlin, а также Kotlin Multiplatform

YouTubе канал: https://youtube.com/androidBroadcast
Compose Multiplatform @compose_broadcast
iOS разработка @ios_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager
Download Telegram
🏝 Опыт миграции KMP проекта для работы с AGP 9.0 от @nek12

AGP 9.0 большой стресс для KMP проекта, особенно если использовали фичи Android билд системы по полной. Придется менять Gradle скрипты, добавлять новые модули и организовать их связи. Из плюсов - лучшее кэширование проектов и скорость сборки.

Чем вам придется заниматься
👉 Заменой library плагинов
👉 Поиск альтернативы buildVariant
👉 Поиск замены Build Config
👉 Вынос NDK/RS кода из KMP модулей в нативные Android модули
👉 Отделение Android App модуля от KMP
👉 Прочие правки в скриптах

Самое интересное что на англоязычный вариант этой статьи дал комментарий инженер AGP. Самое важное - это неприятные, но необходимые изменения для эволюции систеы сборки. Причем текущий шаг - первый этап из двух. Работа над переменами стартанула в 2019 году.

#KMP #Gradle
Please open Telegram to view this post
VIEW IN TELEGRAM
19🥰5👎3👍2
🏝 Вышел релиз kotlinx.serialization 1.10.0 на базе Kotlin 2.3.0

Главное:
👉 Стабилизированы JSON-фичи (больше не experimental): allowComments, allowTrailingComma, prettyPrintIndent, decodeEnumsCaseInsensitive, @EncodeDefault, JsonUnquotedLiteral.
👉 Поддержка Unused Return Value Checker из Kotlin 2.3 — теперь можно ловить кейсы, где вы забыли использовать результат encodeToString() и подобных API.
👉 Улучшения полиморфизма: утилита subclassesOfSealed для автоматической регистрации sealed-подклассов в SerializersModule.
🤖 Обновили правила для Proguard, а также тесты для проверок минификации через R8
⚒️ Багфиксы: CBOR, ProtoBuf для unsigned типов, мелкие несовместимости.

🐱 Подробности в Release Notes

#Kotlin #KotlinX
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍13🥰1
🚀 Вышел Ktor 3.4.0: Стабильность, OpenAPI и дуплексный стриминг

Вышла новая версия Ktor с фокусом на стабильность и долгожданные фичи!

Что нового:

👉 Автоматическая генерация OpenAPI документации из кода — теперь ваш Swagger UI строится динамически на основе роутинга, а не статических файлов. Новый API describe позволяет описывать эндпоинты прямо в коде.

👉 Дуплексный стриминг для OkHttp — отправляйте и получайте данные одновременно через HTTP/2. Включается через duplexStreamingEnabled в конфигурации движка.

👉 Поддержка Zstd компрессии — быстрый алгоритм с высокой степенью сжатия теперь доступен через модуль ktor-server-compression-zstd.

👉 HttpRequestLifecycle плагин — автоматическая отмена HTTP запросов при отключении клиента. Structured concurrency сам почистит все ресурсы. Работает с Netty и CIO движками.

👉 Множество исправлений и улучшений производительности, чтобы Ktor был готов к новому году разработки.

🔗 Подробности в анонсе

#Ktor #Kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥34👍9🥰1
🏝 Вышел Exposed 1.0 - ORM на Kotlin от JetBrains

Вышла первая мажорная версия Exposed — библиотеки для работы с базами данных в Kotlin от JetBrains!

Exposed — это легковесная ORM библиотека, которая предоставляет два подхода к работе с БД: type-safe SQL DSL и DAO API. Написана на Kotlin с поддержкой корутин и всех фишек языка.

Библиотека будет полезна Backend разработчикам на Kotlin, которые хотят type-safe работу с БД без магии рефлексии. Тем, кто ценит контроль над SQL запросами, но не хочет писать сырой SQL. Проектам на Ktor и Spring, где нужна легковесная ORM с поддержкой корутин.

// Пример SQL запроса на Kotlin + Exposed
fun buildQuery(): Query {
val query = TaxiRide.selectAll()
query.addRideFilters("completed", "John Doe")
return query
}

fun Query.addRideFilters(status: String?, passengerName: String?) {
status?.let {
this.andWhere { TaxiRide.status eq status }
}

passengerName?.let {
this.adjustColumnSet { // add a JOIN to Passenger
innerJoin(Passenger, { Passenger.id }, { TaxiRide.passengerId })
}.andWhere { Passenger.name eq passengerName }
}
}


🔗 Подробности в анонсе
🔗 Официальный сайт Exposed

#Kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
35👍17🤯9🤔5
🤔 Как дать AI актуальную информацию про Open Source библиотеки

Используя любой кодинг агент, точно столкнёшься с тем, что он не может использовать свежие API. Он начнет импровизировать, придумывая API из головы или писать поверх либы фичу, которая уже в ней есть. Спросили про новую функцию в Ktor 3.4? "Извините, я обучен на данных до января 2025".

Я подключаю MCP и скиллы для лучшей интеграций новых знаний:
⭐️DeepWiki — быстро разобраться в архитектуре проекта. Есть MCP
⭐️Context7 — актуальная документация JS/TS/Python через MCP. Платный, но с бесплатным лимитом на 500 запросов в месяц
🏝ksrc — исходники Kotlin зависимостей @nek_12

💬 В комментариях делитесь как вы решаете подобную задачу

#kotlin #ai #tools #mcp
Please open Telegram to view this post
VIEW IN TELEGRAM
18👍6👎2🔥2
🤖 AndroidX Paging 3.4.0 обзавелся поддержкой все популярных тартегов JVM(Android and Desktop), Native (Linux, iOS, watchOS, tvOS, macOS, MinGW) и Web (JavaScript, WasmJS), но при это удалили deprecated таргеты X64

#Android #KMP
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🔥8👏7🤔1
💉 Koin получил получит Compile Time Safety через плагин Kotlin компилятора, а пока пора на него переходить, чтобы отказаться от KSP

Готовится к релизу Koin 4.2 где уже в RC версии появился Gradle плагин, которые будет использоваться для включения Compile Time Safety в будущем. Плагин способен работать с Koin Annotations и традиционным DSL подходом.

Что нужно сделать
1️⃣ Обновить Koin до версии 4.2 или выше
2️⃣ Подключить Gradle плагин io.insert-koin.compiler.plugin

Сложность может быть одна - нужен Gradle 8.X и Kotlin 2.3.20, а по результатам опроса не всего на него перешли

🔗 Источник - официальный блог Koin на Medium

#Kotlin #Koin #KMP
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥36👍7👎2🤔2
🏝 Вышел Kotlin 2.3.10 - багфикс версии 2.3.0

Что важного в исправлениях
⚙️ Поправили работу с Compose Multiplatform
👉 Исправлены баги в рефлексии
‼️ Исправлены критичные баги компилятора
🛠 Исправление проблемы с null типами

Кажется пора переехать на новую версию и посмотреть, подойдет ли она вам

🐱 Список изменений на GitHub

💬 Делитесь вашим опытом миграции и починило ли проблемы

#Kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥41👍103👏1
🐱 AutoService IR - Правильный AutoService плагин для Kotlin/JVM проекта

Для тех кто активно используется Kotlin на JVM и любит работать с Auto Service - теперь есть решение которое под капотом полностью работает на Kotlin и его технологиях без хождения в Java механизмы генерации.

// Подключаем Gradle плагин AutoService IR
plugins {
kotlin("jvm") version "2.3.0"
id("com.fueledbycaffeine.autoservice") version "<latest>"
}

// Пример использования
import com.fueledbycaffeine.autoservice.AutoService

// Описываете ваш сервис
interface Logger {
fun log(message: String)
}

// Добавляете @AutoService аннотацию
@AutoService
class ConsoleLogger : Logger

// Еще вариант объявления
@AutoService(Logger::class)
class FileLogger : Logger


🏆Переходите с Google AutoService на AutoService IR. Для простоты миграции сделали режим совместимости с Google аннотациями AutoService

#Kotlin #JVM #OpenSource
Please open Telegram to view this post
VIEW IN TELEGRAM
6👎4👍1
🏝 Серия статей от JetBrains про Koog и AI‑агентов в Kotlin

JetBrains выкатили очень приличную серию «Building AI Agents in Kotlin» про Koog.

Koog — это официальный open‑source фреймворк от JetBrains для сборки AI‑агентов на Kotlin с идиоматичным Kotlin DSL и мультиплатформенной поддержкой


1️⃣ A Minimal Coding Agent
Старт с нуля: собираем минимального coding‑агента на Koog, который умеет читать/редактировать файлы в проекте и применять изменения через инструменты. По сути, «LLM + tools» в виде нормальной Kotlin‑архитектуры.

2️⃣ A Deeper Dive Into Tools
Дальше копают в сторону tools: как описывать инструменты, прокидывать параметры, интегрироваться с внешними сервисами и оборачивать всё это в удобные Kotlin‑абстракции. Хорошо показывает, как не превратить агента в «god‑object».

3️⃣ Under Observation
Этот выпуск про наблюдаемость: логирование шагов агента, трейсинг tool‑вызовов, что именно решает LLM и где всё ломается. Полезно, если вы хотите не «магический чёрный ящик», а систему, которую можно дебажить.

4️⃣Delegation and Sub‑Agents
Как только один агент начинает уметь слишком много, появляется потребность в делегации. Здесь как раз показывают sub‑agents, композицию агентов через tools и разбиение сложных задач на специализированные роли.

5️⃣Teaching Agents to Forget
Финальная часть про память и «забывание»: как управлять историей, не раздувая контекст до бесконечности, какие куски опыта агента сохранять, а какие сбрасывать, чтобы он оставался полезным и дешёвым.

Если вы смотрите в сторону своих AI‑агентов на Kotlin (IDE‑помощник, internal‑бот, автотюнинг CI и т.д.), серия даёт очень неплохой «скелет» архитектуры на Koog: от минимального агента до наблюдаемости, делегации и памяти.

Также эта серия статей поможет вам понять как устроены современные AI агенты.

#Kotlin #AI #Koog
Please open Telegram to view this post
VIEW IN TELEGRAM
19👍8👎2🤔1
💉 Выпустил первый релиз detekt-rules-koin — Detekt-расширение с 51 правилом для Koin 4.x

Если используете Koin и Detekt, то знаете, что стандартный Detekt ничего не знает о специфике Koin. Можно написать рабочий, но проблемный код — и никаких предупреждений.

Что ловит библиотека:
👉 Service Locator антипаттерны (5 правил)
👉 Ошибки в Module DSL (14 правил)
👉 Проблемы управления скоупами (8 правил)
👉 Platform-специфичные проблемы (8 правил)
👉 Архитектурные нарушения (4 правила)
👉 Koin Annotations (12 правил)

Подключение:
// build.gradle.kts
dependencies {
detektPlugins("dev.androidbroadcast.rules.koin:detekt-koin4-rules:1.0.0")
}


Требования: Kotlin 2.0+, Detekt 1.23.8+, Koin 4.x

🐱 GitHub Репо

Жду фидбэк — каких не хватает, ложные срабатывания, что настраивается неудобно и всё всё. Пишите в комментариях к этому посту или в Issues репозитория 🙌
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👎7👍2
🔥 Неделя харизмы в Ergostol на мощные и брутальные модели столов!

С 23 февраля по 01 марта вас ждут скидки до -20% на столы, кронштейны и аксессуары.

В акции участвуют популярные модели: Terra 3.0, Terra R 2.0, Delta 2.0 и другие. Это отличная возможность приобрести их выгодно!

Время ограничено! Успейте выбрать свои идеальный товары до 01 марта включительно.
👉 Со всеми предложениями можно ознакомиться на сайте.

🎁 А с промокодом ANDROID10 получите ещё –10% на акционные товары и не только!

Реклама. ООО «СОФТЭФФЕКТ». ИНН 7735575262
Please open Telegram to view this post
VIEW IN TELEGRAM
👎10👍3🥰1🤔1
Forwarded from Aurora Developers (Vitaliy Zarubin)
🔥 Compose Multiplatform доступен на ОС Аврора!

Отличные новости для Kotlin-сообщества и всех, кто интересуется российской мобильной разработкой. Теперь вы можете создавать приложения для ОС Аврора, используя современный и привычный инструментарий — Kotlin и Compose Multiplatform.

Что опубликовано:
В репозитории на mos.hub выложены компоненты, необходимые для разработки:

- Проекты Compose Multiplatform для сборки.
- Готовые артефакты в репозитории Aurora Maven.
- Плагин для Gradle, упрощающий сборку приложений.

Что дальше?
В планах — расширение поддержки платформы и стабилизация проекта. А уже сейчас в документации вы найдете подробное руководство по началу работы, а также два демонстрационных приложения, которые помогут быстро разобраться с особенностями платформы.

👉 Документация

Хотите помочь проекту стать лучше?
Присоединяйтесь к разработке на mos.hub! Мы открыты к вашему коду и экспертизе. Только #ВМЕСТЕ мы сможем сделать инструмент максимально полезным для всего сообщества.

👉 Репозиторий
🔥44👎37🤔115
🏝 В последнее время новостей про Kotlin в инете совсем немного. Только в выход новой версии Kotlin и на Kotlin Conf. Стагнация или неспешный ритм разработки?
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔20👎3👍2
🏝 Каждые полгода JetBrains проводит ревью: что сделали, что не сделали, как переоценивают приоритеты.

Вчера обновили Kotlin roadmap. И там произошло много интересного.
За полгода завершили 14 пунктов (Swift Export finally released, улучшения в Gradle, стабилизация Kotlin/Native). Добавили новые направления (и это индикатор того, что команда видит пробелы в экосистеме). Убрали несколько старых (это тоже информация — о чем они отказались и почему).

Дальше я разберу каждое направление отдельно: что произошло в мультиплатформе, что с инструментами, как развивается язык и экосистема. Потому что в одном посте это просто каша будет.

🔗 Roadmap тут

#Kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍11👎1🤔1
🏝 Kotlin язык: от синтаксиса к семантике

Когда я смотрю на roadmap, первое, что кидается в глаза — четыре ключевых приоритета. И один из них звучит просто: "Language evolution: keep Kotlin concise and expressive, prioritizing meaningful semantics over ceremony." Это значит что новых фичей в синтаксисе будет меньше и приоритет улучшению семантики

Это важно для долгосрочных проектов, которые втянут Kotlin — ты теперь знаешь, что Kotlin не будет делать breaking changes ради новой фишки. Код, написанный сегодня, будет понятен и работать через год.

Второй пункт в списке после развития языка - Kotlin Multiplatform. В целом уже и так было понятно важность этого направления развития Kotlin

#Kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20👎1
🏝 K2 компилятор и incremental compilation для KMP: ремонт того, что было

Если ты используешь KMP, то ты знаешь боль: сборка проекта занимает времени. Особенно когда меняешь common код. Почему? Потому что когда JetBrains переходили на K2 компилятор, они изменили схему компиляции. Инкрементальная сборка вдруг перестала работать для KMP проектов так, как работала до Kotlin 2.X.

Реализация будет в июне 2026 года. Ждем.

💬 А вы заметили регресс инкрементальной сборки?

#Kotlin #K2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🤔8👎1🥰1
🏝 Что сделали в Kotlin за последние 6 месяцев (с августа 2025 по февраль 2026):

Компилятор:
JSpecify support (null-safety в интеропе с Java)
K1 компилятор deprecated (K2 теперь основной)
Kotlin/Wasm Beta

Мультиплатформа:
CMS GC by default (производительность)
KMP IDE plugin на Windows и Linux
Compose for Web в Beta
Compose Hot Reload в Stable

Инструменты:
K2 mode вIDEA теперь основной режим
Улучшение импортов (IDE работает быстрее)
NPM publishing для JS/Wasm артефактов
Улучшили опыт разработки под Kotlin/Wasm в IDEA

Экосистема:
OpenAPI для Ktor
WebRTC client в Ktor
Exposed 1.0.0 (работа с БД)
Поддержка R2DBC в Exposed

#Kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥9👎1🤔1
🏝 kotlinx.collections.immutable будут стабилизировать в ближайшие полгода

После долгих лет в experimental статусе, JetBrains планируют стабилизировать kotlinx.collections.immutable. Добавят новые типы (PersistentOrderedSet, PersistentHashSet), улучшат API, документацию. Может вовсе стоит их сделать частью stdlib ?

Это долгожданная новость. Но вот интересный вопрос: нужна ли она вообще сейчас?

Immutable collections были критичны для Compose, потому что помогали избежать рекомпозиций. Но потом пришел Strong Skipping Mode в Compose. И теперь Compose намного умнее в том, что перерисовывать и что нет. Нужна ли immutable collection для этого теперь? Я честно не знаю ответ. 🤷

Потому что вопрос к вам:
👉 Кто сейчас юзает immutable collections в Compose проектах? Зачем?
👉 Помогает ли это производительности, или это уже не нужно?
👉 Где вы их юзаете еще, кроме Compose?
👉 А может быть, наоборот, нужны еще больше?

💬 Пишите в комментариях — помогите разобраться

#Kotlin #KotlinX #Compose
Please open Telegram to view this post
VIEW IN TELEGRAM
👍223🙏2👎1
🏝 Kotlin stdlib будут поддерживаться 18 месяцев

JetBrains будет поддерживать новые версии Kotlin Stdlib на протяжении 18 месяцев. Это значит: если ты обновился на какую-то версию Kotlin — JetBrains гарантирует исправления уязвимостей и критические баги для этой версии. Потом можешь обновляться, когда будешь готов.

Кому это вообще нужно? Командам кто не гонится за новыми фичами и обновлениями. Новая версия выходит, а с ней баги или непредсказуемое поведение:
👉 Tooling не подтянулся
👉 Просто нет времени на большое обновление
👉 У вас внешние требования и надо всё перепроверять перед обновлением

‼️ Это важный сигнал - Kotlin взрослеет и становится более production-ready в другом смысле. Kotlin 1.X был про "новые фишки каждую версию". Версии 2.X это про стабильность. JetBrains готовы поддерживать долгую версию — исправления уязвимостей, критические баги, без принуждения обновляться на новые версии языка.

Это как Java с LTS-версиями. Есть гарантии и предсказуемость, что важнее новых фичей.

#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👎7👍5🤔2