#KSP
So, how do I write a Kotlin Symbol Processor (KSP)?
Не так давно Google представила своё собственное решение Kotlin Symbol Processing, которая призвана стать заменой KAPT и ускорить процессинг аннотаций на 30-50%. Автор статьи делится своим опытом написания процессора на новой технологии.
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 подтянется
Accelerated Kotlin build times with Kotlin Symbol Processing 1.0
Kotlin Symbol Processing - замена KAPT, которая быстрее и поддерживает не только JVM, но и Kotlin/JS и Kotlin/Native. Moshi и Room уже поддерживают KSP, очень жду когда Dagger подтянется
#kapt #ksp
Kotlin Symbol Processors (KSP)
KSP уже вышел в stable и вот JetBrains решила рассказать своё мнение. Говорят что он лучше, понимает синтаксис Kotlin и не нужно выполнять лишние шаги по сравнению с KAPT.
Главная новость - KAPT больше не будет развиваться и переходит в режим поддержки. Новые фичи будут только в KSP и других плагинах Kotlin компилятора. Про поддержку в IDE пока ничего не говорят.
Kotlin Symbol Processors (KSP)
KSP уже вышел в stable и вот JetBrains решила рассказать своё мнение. Говорят что он лучше, понимает синтаксис Kotlin и не нужно выполнять лишние шаги по сравнению с KAPT.
Главная новость - KAPT больше не будет развиваться и переходит в режим поддержки. Новые фичи будут только в KSP и других плагинах Kotlin компилятора. Про поддержку в IDE пока ничего не говорят.
👍11🔥1
Довольно хороший разбор Kotlin Symbol Processing (KSP) на русском:
👉 ограничения
👉 принципы работы
👉 запуск
👉 как происходит генерация кода
👉 инкрементальная генерация
👉 несколько раундов
👉 пример реализации собственного генератора кода
#ksp
👉 ограничения
👉 принципы работы
👉 запуск
👉 как происходит генерация кода
👉 инкрементальная генерация
👉 несколько раундов
👉 пример реализации собственного генератора кода
#ksp
👍33
Forwarded from Охэхэнные новости
Media is too big
VIEW IN TELEGRAM
В новом выпуске "Охэхэнных историй" делимся нашим опытом отказа от kapt в пользу ksp для обработки аннотаций и ускорения скорости сборки в большом проекте.
Спойлер:
#Android #Kotlin #KSP #KAPT
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19👎3
👍17👎1
👍63👎1
Forwarded from Android Broadcast (Кирилл Broadcast)
Показали первую превью KSP2 . Основные фичи:
👉 Использует K2 компилятор (нужно включать K2 компилятор в Kotlin)
👉 Новый отдельный генератор кода, который дает больше свободы и фичей по сравнению с текущим плагином Kotlin компилятора
Чтобы попробовать вам надо использовать KSP 1.0.14 или выше. Затем в
В новой версии есть изменения в поведении API
#ksp #k2 #kotlin
👉 Использует 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
👉 Поддержка сканирования модулей сквозь 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
Вот почему сразу нельзя сделать из коробки оригинальной библиотеки всё ? Тем более она даже не вышла в версию в 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
Kotlin 2.1 выйдет (ориентировочно конец 2024) уже с поддержкой KSP2, а первая версия будет deprecated и больше не поддерживается.
#Ksp
👍26
Пример (EN,8М) автоматизации генерации классов UI модели на основе параметров Composable функциb. Используется KSP для генерации кода
🔗 Ссылка без VPN
#kotlin #compose #ksp
🔗 Ссылка без VPN
#kotlin #compose #ksp
👍10
Metro - Новый DI фреймворк на чистом Kotlin (ещё в разработке)
#kotlin #di #ksp
@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
#kotlin #ksp
👍21
Пока вы спали Google выпустила версию KSP, совместимую с Kotlin 2.2.10. Обновляйтесь до версии 2.2.10-2.0.2 и свежий Kotlin
#kotlin #ksp
#kotlin #ksp
🎉35👍3