#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31👍5🎉4
Пока вы спали Google выпустила версию KSP, совместимую с Kotlin 2.2.10. Обновляйтесь до версии 2.2.10-2.0.2 и свежий Kotlin
#kotlin #ksp
#kotlin #ksp
🎉36👍3
Если вам интересно попробовать KMP под Аврора ОС, то вы можете сделать это. Наработки открыты в официальном репе: примеры, библиотеки, документация и QT биндинги.
Работа Kotlin кода на Аврора ОС происходит через нативный код под Linux таргет.
Адаптация Compose для Аврора идёт полным ходом и будет доступно в 2026 году. Я видел запущенный пример простого Compose приложения, и текущий статус работ вселяют большую уверенность в хорошем результате!
То что разработчики ОС стали делать фокус на популярных в мобильном сообществе инструментах - большой плюс. Уже есть Flutter для Аврора ОС, скоро будет еще возможность работать с KMP + Compose. Это явно даст буст для ускорения переноса существующих приложений и кодовой базы.
#kotlin #compose #auroraos
Please open Telegram to view this post
VIEW IN TELEGRAM
❤31🤔16🔥15
🤯 Какой AI лучше для написания Kotlin кода (спойлер - GPT5 )
Ребята из Firebender (позиционируют свой продукт как Cursor для Android Studio) сделали Kotlin-bench - специализированный бенчмарк, который проверяет LLM и AI агентов на 100 реальных задачах для Kotlin и Android разработки.
Причина разработки - AI инструменты для Kotlin и Android по сравнению с fullstack и Python разработкой развиты хуже.
Результаты вполне ожидаемые - лидерами стали последние поколения доступных моделей: GPT-5 с отрывом от Claude Sonnet 4. Хотелось бы увидеть оценку Qwen Code, но её в бенчмарк не включили.
Подробнее с результатами можно ознакомиться тут. Анонс и методология в анонсе
#android #kotlin #ai
Ребята из Firebender (позиционируют свой продукт как Cursor для Android Studio) сделали Kotlin-bench - специализированный бенчмарк, который проверяет LLM и AI агентов на 100 реальных задачах для Kotlin и Android разработки.
Причина разработки - AI инструменты для Kotlin и Android по сравнению с fullstack и Python разработкой развиты хуже.
Результаты вполне ожидаемые - лидерами стали последние поколения доступных моделей: GPT-5 с отрывом от Claude Sonnet 4. Хотелось бы увидеть оценку Qwen Code, но её в бенчмарк не включили.
Подробнее с результатами можно ознакомиться тут. Анонс и методология в анонсе
#android #kotlin #ai
🤔26👍9❤2🤯1
Стокнулся с open source проектом для возможности конфигурирования Gitlab CI через Kotlin DSL вместо YAML.
// Пример конфигурации
// Файл .gitlab-ci.main.kts в корне проекта
#!/usr/bin/env kotlin
@file:DependsOn("dev.opensavvy.gitlab:gitlab-ci-kotlin-jvm:VERSION-HERE") // See https://gitlab.com/opensavvy/automation/gitlab-ci.kt/-/releases
import opensavvy.gitlab.ci.*
import opensavvy.gitlab.ci.script.*
val pipeline = gitlabCi {
val test by stage()
val helloWorld by job(stage = test) {
script {
shell("echo 'Hello world'")
}
}
}
pipeline.println()
Я конечно люблю Kotlin, но вот не везде он нужен и может только усложнить всё. YAML файлы прекрасно подходят для описания конфигурации, без лишних сложный конструкций и свободы. Всё четко и под делу!
На ваш взгляд, где будет удобно применение Kotlin помимо разработки приложений?
#kotlin #gitlab
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🤔11❤1🔥1
// Пример OrbitMVI
class CalculatorViewModel: ContainerHost<CalculatorState, CalculatorSideEffect>, ViewModel() {
// Include `orbit-viewmodel` for the factory function
override val container = container<CalculatorState, CalculatorSideEffect>(CalculatorState())
fun add(number: Int) = intent {
postSideEffect(CalculatorSideEffect.Toast("Adding $number to ${state.total}!"))
reduce {
state.copy(total = state.total + number)
}
}
}
#kmp #mvi #android #ios #desktop
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17🤔9👍6❤2
Команда 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
🔥40👍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
👍25
Google анонсировала официальный Gradle-плагин com.android.kotlin.multiplatform.library для настройки Android-таргета в Kotlin Multiplatform (KMP). Это станет стандартом для будущей разработки KMP-библиотек.
➡️ Зачем нужен отдельный плагин?
🛠 Простота конфигурации: Упрощение настройки KMP-проектов под Android в Gradle.
⚖️ Чем отличается от обычного com.android.library?
Новый плагин заточен именно под библиотеки и лишён избыточных функций:
❌ Нет поддержки множественных вариантов сборки (productFlavors)
❌ Нет поддержки C/C++, AIDL, RenderScript
❌ Нет встроенных возможностей View Binding, Data Binding
❌ Тесты и Android-ресурсы отключены по умолчанию
❌ Компиляция Java отключена по умолчанию (но есть опция включения)
// Пример конфигурации в Gradle Kotlin DSL
plugins {
alias(libs.plugins.kotlin.multiplatform) // Kotlin 2.0+
alias(libs.plugins.android.kotlin.multiplatform.library) // AGP 8.10+
}
// Такого DSL больше не будет для Android KMP библиотеки
android {}
kotlin {
androidLibrary {
namespace = "dev.androidbroadcast.kmplib"
compileSdk = 36
minSdk = 24
enableAndroidResources = true // Включение ресурсов
withJava() // Включение Java
// Настройка тестов для хоста (JVM)
withHostTestBuilder { }
// Настройка инструментальных тестов на устройстве
withDeviceTestBuilder {
sourceSetTreeName = "test"
}
compilations.configureEach {
compilerOptions.configure {
jvmTarget.set(JvmTarget.JVM_21)
}
}
}
sourceSets {
androidMain { ... }
androidHostTest { ... }
androidDeviceTest { ... }
}
}
💬 Что думаете о новом плагине? Уже успели попробовать? Делитесь мнением в комментариях!
#android #kmp #kotlin #gradle #news
Please open Telegram to view this post
VIEW IN TELEGRAM
🏆29🎉10👍8🤔3
Что нового:
👉 Улучшили определение перегрузок методов с suspend лямбдами
👉 Kotlin-to-Swift export доступен по умолчанию
👉 Шаринг кода между JS и wasmJS таргетами
👉 Стабильная кроссплатформенная компиляция для Kotlin библиотек
👉 Таргет Kotlin/WASM перешел в статус Beta
👉 Kotlin/Native: Поддержка stack canaries в бинарних для меньшего размера итого бинарнки
👉 Прокачали возможности Kotlin Contracts: поддержка Generic, возможность использования в get/set функция property, новые контракты
Много всего полезного, буду рассказывать отдельно по мере изучения
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
❤23👍8
embedAndSignAppleFrameworkForXcode
-> embedSwiftExportForXcode
./gradlew :<Shared module>:embedSwiftExportForXcode
Флаг
kotlin.experimental.swift-export.enabled
можно удалить из gradle.properties, потому что c версии Kotlin 2.2.20 фича включена по умолчанию#kotlin #xcode #swift #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍6❤1
Forwarded from Compose Broadcast
Подкючайте артефакт
org.jetbrains.androidx.navigation3:navigation3-ui:1.0.0-alpha01
в common код и можете пробоватьЖдем актуализации до свежей альфа версии, а также адаптивные layout и интеграцию с ViewModel
#compose #kmp #naviation #jetpack
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥36👍7🤔4
Forwarded from Android Broadcast
This media is not supported in your browser
VIEW IN TELEGRAM
❤43🔥16👍5
Ktor Framework
WhatsNew 3.3
Kotlin Server and Client Framework for microservices, HTTP APIs, and RESTful services
#kotlin #ktor
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30❤2🙏1
SqlDelight AndroidX Driver - реаилзация драйвера для SqlDelight, который построен на основе библиотеки androidx.sqlite из Jetpack
#android #kmp #sqlite
Database(
AndroidxSqliteDriver(
driver = BundledSQLiteDriver(),
type = AndroidxSqliteDatabaseType.File("<path to db file>"),
schema = Database.Schema,
)
)
#android #kmp #sqlite
❤12👍6
Media is too big
VIEW IN TELEGRAM
Простая и понятная демонстрация как сделать своего AI агента, используя фреймворк Koog от JetBrains.
#kotlin #ai
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19👍10🔥2
SourceCraft встроили ИИ-агент в платформу
Недавно я был на Big Tech Night и слушал доклад о том, как ИИ становится частью инструментов разработчика. Прогнозы прогнозами, а вот и первый в России пример, когда ИИ — не просто помощник, а полноценный агент внутри целой платформы. 🚀
Яндекс анонсировал релиз обновленной SourceCraft. И это не просто «еще одна фича». Теперь это первая платформа в России, где ИИ-агент встроен в весь цикл создания ПО — от проработки идеи до деплоя в продакшен.
Что это меняет на практике?
Представьте, что у вас есть задача. Вместо того чтобы самому копаться в репозиториях, писать код, тестировать и настраивать деплой, вы можете дать задание ИИ-агенту. Он сам:
⏺️ Создаст репозиторий.
⏺️ Напишет код.
⏺️ Сгенерирует автотесты.
⏺️ Проверит безопасность.
⏺️ Подготовит пул-реквест.
⏺️ Проведет ревью
⏺️ Сделает публикацию/деплой
По сути, он берет на себя всю рутину. А вы выступаете в роли архитектора или тимлида, который контролирует процесс.
🔥 А если нужно поработать руками? Хорошо обновили Code Assistant. Он теперь умнее: не просто предлагает код, но и отслеживает, где используется функция, которую вы редактируете, и сразу предлагает готовые правки для всех этих мест. Появился режим Агента, а также возможность подключения внешние LLM моделей и MCP-серверов (пока только в VSCode)
☄️ Что еще крутого в обновлении?
👉 Облако и CI/CD без боли: Платформа полностью заточена под облако. Настройка доступа к сервисам в CI/CD происходит автоматически, без возни с ключами.
👉 Безопасность с первого шага: Система сразу сканирует код на предмет «утечек» — паролей, API-ключей — еще до того, как они попадут в коммит.
👉 Поддержка GitHub Actions: Переносите проекты на SourceCraft, и ваши workflow автоматически преобразуются в формат платформы.
Разработка меняется на основе ИИ, как и инструменты для работы с кодом, это нужно принимать, адаптировать и применять, чтобы становиться продуктивным, а значит востребованным.
❗️ Попробуйте обновленный набор ИИ инструментов от SourceCraft в своих задачах и делитесь впечатлениями в комментариях
#ai #яндекс
Недавно я был на Big Tech Night и слушал доклад о том, как ИИ становится частью инструментов разработчика. Прогнозы прогнозами, а вот и первый в России пример, когда ИИ — не просто помощник, а полноценный агент внутри целой платформы. 🚀
Яндекс анонсировал релиз обновленной SourceCraft. И это не просто «еще одна фича». Теперь это первая платформа в России, где ИИ-агент встроен в весь цикл создания ПО — от проработки идеи до деплоя в продакшен.
Что это меняет на практике?
Представьте, что у вас есть задача. Вместо того чтобы самому копаться в репозиториях, писать код, тестировать и настраивать деплой, вы можете дать задание ИИ-агенту. Он сам:
По сути, он берет на себя всю рутину. А вы выступаете в роли архитектора или тимлида, который контролирует процесс.
👉 Облако и CI/CD без боли: Платформа полностью заточена под облако. Настройка доступа к сервисам в CI/CD происходит автоматически, без возни с ключами.
👉 Безопасность с первого шага: Система сразу сканирует код на предмет «утечек» — паролей, API-ключей — еще до того, как они попадут в коммит.
👉 Поддержка GitHub Actions: Переносите проекты на SourceCraft, и ваши workflow автоматически преобразуются в формат платформы.
Разработка меняется на основе ИИ, как и инструменты для работы с кодом, это нужно принимать, адаптировать и применять, чтобы становиться продуктивным, а значит востребованным.
#ai #яндекс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🤔8❤3🔥3
enum class UserRole { ADMIN, MEMBER, GUEST }
fun getPermissionLevel(role: UserRole): Int {
// Проверяем один кейс из Enum до работы с when
if (role == UserRole.ADMIN) return 99
return when (role) {
UserRole.MEMBER -> 10
UserRole.GUEST -> 1
// С Kotlin 2.2.20 не надо добавлять else,
// так как кейс уже был проверен выше
// else -> throw IllegalStateException()
}
}
Фича экспериментальная и требует включения через опции
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍67🔥25🤔16❤1
Разработчик демонстрирует как из KMP кода вызывать API из macOS на примере реализации синхронизации данных через iCloud. Всё сводится к тому,
#kotlin #macos
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🤯5❤2
Также обновили панель "Koin Конфигурация", чтобы проще отыскать ошибки в настройке. Также стала проще навигация и появилась группировка по модулям.
🛠 Конечно же, внесли улучшения в скорость работы и исправили баги.
#kotlin #koin #di
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤22🤔6👍2🤯1