Kotlin Multiplatform Broadcast
9.68K subscribers
875 photos
55 videos
1.18K links
Новости и фичи Kotlin, а также Kotlin Multiplatform

YouTubе канал: https://youtube.com/androidBroadcast
Compose Multiplatform @compose_broadcast
iOS разработка @ios_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager
Download Telegram
🏝 Вышел ktlint 1.8.0 - популярный линтер для проверки стиля кода и не только

Команда разработчиков представила версию 1.8.0, включающую:
👉 Поддержку languageVersion = KOTLIN_2_0, чтобы обеспечить совместимость с Kotlin 2.0.
👉 Возможность проще создавать собственные правила линтинга (custom ruleset).
👉 Новое правило then-spacing для улучшения читаемости кода.
🛠 Различные минорные улучшения и исправления

#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍8
🏝 Вышел Release Candidate Kotlin 2.3.0. Будет подарок на новый год из интересных фичей! Жду Stable версию

#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24👍6
💉Koin IDE Plugin обновился до версии 1.5.1 — полная поддержка Koin Annotations 2.2**

IDE Плагин популярного DI Koin получил значительное обновление! Версия 1.5.1 приносит совместимость с Koin Annotations 2.2 и расширяет возможности работы с dependency injection.

Что нового в этом обновлении:

🎯 Поддержка JSR-330 аннотаций
Теперь плагин полностью понимает стандартные аннотации dependency injection:
@Singleton // Синглтон-зависимости
class UserRepository @Inject constructor()

@Named("prod") // Именованные зависимости
class ProductionService @Inject constructor()

Это особенно удобно для команд, мигрирующих с Hilt или Dagger.

🤖 Android-specific scopes
Плагин теперь валидирует Android-специфичные scope'ы:
- @ActivityScope — для зависимостей Activity
- @FragmentScope — для Fragment
- @ViewModelScope — для ViewModel
- @ActivityRetainedScope — переживающие смену конфигурации

🔍 Умная валидация конфигурации
Обновление добавляет проверки для:
- Корректности использования @KoinApplication (одна аннотация на модуль)
- Совместимости JSR-330 аннотаций с Koin
- Правильности Android scope'ов

🎨 Визуализация графа зависимостей
Tree View теперь отображает JSR-330 квалификаторы и Android scope'ы, что упрощает навигацию по сложным графам зависимостей.

🤖 AI-помощник для отладки
Новая функция генерации AI-запросов помогает быстрее решать проблемы с зависимостями — от missing dependency до misconfiguration.

⚙️ Улучшения UX
- Исправлена проблема спонтанного выхода из системы
- Добавлена поддержка lazy modules
- Настройка инспекций под ваш workflow

Почему стоит обновиться:
- Более надежная работа с сессиями
- Расширенная поддержка современных практик DI
- Улучшенная навигация по коду
- Раннее обнаружение ошибок конфигурации

Обновите плагин через Marketplace в вашей IDE и попробуйте новые возможности!

#Kotlin #Koin #DI #Android #IDEA #AndroidStudio #JSR330 #KMP #AI
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
16👍16
🏝 Документацию по Kotlin и Kotlin Multiplatform объединили на одном сайте, а также сделали обновления UI. Должно стать удобнее

#Kotlin #KMP
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥41👍10
🏝 Kotlin 2.3.0-RC2 доступен для тестирования!

Вышла вторая релиз-кандидат Kotlin 2.3.0 — финальная версия уже близко. Вот ключевые изменения, которые стоит проверить в новой сборке:

Язык и компилятор:
Больше стабильных фичей по умолчанию
Новый чекер для неиспользуемых возвращаемых значений в экспериментальном режиме

Kotlin/JVM:
Поддержка Java 25

Kotlin/Native:
Улучшенная интероперабельность через Swift export
Проверки типов на границах generic-типов включены по умолчанию

Kotlin/Wasm
Полные квалифицированные имена включены по умолчанию
Новая модель обработки исключений включена по умолчанию

Kotlin/JS:
Экспериментальный export для suspend-функций
Новое представление LongArray

Gradle:
Совместимость с Gradle 9.0
Новый API для регистрации сгенерированных исходников

Стандартная библиотека:
Стабилизированы API для работы со временем

Это предрелизная версия — идеальное время для тестирования ваших проектов перед финальным релизом. Нашли проблемы? Сообщайте в YouTrack!

#Kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥154👍4
🏝 Kotlin 2.3.0-RC2: Нативные Enums и Varargs в Swift Export

В Kotlin 2.3.0-RC2 продолжили улучшать совместимость со Swift через механизм Swift Export. В новой версии улучшили работу с enum class из Kotlin в Swift

Раньше Kotlin-enum экспортировались как обычные Swift-классы. Теперь маппинг прямой — вы получаете настоящие нативные enum в Swift.

enum class Color(val rgb: Int) {
RED(0xFF0000),
GREEN(0x00FF00),
BLUE(0x0000FF)
}

👇
public enum Color: Swift.CaseIterable, Swift.RawRepresentable {
case RED, GREEN, BLUE
var rgb: Int { get }
}


#Kotlin #KMP #Swift
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥33👍2
🏝 Kotlin 2.3.0-RC2: Varargs теперь нативны в Swift

В обновлении Swift Export завезли долгожданный маппинг для vararg. Теперь функции с переменным числом аргументов в Kotlin превращаются в нативные вариативные функции Swift (...), а не в массивы или обертки.

Это делает API вашего общего кода гораздо чище для iOS-разработчиков — больше не нужно создавать массив вручную, чтобы передать список параметров.

fun log(vararg messages: String)

// Вызов в Kotlin:
log("Error", "Warning", "Info")


👇 Автоматическая конвертация в Swift:

public func log(messages: Swift.String...)

// Вызов в Swift (теперь нативно!):
log(messages: "Error", "Warning", "Info")


⚠️ Ограничение: Generics в вариативных параметрах пока не поддерживаются в этом режиме.

#Kotlin #Swift #KMP
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍2
This media is not supported in your browser
VIEW IN TELEGRAM
🛠 JetBrains выпускает Air: IDE нового поколения с AI-агентами

JetBrains (создатели Kotlin и IntelliJ IDEA) официально вступают в гонку агентных IDE. Встречайте Air — полноценную Agentic Development Environment (ADE), а не просто очередной плагин.

В отличие от Cursor или Copilot, Air делает ставку на параллельную работу (хотя в Cursor 2.0 это завезли):
👉 Вы пишете основной код.
👉 Параллельно запускаете AI-агентов для фоновых задач (написать тесты, пофиксить баг, сделать рефакторинг).
👉 Агенты работают асинхронно, не блокируя ваш UI, а вы потом просто принимаете результат.

Air пока находится в раннем превью.
1. Только macOS: На данный момент скачать можно только версию для Mac (Windows/Linux позже).
2. Нужен ключ Anthropic: Air работает "под капотом" на моделях Claude, поэтому для использования вам потребуется собственный API-ключ Anthropic.

#JetBrains #AI
Please open Telegram to view this post
VIEW IN TELEGRAM
1🤔33👍137🔥2
🏝 Прощай K1, да здравствует K2

IDEA полностью переходит на Kotlin K2 режим работы компилятора и включение K1 потребует настройки, а вскоре станет невозможным

#idea #kotlin #k2
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
39🎉13👍7🔥6
🏝 Kotlin 2.3.0 сделал еще один шаг в сторону стабильного релиза
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32👍8
🏝 Kotlin 2.3.0 Stable! Вышла новая версия языка

Команда Kotlin выпустила финальную версию Kotlin 2.3.0. Обновление приносит новые стабильные возможности языка, улучшения производительности и поддержку новейших инструментов.

📢 Основные нововведения:
Язык: Больше стабильных функций, проверка неиспользуемых возвращаемых значений, явные backing field.
Kotlin/JVM: Поддержка Java 25.
Kotlin/Native: Улучшенный Swift export, ускорение сборки, импорт C/Objective-C библиотек (бета).
Kotlin/Wasm: Полные имена и новая модель исключений включены по умолчанию.
Kotlin/JS: Экспериментальный export suspend-функций, новое представление LongArray.
Gradle: Совместимость с Gradle 9.0, новый API для регистрации сгенерированных исходников.
Compose compiler: Стектрейсы для минифицированных Android-приложений.
Стандартная библиотека: Стабильные API для работы со временем и улучшенная работа с UUID.

📖 Подробнее на сайте

Каждую ключевую фичу подробно разберу в отдельном посте в канале @kotlin_broadcast. Следите за новостями!

#Kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍82
🏝 Explicit Backing Fields в Kotlin 2.3 — наконец-то избавимся от _property!

👋 Android-разработчики, а вас тоже раздражает этот вечный boilerplate со свойствами? Приватное _city, публичное city, постоянная путаница где что менять…

Kotlin 2.3.0 приносит экспериментальную, но долгожданную фичу — Explicit Backing Fields (явные поля свойств). Теперь можно забыть про лишние переменные!

Было (старый знакомый паттерн):
// Приватное, мутабельное
private val _city = MutableStateFlow<String>("")

// Публичное, read-only
val city: StateFlow<String> get() = _city

fun updateCity(newCity: String) {
_city.value = newCity
}


Стало (новый синтаксис):
val city: StateFlow<String>
// Явно указываем поле типа MutableStateFlow
field = MutableStateFlow("")

fun updateCity(newCity: String) {
city.value = newCity // Работаем напрямую с city!
}


🔥 Что изменилось?
- Исчезла дублирующая _city переменная
- Вся логика свойства теперь в одном месте
- Внутри класса компилятор автоматически делает smart-cast к типу поля
- Снаружи свойство остаётся StateFlow, внутри — MutableStateFlow

⚠️ Важно: фича экспериментальная! Добавьте в gradle.kts:
kotlin {
compilerOptions {
freeCompilerArgs.add("-Xexplicit-backing-fields")
}
}


📄 Подробности читайте в KEEP документе фичи

💬 Будете использовать сразу или подождёте стабильного релиза? А может, останетесь верны старому паттерну с _? 🤔

#Kotlin #AndroidDev #Kotlin23 #Android #KotlinDevelopment
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥94👍175👎2
🏝 Unused return value checker в Kotlin 2.3 — ловим скрытые баги в коде

Фича экспериментальная и требует включения через флаг комплиятора


Новая фича в Kotlin 2.3 помогает отлавливать баги, когда результат функции игнорируется, а должен быть обработан. А такое часто случается при рефакторинге или когда не читаешь документацию!

Пример проблемы:
fun formatGreeting(name: String): String {
if (name.isBlank()) return "Hello, anonymous user!"
if (!name.contains(' ')) {
// Ошибка: забыли return, просто создали строку
"Hello, " + name.replaceFirstChar(Char::titlecase) + "!"
}
val (first, last) = name.split(' ')
return "Hello, $first! Or should I call you Dr. $last?"
}


Такой код скомпилируется, но будет работать неправильно. С Kotlin 2.3 можно включить анализатор, который покажет предупреждение на строке с неиспользованным результатом и предотвратить баг на этапе написания кода

На текущем этапе жизни есть 2 варианта работы фичи:
1️⃣ Проверка работает только для функций, помеченных аннотацией @MustUseReturnValues:
kotlin {
compilerOptions {
freeCompilerArgs.add("-Xreturn-value-checker=check")
}
}

// Указываем что результат API требует обработки
@MustUseReturnValues
class DataValidator {
fun validate(input: String): ValidationResult
}


2️⃣Строгий режим - везде нужна обработка, даже если API не указало этого явно
kotlin {
compilerOptions {
freeCompilerArgs.add("-Xreturn-value-checker=full")
}
}


Как разрешить игнорирование:
- Аннотировать функцию @IgnorableReturnValue что не будет требовать проверки её значения:
// Функция, где результат часто не нужен
@IgnorableReturnValue
fun logEvent(event: String): Boolean {
return analytics.track(event) // результат обычно игнорируем
}

// Теперь можно вызывать без предупреждения
fun main() {
logEvent("screen_opened") // Нет ворнинга
}


- Использовать переменную _ для случаев, когда вы обрабатываете значения, но переменная вам не нужна:
computeValue() // ⚠️ предупреждение
val _ = computeValue() // явно игнорируем


📹 Подробный разбор от разработчика

💬 Будете использовать такой анализатор? Или считаете лишним контролировать каждый неиспользованный результат?

#Kotlin #Kotlin23
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👎64👍1
🏝 Cборка iOS исходников в KMP проектах ускорилась

Kotlin 2.3 приносит значительные улучшения производительности для Kotlin/Native. Релизные сборки (например, linkReleaseFrameworkIosArm64) теперь компилируются быстрее — в некоторых случаях до 40%.

Эти изменения особенно заметны в Kotlin Multiplatform проектах для iOS. Если вы собираете фреймворки под iOS или мак-бинарники, теперь это займёт меньше времени.

Что ускорилось:
- Задачи linkRelease* (сборка release-версий)
- Создание фреймворков для iOS
- Генерация нативных бинарников

Улучшения работают из коробки — не нужно менять код или настройки. Просто обновите Kotlin до версии 2.3.0.

Больше советов по ускорению Kotlin/Native в документации

💬 Делитесь в комментариях своими цифрами, если уже обновились до Kotlin 2.3

#Kotlin #Kotlin23 #KMP #KotlinNative #iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍52👎2
🎄 Итоги года @kotlin_broadcast

Подходит в концу 2025 год и уже совсем скоро 2026, где наш любимый Kotlin и KMP станут ещё лучше.

Вспоминаю, что такого сделали за этот год в Kotlin и выделить что-то сложно, но точно технология развивается, становится лучше и обрастает возможностями. Да, возможно каждому из нас хотелось, чтобы процесс был быстрее и экспериментальные фичи становились стабильными в более короткие сроки, но команда делает это во благо консистентности развития технологии.

Канал уходит на каникулы до начала 2026 года. Желаю вам классно провести каникулы, зарядится и продуктивно ворваться в 2026 год

💬 В комментариях делитесь чем для вас запомнился как касательно Kotlin, так и лично для каждого из вас
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👎83🎉1