Android Migrate from kapt to KSP

사용 언어: Kotlin 1.9.0
사용 버전: Android Studio Giraffe 2022.3.1

안드로이드 Migrate from kapt to KSP를 알아보겠습니다.

kapt는 Java에서 지원하는 어노테이션을 코틀린에서도 사용할 수 있게 해주는 플러그인입니다. 이제는 새로운 기능은 추가되지 않고, 기존에 있는 것만 유지 보수된다고 합니다.




새롭게 지원되는 것이 KSP입니다. Kotlin을 위해 만들어진 플러그인으로 JVM에 묶이지 않으며 빌드 속도를 빠르게 해줍니다.

kapt에서 KSP로 변경해 봅시다.

공식 문서는 다음과 같습니다.




room database인데, kapt를 사용하던 부분에 이렇게 불이 들어옵니다.

상세 내역을 보면 다음과 같이 적혀있습니다.

This library supports using KSP instead of kapt, which greatly improves performance.









프로젝트 용 build.gradle로 갑니다.

plugins에 id 'com.google.devtools.ksp' version '1.9.0-1.0.13' apply false 추가해 줍니다.

plugins는 buildscript와 allprojects 사이에 넣어줍니다.







가장 최근의 버전을 써줬습니다.






앱 용 build.gradle로 갑니다.

plugins에 id 'com.google.devtools.ksp' 추가해 줍니다.







kapt를 KSP로 변경해 줍니다.

KSP로 변경 시 주의할 점은 kapt에서 KSP를 사용할 시, 다를 수 있다는 것입니다. 만약 문제가 생긴다면 해당 라이브러리의 문서를 찾아보라고 하네요.





kapt를 제거하고 KSP를 적어줬습니다.

Sync now를 누르고 다시 빌드 해 봅니다.






다행히 잘 빌드 되네요. 바로 사용해도 될 듯합니다.

만약 더 이상 kapt를 사용하지 않는다면 아래와 같이 제거하라고 합니다.




하지만, 저는 databinding을 사용하고 있어서 kapt를 제거할 수 없습니다.

안타깝게도 kapt를 하나라도 사용한다면, KSP를 사용하여 속도 향상을 기대하긴 어렵습니다. kapt가 하나도 없어야 속도가 빨라집니다.


끝.



카테고리: Android

댓글

이 블로그의 인기 게시물

Python OpenCV 빈 화면 만들기

Python urllib.parse.quote()

Python bytes.fromhex()

Android AVD Ram size change

Forensics .pyc 파일 .py로 복구하기

Android Minimum touch target size

KiCad 시작하기 7 (FreeRoute 사용하기 2)

Android Notification with Full Screen

C++ OpenCV 모폴로지 침식, 팽창

KiCad 시작하기 2 (PCB 만들기)