🔥 На конференции по Аврора ОС объявили о поддержки 🏝 Kotlin Multiplatform и в скоро будущем будет работать и ⚙️ Compose Multiplatform
Как только станет доступно попробовать - подключу в свой проект Frame.io
Источник - @AuroraDevelopers
#kmp #аврораос
Как только станет доступно попробовать - подключу в свой проект Frame.io
Источник - @AuroraDevelopers
#kmp #аврораос
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍46
На сайте издательства Питер доступна бумажная и электронные версии. Скоро устрою розыгрыш пару таких книг, так что подождите немного с покупкой
Скриншоты оглавления в комментариях 🔽
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83
Коллеги из ОМП поделились со мной презентаций по KMP. Что самое важное
👉 Появится Gradle плагин для добавления Aurora таргета в KMP проекты
👉 Будут сделаны QT Binding чтобы пользоваться нативными API из KMP кода
👉 ОМП сделают версии популярных KMP библиотек под Аврора с публикацией в собственном Maven репо
👉 Compose Multiplatform в работе и покажут в 2026
#kotlin #аврораос
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍20
В Kotlin 2.2 в Beta статусе появится фича - Context parametrs, которая заменяет Context receivers (будут удалены в Kotlin 2.3)
// Пример Context parameters из Kotlin 2.2
interface Type {
context(analysisScope: AnalysisScope)
val isNullable: Boolean = ...
}
context(analysisScope: AnalysisScope)
fun Type.equalTo(other: Type): Boolean = ...
context(_: AnalysisScope)
val Type.isBoolean: Boolean get() = this.equalTo(BuiltIns.Boolean)
Всем разработчикам рекомендуется выполнить миграцию (будет автоматическая замена из IDE)
Делитесь в комментариях своими сценариями применения новой возможности языка
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28🔥1
Kotlin Multiplatform Broadcast
Чем отличается Context Parametr от Receiver Type в Extension fun
👉 Context Parameter может быть больше чем один
👉 Context Parameter позволяет задавать имена. Имя context parametr _ - это аналог использования this
Заявляется API compatibility при миграции на Context Parameter
#kotlin
👉 Context Parameter может быть больше чем один
👉 Context Parameter позволяет задавать имена. Имя context parametr _ - это аналог использования this
Заявляется API compatibility при миграции на Context Parameter
un <E> Raise<E>.foo() = ...
// станет
context(_: Raise<E>) fun <E> foo() = ...
Пора сделать разбор и выложить видео
#kotlin
👍38
Из самого важного:
👉 Новый режим будет по умолчанию включен в Idea 2025.1 (и Android Studio Narwhal)
👉 K2 позволяет ускорить работу c Kotlin в IDE
👉 Новые фичи языка в IDE уже только поддерживают K2 режим
По тем плагинам что использую я для Android и KMP разработки в Android Studio Meerkat FD 2024.3 уже все работают с K2. Пробуйте и вы, а затем делитесь мнением в комментариях
#kotlin #k2 #idea
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
This media is not supported in your browser
VIEW IN TELEGRAM
Кто пользуется Kotlin Notebook расскажите про сценарии применения в комментариях
#kotlin #idea
Please open Telegram to view this post
VIEW IN TELEGRAM
👍49
val result: Result<Int> = runCatching {
// Код, который может выбрасывать исключения
10 / 2
}
🔗 Альтернативная ссылка
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
KotlinX Fuzz - новая библиотека для fuzz тестирования на Kotlin от JetBrains
#kotlin #тестирование
Фаззинг (fuzz testing или fuzzing) — это техника тестирования программного обеспечения, при которой приложению на вход передаются неправильные, неожиданные или случайные данные. Основная цель такого тестирования — выявление ошибок в работе программы
// Пример Fuzz теста
@KFuzzTest
fun testDuration(f: KFuzzer) {
val isoString = f.asciiString(10)
val duration = Duration.parseIsoStringOrNull(isoString)
println("$isoString -> $duration")
}
// Конфигурация теста в Gradle KTS
fuzzConfig {
instrument = listOf("kotlin.time.**")
maxFuzzTimePerTarget = 10.minutes
coverage {
reportTypes = setOf(CoverageReportType.HTML, CoverageReportType.CSV)
}
}
#kotlin #тестирование
👍22