Kotlin Multiplatform Broadcast
9.48K subscribers
838 photos
52 videos
1.13K links
Новости и фичи Kotlin, а также Kotlin Multiplatform

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

So, how do I write a Kotlin Symbol Processor (KSP)?

Не так давно Google представила своё собственное решение Kotlin Symbol Processing, которая призвана стать заменой KAPT и ускорить процессинг аннотаций на 30-50%. Автор статьи делится своим опытом написания процессора на новой технологии.
#kapt #ksp

Accelerated Kotlin build times with Kotlin Symbol Processing 1.0

Kotlin Symbol Processing - замена KAPT, которая быстрее и поддерживает не только JVM, но и Kotlin/JS и Kotlin/Native. Moshi и Room уже поддерживают KSP, очень жду когда Dagger подтянется
#ksp

Вышел Kotlinpoet 1.10.0 с поддержкой KSP и интеропом с JavaPoet
#kapt #ksp

Kotlin Symbol Processors (KSP)

KSP уже вышел в stable и вот JetBrains решила рассказать своё мнение. Говорят что он лучше, понимает синтаксис Kotlin и не нужно выполнять лишние шаги по сравнению с KAPT.

Главная новость - KAPT больше не будет развиваться и переходит в режим поддержки. Новые фичи будут только в KSP и других плагинах Kotlin компилятора. Про поддержку в IDE пока ничего не говорят.
#ksp

Android KSP guide for dummies by a Dummy: Part 1

Руководство по интеграции KSP вместо KAPT
👍11🔥1
Довольно хороший разбор Kotlin Symbol Processing (KSP) на русском:
👉 ограничения
👉 принципы работы
👉 запуск
👉 как происходит генерация кода
👉 инкрементальная генерация
👉 несколько раундов
👉 пример реализации собственного генератора кода

#ksp
👍33
Media is too big
VIEW IN TELEGRAM
🌩 Миграция с kapt на ksp 🌩

В новом выпуске "Охэхэнных историй" делимся нашим опытом отказа от kapt в пользу ksp для обработки аннотаций и ускорения скорости сборки в большом проекте.

Спойлер: было много боли, но у нас получилось ускорить сборку на 10%.

Внутри:

➡️ Что такое ksp
➡️ Почему мы решились на переход
➡️ Как проводили исследование
➡️ Что из этого получилось


👓 СМОТРЕТЬ

#Android
#Kotlin #KSP #KAPT
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19👎3
Статья с тестами Dagger c KSP. Стало лучше, но не значительно. Интересно еще увидеть картину по расходы оперативной памяти во время сборки

#ksp
👍17👎1
Вышел Jetpack Hilt 1.1.0 с поддержкой KSP

#ksp
👍63👎1
Forwarded from Android Broadcast (Кирилл Broadcast)
Показали первую превью KSP2 . Основные фичи:
👉 Использует K2 компилятор (нужно включать K2 компилятор в Kotlin)
👉 Новый отдельный генератор кода, который дает больше свободы и фичей по сравнению с текущим плагином Kotlin компилятора

Чтобы попробовать вам надо использовать KSP 1.0.14 или выше. Затем в gradle.properties добавить
ksp.useKSP2=true


В новой версии есть изменения в поведении API

#ksp #k2 #kotlin
👍13
Вышло обновление Koin Annotations 1.4
👉 Поддержка сканирования модулей сквозь Gradle модули. Раньше каждый работал отдельно
👉 Поддержка ViewModel в Compose с помощью аннотации @KoinViewModel
👉 Поддержка expect зависимостей из общего кода
👉 Объявление значений Koin Property через top level property в коде
👉 Улучшения проверки графа в момент компиляции кода
👉 Поддержка Kotlin WASM
👉 Поддержка модулей в object
👉 Поддержка Koin Type Qualifier

Пример с использованием свежей версии можно найти тут

Могу добавить что вот такое решение и сразу надо было нужно делать для DI на KMP, а не так много динамики давать. Объявление зависимостей в рантайме нужно не так много кому, зато можно повысить надежность работы с кодом.

Видео на тему косяков Koin я тоже уже готовлю 😁

#koin #di #ksp
🔥30👍8👎2🤬1
Помните про kotlin-inject ? Это DI для KMP аналогичный Dagger с проверкой графа во время компиляции, так вот для него сделали Anvil подобные расширения 😂 - kotlin-inject-anvil.

Вот почему сразу нельзя сделать из коробки оригинальной библиотеки всё ? Тем более она даже не вышла в версию в 1.0, а из моего опыта с ней ей реально нужны API улучшения

#di #kmp #ksp
👎16👍7
Kotlin Multiplatform Broadcast
KSP2 (нужен Kotlin 2.1)
Что еще за KSP2? Скорее всего сейчас вы используете KSP версии 1. Это переход на новую архитектуры для устранения моментов, который не способна закрыть первая реализация. Подробнее рассказал в посте на @android_broadcast

Kotlin 2.1 выйдет (ориентировочно конец 2024) уже с поддержкой KSP2, а первая версия будет deprecated и больше не поддерживается.

#Ksp
👍26
Пример (EN,8М) автоматизации генерации классов UI модели на основе параметров Composable функциb. Используется KSP для генерации кода

🔗 Ссылка без VPN

#kotlin #compose #ksp
👍10
🏝 Вышла KSP для Kotlin 2.1.20. Обновляйте версию до 2.1.20-1.0.31

#kotlin #ksp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22
Metro - Новый DI фреймворк на чистом Kotlin (ещё в разработке)

@DependencyGraph
interface AppGraph {
val httpClient: HttpClient

@Provides
private fun provideFileSystem(): FileSystem = FileSystem.SYSTEM
}

@Inject
class HttpClient(private val fileSystem: FileSystem)

@Inject
@Composable
fun App(circuit: Circuit)


#kotlin #di #ksp
👍35
Вышел KSP 2.0, который теперь работает на KSP2 по умолчанию. Теперь работает на K2 и отдельный генератор исходников с большей гибкостью

#kotlin #ksp
👍21
🏝 Вышел KSP 2.0.1 для Kotlin 2.1.20 Исправили баги в работе KSP2

#kotlin #ksp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
🏝 Вышел KSP 2.1.21-2.0.1 с поддержкой Kotlin 2.1.21

#kotlin #ksp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
Пока вы спали Google выпустила версию KSP, совместимую с Kotlin 2.2.10. Обновляйтесь до версии 2.2.10-2.0.2 и свежий Kotlin

#kotlin #ksp
🎉35👍3