Телеграм

Kotlin Multiplatform Broadcast

@kotlin_broadcast Программирование и разработка
РКН: проверяем Иноагент: проверяем
Новости и фичи Kotlin, а также Kotlin Multiplatform

YouTubе канал: https://youtube.com/androidBroadcast
Compose Multiplatform @compose_broadcast
iOS разработка @ios_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager

Статистика обновлена 12.11.2026 в 22:32 · 1 просмотр страницы · Хотите больше просмотров?

Подписчики9 496
Охват поста3 810 40% от подписчиков
ERR за месяц40,12%
ERR за 24 часа18,08%

Динамика за 30 дней

Рекламные публикации 1

Все рекламные посты →
Kotlin Multiplatform Broadcast tg9.5 тыс. подписчиков
Открыть пост ↗
🪑 Пока тесты прогоняются — позаботьтесь о спине

Октябрь — месяц эргономики. С 23 октября по 1 ноября включительно — выгода до -15% в Эргостол 🔥

Даже самый чистый код не спасёт, если после 8 часов за столом болит спина. Так что это хороший повод обновить рабочее место.

Что по скидкам:
💲 Дополнительные -10% по промокоду ANDROID10 на сайте Эргостол
🛒 Промокод также действует и на Ozon.

🎥 Посмотреть обзор кресла Экзо Флекс можно тут

#реклама
👁 3.8 тыс. 👍 1 ↻ 2 28 октября

Последние публикации

Все посты канала →
Kotlin Multiplatform Broadcast tg9.5 тыс. подписчиков
Открыть пост ↗
🏝 Вышел Kotlin 2.5.0-RC: пора прогнать 2.5 на своём проекте

11 ноября JetBrains выпустили первый релиз-кандидат Kotlin 2.5.0. Новой волны фич в RC нет: в этой сборке стабилизируют то, что пришло в Beta1 и Beta2, и чинят регрессии. Релиз-кандидат как раз для того, чтобы собрать свой проект и прислать баги до стабильной версии.

Что уже стабильно и работает без флагов, коротко было в обзоре Beta2. Проверка неиспользуемых результатов включена по умолчанию, деструктуризация по именам в режиме only-syntax стала режимом по умолчанию, стабильны улучшенные compile-time константы и @IntroducedAt.

Для KMP в RC остаются Swift export в Beta с новым DSL и инкрементальная компиляция на Apple-таргетах, уже включённая по умолчанию. Авторам библиотек новый формат публикации упаковывает платформенные артефакты, кроме JVM и Android, в один архив .kar, и набор файлов становится меньше. В Beta2 Gradle мог не включить в публикацию JS, Wasm и Native-таргеты, в RC это исправили.

Экспериментальные value-классы с несколькими полями никуда не делись. В 2.5 также можно объявлять companion-расширения и блоки companion {}: свойства и функции доступны через имя типа, даже если у него нет companion object. На JVM компилятор делает из них статические члены, и @JvmStatic не нужен.

data class Vector(val x: Double, val y: Double) {
companion {
val Zero = Vector(0.0, 0.0)
}
}

companion val Vector.UnitX get() = Vector(1.0, 0.0)

val start = Vector.Zero
val axis = Vector.UnitX


Это экспериментально и включается флагом -Xcompanion-blocks-and-extensions.

В RC кросс-модульный инлайнинг при сборке klib включён по умолчанию. Запуск компилятора на JDK ниже 17 уже даёт ошибку, как предупреждали: речь про JDK, которым крутится Gradle или kotlinc, а не про jvmTarget. Временно ошибку снимает -Xallow-pre-17-runtime-jdk, но к 2.5.20 или 2.6.0 этот обход уберут.

🔗 What's new in Kotlin 2.5.0-RC · Changelog

#Kotlin
👁 1.7 тыс. 👍 9🔥 2❤ 1 ↻ 5 вчера в 11:22
Kotlin Multiplatform Broadcast tg9.5 тыс. подписчиков
Открыть пост ↗
⚡️ 11.11: время покупать то, что давно откладывали!

Удобное кресло? Стол с регулировкой высоты? Компактное место для ноутбука?
Кажется, сейчас самое время воплотить эти планы в жизнь!

В Эргостол стартовали выгодные предложения:
🔥 Скидки до 20% до 15 ноября.
🎁 Дополнительная выгода с промокодом ANDROID10.

На что обратить внимание:
🪑 Кресло «Экзо Комфорт» — от 24 000 ₽.
🖥 Стол «Эргостол Старт 3.0» — до 20 000 ₽.
💻 Складной столик для ноутбука «Соло».

Обновляйте рабочее пространство и пользуйтесь моментом, чтобы купить выгоднее!
👉 Все предложения на сайте: https://abdev.by/Ui7Z
⏰ Только до 15 ноября. Не забудьте про ANDROID10!
👁 2.1 тыс. ↻ 4 10 ноября
Kotlin Multiplatform Broadcast tg9.5 тыс. подписчиков
Открыть пост ↗
💉 Inara: DI для KMP, который генерирует модули при компиляции

Многие в KMP-проектах обходятся без DI-фреймворка: описывают интерфейс-модуль с зависимостями и вручную пишут его реализацию для приложения и для тестов. Inara забирает эту ручную часть. Это KSP-процессор от Kodein Koders: вы помечаете интерфейс @DIModule, и он генерирует функцию, которая собирает модуль.

@DIModule
interface NetworkModule {
val baseUrl: String
fun httpClient(): HttpClient
}

val network = NetworkModule(
baseUrl = value("https://api.example.com"),
httpClient = single { HttpClient(baseUrl) },
)


В тестах тот же модуль собирается с другими биндингами, например provider { mocker.mock<HttpClient>() }. ViewModel про модули не знает: фабрика с @DIFactory(builds = ListViewModel::class, from = NetworkModule::class) создаёт её вызовом VMFactory.ListViewModel(network).

В отличие от Koin, контейнера во время работы приложения нет. Если зависимости нет в интерфейсе, код не скомпилируется, а берёте вы её по имени члена модуля, например network.httpClient(). Глобальные и изменяемые модули Inara не поддерживает намеренно.

🔗 Анонс Inara · GitHub

#Kotlin #KMP #DI
👁 2.2 тыс. ❤ 4 💬 1 ↻ 3 10 ноября