Android Broadcast
13.8K subscribers
3.13K photos
225 videos
9 files
5.31K links
Подборка новостей и статей для Android разработчиков.

Связь с автором @android_broadcast_bot
Реклама @android_broadcast_bot
Download Telegram
#DI #KSP

Автор Koin начал работы над экспериментальным проектом - компилятором на основе KSP, который позволит аноттировать классы, чтобы автоматом генерировать для них добавление в модулях.
#Dagger #KSP

Вышел Dagger 2.38 с отдельным репозиторием артефактов на основе процессора KSP. Для замены нужно просто чтобы все зависимости подключались из maven.google.com
#KSP

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

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

Kotlin Symbol Processors (KSP)

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

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

Room & Kotlin Symbol Processing

В Room 2.4 появилась возможность генерировать код с помощью KSP, что позволило до 2 раз увеличить скорость компиляции, особенно при чистой сборке проекта.

В статье рассказывается история интеграции KSP в Room: а также с какими вызовами столкнулись разработчики. Авторы разработали библиотеку X Processing - абстракцию над KSP и Java AP
#ksp #dagger

Слежу за поддержкой Assisted Inejct в Hilt для Dagger и в треде проскачила классная инфа - команда Dagger сейчас сосредоточена на поддержке KSP и все остальное в низком приоритете! Ждем ускорения Dagger и меньше Java кода в Android проектах.
Forwarded from Kotlin Broadcast (Кирилл Розов)
Довольно хороший разбор Kotlin Symbol Processing (KSP) на русском:
👉 ограничения
👉 принципы работы
👉 запуск
👉 как происходит генерация кода
👉 инкрементальная генерация
👉 несколько раундов
👉 пример реализации собственного генератора кода

#ksp
В официальной Android документации появилась страница "Migrate from kapt to KSP", которая содержит рекомендации по переходу на более эффективный способ генерации кода, Уже поддержкой обзавелись Glide, Room и Moshi. Dagger в процессе, а процерить статус других библиотек можно тут

#ksp
Forwarded from Kotlin Broadcast (Кирилл Розов)
Статья с тестами Dagger c KSP. Стало лучше, но не значительно. Интересно еще увидеть картину по расходы оперативной памяти во время сборки

#ksp
Сравнение (4 мин, EN, ссылка без VPN) KAPT и KSP для Android разработки.

Важно! Оценивать скорость KSP нужно с библиотеками, которые уже заявили о полной поддержке и закончили реализацию (Dagger еще в работе)

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

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


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

#ksp #k2 #kotlin
Forwarded from Compose Broadcast (Кирилл Розов)
PrevGen - KSP плагин компилятора для генерации стабовых данных для Compose Preview на основе data классов

#ksp @compose_broadcast
Forwarded from Kotlin Broadcast
Вышло обновление 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
Выпустили Anvil-KSP - форк Anvil, но работающий на основе KSP. Автор решения подробнее рассказывает о нем в статье(EN, 4м)

#ksp #di #dagger #sqaure