Kotlin Multiplatform Broadcast
9.56K subscribers
911 photos
56 videos
1.26K links
Новости и фичи Kotlin, а также Kotlin Multiplatform

YouTubе канал: https://youtube.com/androidBroadcast
Compose Multiplatform @compose_broadcast
iOS разработка @ios_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager
Download Telegram
🏝 Kotlin/Native в 2.4.20 включает инкрементальную компиляцию klib по умолчанию

В Kotlin 2.4.20-Beta1 включали инкрементальную компиляцию Native: теперь пересобираются только затронутые части klib. На debug-сборках KMP это должно заметно резать время, а это ровно та боль, из-за которой iOS-таргет не хочется перезапускать лишний раз.

Есть честная оговорка от самих JetBrains ⚠️: за инкрементальность можно высоко заплатить временем ожидания на clean-сборках. Лучше отключайте флагом на CI/CD :
kotlin.incremental.native=false


Попробуйте померять результат на своём проекте и делитесь в комментариях

#Kotlin #KMP #KotlinNative
Please open Telegram to view this post
VIEW IN TELEGRAM
🏝 Всем, кто ждал Kotlin 2.4.10 для обновления на новую версию языка — обновляйтесь!

Из того, что реально касается продакшн-кода - исправлена регрессия в Compose Compiler: классы, которые раньше считались stable, в 2.4.0 иногда определялись как runtime/Uncertain.

Если недавно обновились на 2.4.0 и столкнулись со странными лишними рекомпозициями — обновляйтесь на новую версию.

#Kotlin #Compose
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
💉 Вышел Koin Compiler Plugin 1.1.0

Вышло обновление компиляторного плагина Koin для валидации графе в момент компиляции. Главное — переработали механизм compile-time проверки графа, чтобы он стал надёжнее и точнее.

Раньше плагин проверял каждый модуль по отдельности. Это давало ложные ошибки в многомодульных проектах, когда зависимость предоставлялась в другом модуле. Теперь единственный источник истины — полная проверка графа в точка запуска (startKoin / koinApplication / @KoinApplication). Плагин смотрит только на финальный граф.

Результат:
👉 Меньше ложных ошибок "Missing Dependency"
👉 Ошибки точнее указывают на реальный модуль и место в коде
👉 Проверка стала качественнее и предсказуемее

Также в релизе исправили баги и улучшили работу анализатора.

// build.gradle.kts
plugins {
// Работает с Koin 4.2.0+ и Kotlin 2.3.0–2.3.10
id("io.insert-koin.compiler.plugin") version "1.1.0"
}


#koin #Kotlin #KMP
Please open Telegram to view this post
VIEW IN TELEGRAM
🐱 Pokedex KMP - open source порт популярного примера для Android, но переведенного на KMP + CMP стек под Android, iOS, Desktop и WASM

#KMP #CMP
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🐱 Valix — валидация на KSP без рефлексии и с ~9× скоростью

Суть библиотеки в том, что аннотируешь data-класс, KSP генерирует обычный процедурный Kotlin-валидатор в build/generated/ksp/. Никакой рефлексии, никаких правил ProGuard, zero cold-start.

data class CreateUserRequest(
@NotBlank val username: String,
@Email val email: String,
@Min(18) val age: Int,
@Sensitive(mask = "[REDACTED]") @MinLength(8) val password: String
)

val result = CreateUserRequestValidator.validate(request)


По JMH: ~7,8–8,5 млн ops/sec против ~0,9 млн у Hibernate Validator. Есть fail-fast, @ValidateIf, маскирование чувствительных полей, DSL без аннотаций, экспорт OpenAPI/JSON Schema.

Для Android/Compose — valix-compose с rememberValixForm() и ValidatedTextField. Плюс адаптеры под Spring, Ktor, Micronaut, Flow и ViewModel. KMP: JVM, Android, iOS, JS, Wasm.

*Подход мне нравится тем, что можно декларативно работать с валидацией, перестать писать код и тесты под это, а также интегрировать с Android Lint для проверок заранее.*

#Kotlin #KSP #KMP #Compose
Please open Telegram to view this post
VIEW IN TELEGRAM
Kotlin — почти единственный язык, на который переходят потому что хочется

JetBrains выложили разбор реальных миграций языков из опроса Developer Ecosystem 2025 (не «планирую перейти», а «чем писал год назад → чем пишу сейчас»).

Главный паттерн ожидаемый: большинство переездов — это project requirements. Надо — идёшь.

А вот Kotlin выбивается. На него люди переходят не потому что заставили, а потому что «feels better to work with» — лучше DX и более современные фичи. Это редкий чистый pull среди языков.

Другие цифры, которые зацепили:
👉 C теряет ~50% тех, у кого он был основным год назад. Часто формулировка «хотел выучить что-то новое» + «более современные фичи». Язык явно стареет в глазах разработчиков.
👉 Java в основном течёт в Python и TypeScript. Поток Java → Kotlin слабее, чем многие ожидали (и есть обратные переезды).
👉 Классический конвейер: HTML/CSS → JavaScript → TypeScript.
👉 Python — универсальный «приёмник» почти отовсюду.
👉 TypeScript и Rust — самые быстрые растущие.

Kotlin продолжает выигрывать не решением компании, а тем, что на нём реально приятнее писать. Это сложнее масштабировать маркетингом, но гораздо устойчивее.

🔗 Полный разбор с таблицами потоков в разборе

#Kotlin
Лето прошло. Вместо пляжа — клавиатура. Дети учатся, а мы — пашем в спринтах. Результат: спина колесом, шея каменная, мозг в режиме «только не упади».

Единственный правильный апгрейд в этом сезоне — Эргостол.
Это не просто стол и кресло. Это оружие против остеохондроза:
— Регулировка за минуту.
— Работай стоя — качай спину без отрыва от продакшна.
— Полный порядок на столе (кронштейны, каналы, крепления).

В новом учебном году заботься о себе по-взрослому.

🤩 Промокод -10% ANDROID10 действует на сайте и на Ozon
Please open Telegram to view this post
VIEW IN TELEGRAM
🏝 SKIE: StateFlow в SwiftUI без `.task` и обёрток

Базовый interop FlowAsyncSequence в SKIE уже давно. Теперь поверх него добавили preview-слой под SwiftUI (в превью). Shared не трогаешь, тот же StateFlow.

class RandomColorViewModel {
private val _color = MutableStateFlow(UIColor.gray)
val color: StateFlow<UIColor> = _color.asStateFlow()

fun randomize() {
_color.value = UIColor(
red = Random.nextDouble(),
green = Random.nextDouble(),
blue = Random.nextDouble(),
alpha = 1.0
)
}
}


Без хелперов на iOS это всё ещё .task + ручной @State. С preview-API экран выглядит так:

struct ColorScreen: View {
let viewModel: RandomColorViewModel
@State private var color: Color = .gray

var body: some View {
ColorSample(color: color, onRandomize: viewModel.randomize)
.collect(flow: viewModel.color, into: $color) { Color($0) }
}
}


Или без @State — flow сразу кормит view:

struct ColorScreen: View {
let viewModel: RandomColorViewModel

var body: some View {
Observing(viewModel.color, animation: .default) { color in
ColorSample(
color: Color(color),
onRandomize: viewModel.randomize
)
}
}
}


Включается так:

//build.gradle.kts
skie {
features {
enableSwiftUIObservingPreview = true
}
}


В Kotlin to Swift Export interop корутин только догоняет. У SKIE базовый interop уже в бою, а collect / Observing — свежий preview поверх него.

🔗 Источник - блог Touchlab

#KMP #Kotlin #Touchlab #Swift #SwiftUI
Please open Telegram to view this post
VIEW IN TELEGRAM
🏝 Готовится kotlinx.serialization 1.12.0. Вышла первая RC: стабилизировали JSON API и улучшили работу с ошибками

👉 исключения при десериализации теперь всегда оборачиваются в JsonException / JsonDecodingException с путём и куском JSON. catch перестаёт ловить рандом из конструктора кастомного сериализатора
👉 лимит вложенности JSON: вместо StackOverflow получишь нормальный JsonDecodingException
👉 парсер ASCII ближе по производительности к String на Okio / kotlinx-io
👉 Protobuf: ProtoUnknownFieldHolder сохраняет неизвестные поля и отдаёт их обратно. Плюс фикс oneof default и schema для inline value class
👉 CBOR: меньше памяти на коллекциях известного размера, unsigned как положительные int

#Kotlin #KMP
Please open Telegram to view this post
VIEW IN TELEGRAM
🏝 Kotlin 2.4.20 вышел. Те кто знает зачем - обновляйтесь, позже расскажу что там полезного

#Kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Podlodka Android Crew: Android × AI: новый workflow разработки

С 21 по 25 сентября пройдет Podlodka Android Crew. Организаторы конференции собрали сезон, в котором будет очень много свежего опыта, специфичного именно для мобильной разработки — это возможность обсудить актуальные задачи с опытными коллегами и ускорить свою работу.

Что ждёт слушателей сезона

🤖 эффективный AI-пайплайн для Android: от дизайна до отладки и тестирования,
⚙️ настройка агента для предсказуемых результатов в мобильной разработке,
🔥 профилирование агентом: как делать это в 3 раза дешевле,
⭐️ необычные задачи, и как научить агентов их решать автономно.

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

Подробности о сезоне смотрите на сайте, и там же забирайте билеты.

👉 Билеты на Podlodka Android Crew

По промокоду BROADCAST16 получите скидку🎁
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM