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
Главное:
👉 Стабилизированы JSON-фичи (больше не experimental): allowComments, allowTrailingComma, prettyPrintIndent, decodeEnumsCaseInsensitive, @EncodeDefault, JsonUnquotedLiteral.
👉 Поддержка Unused Return Value Checker из Kotlin 2.3 — теперь можно ловить кейсы, где вы забыли использовать результат encodeToString() и подобных API.
👉 Улучшения полиморфизма: утилита subclassesOfSealed для автоматической регистрации sealed-подклассов в SerializersModule.
⚒️ Багфиксы: CBOR, ProtoBuf для unsigned типов, мелкие несовместимости.
#Kotlin #KotlinX
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍13🥰1
Вышла новая версия 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 — библиотеки для работы с базами данных в 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
Используя любой кодинг агент, точно столкнёшься с тем, что он не может использовать свежие API. Он начнет импровизировать, придумывая API из головы или писать поверх либы фичу, которая уже в ней есть. Спросили про новую функцию в Ktor 3.4? "Извините, я обучен на данных до января 2025".
Я подключаю MCP и скиллы для лучшей интеграций новых знаний:
#kotlin #ai #tools #mcp
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18👍6👎2🔥2
#Android #KMP
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🔥8👏7🤔1
Готовится к релизу Koin 4.2 где уже в RC версии появился Gradle плагин, которые будет использоваться для включения Compile Time Safety в будущем. Плагин способен работать с Koin Annotations и традиционным DSL подходом.
Что нужно сделать
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
Что важного в исправлениях
👉 Исправлены баги в рефлексии
🛠 Исправление проблемы с null типами
Кажется пора переехать на новую версию и посмотреть, подойдет ли она вам
#Kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥41👍10❤3👏1
Для тех кто активно используется 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
#Kotlin #JVM #OpenSource
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👎4👍1
JetBrains выкатили очень приличную серию «Building AI Agents in Kotlin» про Koog.
Koog — это официальный open‑source фреймворк от JetBrains для сборки AI‑агентов на Kotlin с идиоматичным Kotlin DSL и мультиплатформенной поддержкой
Старт с нуля: собираем минимального coding‑агента на Koog, который умеет читать/редактировать файлы в проекте и применять изменения через инструменты. По сути, «LLM + tools» в виде нормальной Kotlin‑архитектуры.
Дальше копают в сторону tools: как описывать инструменты, прокидывать параметры, интегрироваться с внешними сервисами и оборачивать всё это в удобные Kotlin‑абстракции. Хорошо показывает, как не превратить агента в «god‑object».
Этот выпуск про наблюдаемость: логирование шагов агента, трейсинг tool‑вызовов, что именно решает LLM и где всё ломается. Полезно, если вы хотите не «магический чёрный ящик», а систему, которую можно дебажить.
Как только один агент начинает уметь слишком много, появляется потребность в делегации. Здесь как раз показывают sub‑agents, композицию агентов через tools и разбиение сложных задач на специализированные роли.
Финальная часть про память и «забывание»: как управлять историей, не раздувая контекст до бесконечности, какие куски опыта агента сохранять, а какие сбрасывать, чтобы он оставался полезным и дешёвым.
Если вы смотрите в сторону своих AI‑агентов на Kotlin (IDE‑помощник, internal‑бот, автотюнинг CI и т.д.), серия даёт очень неплохой «скелет» архитектуры на Koog: от минимального агента до наблюдаемости, делегации и памяти.
Также эта серия статей поможет вам понять как устроены современные AI агенты.
#Kotlin #AI #Koog
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19👍8👎2🤔1
Если используете 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
Жду фидбэк — каких не хватает, ложные срабатывания, что настраивается неудобно и всё всё. Пишите в комментариях к этому посту или в Issues репозитория 🙌
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👎7👍2
С 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! Мы открыты к вашему коду и экспертизе. Только #ВМЕСТЕ мы сможем сделать инструмент максимально полезным для всего сообщества.
👉 Репозиторий
Отличные новости для Kotlin-сообщества и всех, кто интересуется российской мобильной разработкой. Теперь вы можете создавать приложения для ОС Аврора, используя современный и привычный инструментарий — Kotlin и Compose Multiplatform.
Что опубликовано:
В репозитории на mos.hub выложены компоненты, необходимые для разработки:
- Проекты Compose Multiplatform для сборки.
- Готовые артефакты в репозитории Aurora Maven.
- Плагин для Gradle, упрощающий сборку приложений.
Что дальше?
В планах — расширение поддержки платформы и стабилизация проекта. А уже сейчас в документации вы найдете подробное руководство по началу работы, а также два демонстрационных приложения, которые помогут быстро разобраться с особенностями платформы.
👉 Документация
Хотите помочь проекту стать лучше?
Присоединяйтесь к разработке на mos.hub! Мы открыты к вашему коду и экспертизе. Только #ВМЕСТЕ мы сможем сделать инструмент максимально полезным для всего сообщества.
👉 Репозиторий
🔥44👎37🤔11❤5
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔20👎3👍2
Вчера обновили 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
Когда я смотрю на 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
Если ты используешь 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
Компилятор:
✅ 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
После долгих лет в 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
👍22❤3🙏2👎1
JetBrains будет поддерживать новые версии Kotlin Stdlib на протяжении 18 месяцев. Это значит: если ты обновился на какую-то версию Kotlin — JetBrains гарантирует исправления уязвимостей и критические баги для этой версии. Потом можешь обновляться, когда будешь готов.
Кому это вообще нужно? Командам кто не гонится за новыми фичами и обновлениями. Новая версия выходит, а с ней баги или непредсказуемое поведение:
👉 Tooling не подтянулся
👉 Просто нет времени на большое обновление
👉 У вас внешние требования и надо всё перепроверять перед обновлением
Это как Java с LTS-версиями. Есть гарантии и предсказуемость, что важнее новых фичей.
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👎7👍5🤔2