Touchlab рекомендует(EN,9м) шарить не собранные бинарники под Kotlin/Native в KMP проектах, а полностью исходники потому что так разработчики iOS/macOS смогут полноценно отлаживать код и контрибьютить.
В Android/JVM такого не надо т.к. там обычно вмести с бинарником публикуется и исходный кода, а вот XCFramework таким не обладает (
#kmp #native @kotlin_broadcast
В Android/JVM такого не надо т.к. там обычно вмести с бинарником публикуется и исходный кода, а вот XCFramework таким не обладает (
#kmp #native @kotlin_broadcast
👍10🤔6👎1
Серия статей про устройство сборщика мусора в KMP
1️⃣ Как работает сборщик мусора в Android
2️⃣ Как работает сборка мусора в iOS и Kotlin/Native
#gc #underthehood #android #ios #native
#gc #underthehood #android #ios #native
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30👎3❤1
🎉 Предварительный просмотр новых возможностей языка
🚀 Поддержка инкрементальной компиляции для целей Wasm
Обновление версии LLVM до 16.0.0 для Kotlin/Native
#kotlin #compose #wasm #native
Please open Telegram to view this post
VIEW IN TELEGRAM
👍36🎉3
В Kotlin 2.1.20 добавили экспериментальную новый проход inline оптимизации, который по тестам JetBrains ускоряет работу кода в runtime на 9.5%
Чтобы попробовать надо передать компилятору опцию
-Xbinary=preCodegenInlineThreshold=40
#kotlin #native #производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42
Концепция строится вокруг модульной структуры для разделения API и реализации. Для DI по умолчанию используется kotlin-inject-anvil, для Presenter - Molecule, но можно заменить. UI слой может быть написан на удобном для вас UI фреймворке.
Для настройки требуется подключение Gradle плагина
На момент написания поста доступна версия 0.0.1
#kotlin #kmp #android #ios #web #desktop #jvm #native
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25
Вы знаете, что klib после компиляции Kotlin Native не содержит скомпилированный код, а только IR, который потребует компиляции каждый раз при сборке проекта? 🤯
Если вы хотите больше погрузиться в том как работает компиляция Kotlin Native, то советую изучить статью(EN,10м)
🔗 Альтернативная ссылка
#kotlin #native
Если вы хотите больше погрузиться в том как работает компиляция Kotlin Native, то советую изучить статью(EN,10м)
🔗 Альтернативная ссылка
#kotlin #native
👍16🤔2❤1
В новой бете 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
🏆23👍6❤3🤔1
Команда Kotlin обновляет дорожную карту каждые полгода, подводя итоги и планируя следующие шаги:
Compose Multiplatform
👉 Перевести Compose Multiplatform for Web в Beta
👉 Выпустить больше Jetpack библиотек для KMP. В первую очередь Navigation 3 и Paging 3
👉 Новый компонент для ввода текста на iOS с целью чтобы сделать его максимально нативным по виду и поведению
👉 Унификация Compose Preview аннотации (сейчас их 3 с разными пакетами)
Kotlin Multiplatform IDE плагин
👉 Поддержка работы плагина на Windows и Linux, но там не будет поддержки работы со Swift и сборки под Apple платформы
👉 Возможность просмотра документации подключенных Swift/Obj-C библиотек
👉 Поддержка Swift 6.2 и Xсode 2026
👉 Улучшение навигации и рефакторинга кросс языков
👉 Улучшение работы Compose Preview в common
Kotlin/Native и Kotlin/iOS
👉 Развитие Swift Export и стабильный релиз в 2026 году
👉 Поддержать Kotlin Coroutines и Flow в Swift Export
👉 Сокращение времени сборки
Kotlin/JS
👉 Автоматическое переключение на Kotlin/JS для Compose for Web, когда WASM таргет не работает
👉 Расширение возможностей JavaScript Export: suspend функции, value классы, typealias и другие
Kotlin/WASM
👉 Релиз Kotlin/WASM Beta
👉 Поддержка многомодульной компиляции для динамической загрузки
Инструменты для сборки
👉 Сделать конфигурацию Gradle сборки удобнее
👉 Упростить публикацию KMP библиотек
👉 Предоставление Build tools API для удобства интеграции с разными билд системами
👉 Ускорение сборки и процесса импорта проекта в Gradle
#kotlin #compose #wasm #ios #native #gradle #idea #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥37👍6❤4
readline4k - Kotlin/Native библиотека для разработки консольных интерактивных приложений для Desktop
#kotlin #native #cli
val history = "history.txt" // Filesystem path to the history file.
// Configure the LineEditor.
val config = LineEditorConfig(
maxHistorySize = 100,
completionType = CompletionType.LIST,
// See the documentation for more options.
)
// Create a new LineEditor instance.
val editor = SimpleLineEditor(
linePrefix = "> ",
config = config,
).also { editor ->
// Set up the completer and highlighter.
editor
// Provides file completion (optional).
.withCompleter(SimpleFileCompleter())
// Provides color highlighting (optional).
.withHighlighter(SimpleHighlighter())
// Load the history from the disk (throws LineEditorError if it fails).
editor.loadHistory(history).getOrThrow()
}
println("Welcome to the LineEditor example!")
println("Press Ctrl+C to exit")
while (true) {
// Read a line from the user.
editor.readLine()
.onFailure { err ->
// err is a LineEditorError
println(err.message)
break
}
.onSuccess { line ->
// We can also add the line to the history
// automatically by setting autoAddHistory = true in the config.
editor.addHistoryEntry(line)
println(line)
}
}
// Save the history to disk.
editor.saveHistory(history)
#kotlin #native #cli
👍19