Kotlin Adept Notes
2.31K subscribers
80 photos
9 videos
127 links
Канал о разработке на Kotlin и обо всем, что с ним связано
По всем вопросам и рекламе: @ajiekcx
Download Telegram
Каждый раз, когда приходится обновлять версии Kotlin и Compose, я чувствую себя как тот мужик из мема. 

Обновить зависимости так, чтобы ничего не отвалилось, та ещё задача, а в KMP-проектах добавляется ещё больше веселья.

Например, хотим запустить проект на Xcode 16.3 — для этого нужен Kotlin 2.1.21, а для него требуется новый KSP, в котором сломали обратную совместимость. И какая-нибудь либа в проекте, использующая KSP, благополучно перестаёт работать. 

К счастью, отключить вторую версию KSP можно в gradle.properties, и это спасёт на какое-то время:
ksp.useKSP2=false


Хуже этого только борьба с Java-версиями. Когда в каком-нибудь кастомном detekt-правиле забыли указать jvmToolchain с нужной версией, приключение на весь день точно будет обеспечено 👍

#Gradle #KSP
Please open Telegram to view this post
VIEW IN TELEGRAM
33💯15
Проблема KSP

Kotlin Symbol Processing — современная технология для генерации кода, но насколько безопасно использовать библиотеки с KSP в проекте?

При обновлении зависимостей мы попали в следующую ловушку: не все библиотеки, которые мы используем, поддержали KSP2, и при этом новая версия Room крашится, если явно отключить поддержку KSP2 в gradle.properties. Сейчас ещё можно обойти проблему, понизив версии, но начиная с AGP 9 и Kotlin 2.3.0 KSP1 перестанет работать.

Что с этим делать?

🔘Можно включить режим ждуна и мониторить, когда авторы сторонних библиотек добавят поддержку, но не факт, что это произойдёт.
🔘Форкнуть библиотеку и реализовать поддержку самостоятельно, что может оказаться нетривиальной задачей, если раньше с KSP вы не работали.
🔘Избавиться от зависимости на такую библиотеку. Если она не глубоко интегрирована в проект, то проще выбрать этот путь, тогда при очередном обновлении зависимостей проблем не возникнет.

А используете ли вы в своих проектах библиотеки с KSP, кроме Room и Dagger?

#KSP #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍211🤔1