Kotlin Multiplatform Broadcast
9.48K subscribers
833 photos
53 videos
1.12K links
Новости и фичи Kotlin, а также Kotlin Multiplatform

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

#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥4
🚀 Вышел Ktor 3.2.2, который исправил работу на Android и другие минорные баги

#ktor #kotlin #android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍202
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 23 августа – Yandex Mobile Runtime!

Фестиваль для мобильных разработчиков от Яндекса. Забудь скучные доклады — бери ноутбук и погружайся в практику!

🚀 Главное событие: AI-хакатон!
Создай готовый продукт с ИИ-ассистентами за 5 часов. Экспертное жюри в лице Дмитрия Мовчана, руководителя мобильной разработки в Дзене, Геннадия Евстратова, руководителя проектов в Яндексе, Анны Жарковой, руководителя практики по мобильной разработке в Usetech, и др. выберет победителя! Регистрация на хакатон отдельная.

Еще крутое в программе:
⏺️ Воркшопы: ускорение приложений и MCP
⏺️ Карьера: консультации с лидами/сеньорами Яндекса
⏺️ Дискуссии: метрики, BDUI и другие темы от Городских сервисов
⏺️ Квиз по мобильной разработке

Отдохнуть и перезагрузиться в чилл-зонах от сервисов:
⚡️ Зона отдыха с настолками от Поиска и рекламных технологий
⚡️ Кастомный бар от Яндекс 360
⚡️ DJ-сет

Мидлы и сеньоры 👉 Регистрация открыта!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2🤔2🙏1
🏝 JetBrains снова принимает заявки на гранты для поддержки open source проектов для Kotlin

Подать заявку можно тут до 31 июля

Проекты получат гранты, если:
👉 Решают важную проблему в экосистеме Kotlin, особенно в KMP
👉 Быстро реагируют на баги, уязвимости и обновления Kotlin/библиотек
👉 Следуют лучшим практикам разработки библиотек
👉 Имеют понятный roadmap развития

#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍4
#вехи_истории
🗓 22.07.2011 — Релиз Kotlin

👩‍💻 Компания JetBrains представила новый статически типизированный JVM-язык программирования — Kotlin. Его разработка началась с целью устранить недостатки Java и предложить современный, лаконичный и безопасный язык для разработки серверных программ, Android‑приложений и многоплатформенных решений (в дальнейшем).

🏝 Kotlin получил имя в честь острова Котлин в Финском заливе. Язык с самого начала разрабатывался как open-source, что помогло ему быстро обрести популярность в сообществе. Одной из его ключевых особенностей стала интерпретируемость (совмесимость) с Java: проекты на Java могли легко интегрировать код на Kotlin без переписывания всего приложения.

👨‍💻 В 2017 году Google официально добавил Kotlin как язык для разработки Android, что стало переломным моментом в его истории. Сегодня Kotlin используется миллионами разработчиков, поддерживает серверные и веб‑приложения, а также активно развивается в направлении Kotlin Multiplatform, делая возможной разработку приложений для Android, iOS, Web и Desktop.

🩵 Всех, кто разрабатывает программы на Kotlin - с праздником)

📼 Истории известных разработчиков, которые не применяли ИИ-инструменты для создание чего-то нового - уже на канале:
1️⃣ Я - создатель Яндекса. Реальная история Ильи Сегаловича
YouTube | VkVideo

2️⃣ Удивительная история Android! Вы этого НЕ ЗНАЛИ
YouTube | VkVideo

3️⃣ Насколько ОПАСЕН ИИ?
YouTube | VkVideo

YouTube | VkVideo | Telegram | Pikabu
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉578👍8
Автор Kombinator рассказал о том как он делал архитектуру и реализацию библиотеки. Если кому интересно узнать про реализацию кодогенерации на KSP - читайте в статье(EN,6м).

🔗 Альтернативная ссылка

#kotlin
👍9
🏝 Kombinator - open source библиотека для генерации экземпляров Kotlin объектов со всеми возможными комбинациями значений из заданных.

Библиотека работает на основе генерации кода через KSP. Может быть полезна для тестов, чтобы проверять разные входные данные.

// Уровень класса @Kombine: Задает значения по умолчанию для свойств
// без аннотаций и без дефолтных значений property
@Kombine(
allPossibleIntParams = [100],
allPossibleStringParams = ["system"],
)
data class ScreenConfig(
// Аннотация на уровне свойства переопределяет уровень класса для 'theme'
@Kombine(allPossibleStringParams = ["light", "dark", "auto"])
val theme: String,

// Есть значение по умолчанию, Kombinator будет использовать ТОЛЬКО "portrait"
val orientation: String = "portrait",

// Нет аннотации @Kombine и значения по умолчанию.
// Будет использовать значение уровня класса: [100]
val padding: Int,

// Аннотация на уровне свойства переопределяет уровень класса для 'fontSize'
@Kombine(allPossibleIntParams = [12, 16, 20])
val fontSize: Int,

// Нет аннотации @Kombine и значения по умолчанию.
// Будет использовать значение уровня класса: ["system"]
val fontFamily: String,
)

#kotlin #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🏆2
Верим, что после нашего нового выпуска это миссия станет выполнимой ⚡️

В нём вместе с Ольгой Елисеевой, руководителем технической дирекции, «Инфосистемы Джет», обсудили:

📌Основные причины появления нового руководителя;
📌 Разницу выхода на новую позицию у лида и инженера;
📌 Способы вхождения в команду;
📌 Откат до инженера после опыта руководства;
📌 И многое другое!

Слушайте выпуск по ссылке на любой удобной платформе 😀

📺 Ютуб
🔵 ВК Видео
🎧 Mave
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62
🏝 Вышел Coil 3.3.0 - загрузчик картинок с поддержкой KMP

Что нового:
👉 Добавили новые API для задания ограничения потребления памяти, когда приложение в фоне
👉 SvgDecoder может работать со сторонними парсерами SVG
👉 Много минорных улучшений API
👉 Обновлени зависимостей

#kotlin #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22👍8
🏝 kotlinx.fuzz - библиотека для Fuzz тестирования Kotlin кода

Fuzz testing - это подход для автоматичекской генерации тестов со случайными или невалидными входными данными, чтобы проверить неожиданные ошибки и сценарии. Теперь есть официальное решение от JetBrains kotlinx.fuzz

@KFuzzTest
fun testDuration(f: KFuzzer) {
val isoString = f.asciiString(10)
val duration = Duration.parseIsoStringOrNull(isoString)
println("$isoString -> $duration")
}


#kotlin #тестирование
Please open Telegram to view this post
VIEW IN TELEGRAM
24👍10
Media is too big
VIEW IN TELEGRAM
📹 Coroutine Debugging in IntelliJ IDEA | Alexey Merkulov (EN,15м)

Подробный рассказ как в IDEA улучшали интеграцию между IDE и библиотекой Kotlin Coroutines для реализации дебага корутин как синхронного кода

#kotlin #coroutines #idea #kotlinconf25
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔94👍3
🏝 Использование inline, crossinline и reified в Kotlin может иметь ряд сложностей: сломанные стектрейсы, встраивание кода может повлиять негативно на код и другие. Подробнее читайте в статье

🔗 Альтернативная ссылка

#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🤯91🙏1
🏝 Вышла вторая Beta Kotlin 2.2.20

В свежей версии исправили баги и сделали улучшения в работе

#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20
🏝🦢 Kotlin-to-Swift экспорт теперь работает по умолчанию [EXPERIMENTAL]

Kotlin-to-Swift экспорт позволяет удобно использовать скомпилированный для Apple таргетов код из Swift удобным образом. Изменение добавили в Kotlin 2.2.20-Beta2

Ключевые фичи:
👉 Поддержка многомодульности: каждый Kotlin модуль - отдельный Swift модуль
👉 Поддержка пакетов в коде
👉 type alias теперь доступны из Swift
👉 Улучшения в nullability с примитивными типами
👉 Вызов перегруженных функций в Kotlin из Swift кода
👉 Можно изменить имя модуля

Фича всё ещё в экспериментальном режиме и для её включения надо выполнить ряд действий (подобно как раньше в XCode проект подключался KMP модуль)

#kotlin #swift #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🔥10🤔1
🏝 В Kotlin 2.2.20 упростили объявление common зависимостей KMP проекта

Теперь общие зависимости (common) можно объявить в dependencies блоке в kotlin {}
kotlin {
@OptIn(ExperimentalKotlinGradlePluginApi::class)
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2")
}
}

#kotlin #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
14🔥6🎉2👍1
Kotlin Multiplatform Broadcast
🏝 В Kotlin 2.2.20 упростили объявление common зависимостей KMP проекта Теперь общие зависимости (common) можно объявить в dependencies блоке в kotlin {} kotlin { @OptIn(ExperimentalKotlinGradlePluginApi::class) dependencies { implementati…
Вот тут много вопросов... Хочется чтобы объявление зависимостей было в корне проекта, как это делается со всеми другими:
// build.gradle.kts
dependencies {
commonImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2")
androidMainImplementation(...)
jvmImplementation(...)
}

но кажется, что из блока Kotlin им не уйти из-за конфликтов с другими объявлениями (не факт что причина такова)
👍11
В Kotlin Multiplatform проекте теперь можно шарить код между JS и wasmJs таргетами через общий source set - WEB.

Изменение доступно в Kotlin 2.2.20-Beta2

#kotlin #kmp
🔥116👍1
🏝 Kotlin 2.2.20-Beta2: кроссплатформенная компиляция без Mac* 🤯 [STABLE]

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

Mac всё ещё потребуется, если проект использует cinterop, CocoaPods или нужно собрать финальные бинарники для Apple. Подробности — в документации.

Если в gradle.properties добавляли kotlin.native.enableKlibsCrossCompilation=true, то теперь можно убрать

#kotlin #kmp #klib #native
Please open Telegram to view this post
VIEW IN TELEGRAM
🏆19👍52🤔1
🏝 В Kotlin 2.3.0 запретят использовать return без явного объявления возвращаемого типа в функции

В Kotlin 2.2.20-Beta2 можно попробовать новое поведение при использовании return - обязательное объявление возвращаемого типа функции. Новое поведение будет по умолчанию работать в Kotlin 2.3.0
//  Возвращаемый типы функции указан. Можно использовать return
fun getDisplayNameOrDefault(userId: String?): String =
getDisplayName(userId ?: return "default")

// Не компилируется. Используется return без явного указания возвращаемого типа функции
fun getDisplayNameOrDefault(userId: String?) =
getDisplayName(userId ?: return "default")


Готовимся к миграции после обновления языка. Всё во славу большей стабильности нашего кода

#kotlin #kotlin_2_3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64🤔26🤯7🏆4