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
🐱 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