В
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
Из того, что реально касается продакшн-кода - исправлена регрессия в 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
Вышло обновление компиляторного плагина 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
#KMP #CMP
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Суть библиотеки в том, что аннотируешь 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
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 действует на сайте и на OzonPlease open Telegram to view this post
VIEW IN TELEGRAM
Базовый interop
Flow → AsyncSequence в 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
👉 исключения при десериализации теперь всегда оборачиваются в
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
Please open Telegram to view this post
VIEW IN TELEGRAM
С 21 по 25 сентября пройдет Podlodka Android Crew. Организаторы конференции собрали сезон, в котором будет очень много свежего опыта, специфичного именно для мобильной разработки — это возможность обсудить актуальные задачи с опытными коллегами и ускорить свою работу.
Что ждёт слушателей сезона
Сезон практический — в результате можно будет забрать не только новые идеи, но и сразу начать использовать собственные наработки, сделанные в ходе пяти дней конференции.
Подробности о сезоне смотрите на сайте, и там же забирайте билеты.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM