KSP vs KAPT
- Kotlin kursu
- Uzman
- Ders 10/47
- 5 dk
KSP ve KAPT farkını öğrenirsin.
KSP ve KAPT farkı
KSP ve KAPT her ikisi de derleme zamanı kod üretir ama yolları farklıdır. KSP doğrudan Kotlin sembollerini okur; KAPT önce Kotlin'i Java stub'ına dönüştürür.
KSP 2 kata kadar hızlıdır; Kotlin'e özgü yapıları (suspend fonksiyon, inline class) daha iyi destekler. KAPT daha eski ve yaygın; Dagger gibi eski kütüphaneler hala KAPT gerektirir. Yeni bir proje başlatırken KSP'yi tercih et; mevcut bağımlılık KAPT zorluyorsa geçiş planı yap. İkisi de derleme zamanı kod üretir; runtime yükü yoktur.
Geçiş planı
KAPT'den KSP'ye geçiş çoğu zaman basittir: Gradle dosyasında kapt yerine ksp kullan ve bağımlılıkları güncelle.
Örnek: kapt("com.example:processor:1.0") yerine ksp("com.example:processor:1.0") yaz. Kotlin 2.x ile kapt plugin'i hala çalışır ama KSP önerilir. Eğer bir bağımlılık KSP sunmuyorsa geçici olarak KAPT tutulur; kütüphane KSP desteği eklediğinde tamamen kaldırılır. Bu yaklaşım projeyi çalışır halde tutar.
Uygulama Karşılaştırma tablosu yaz
data class Tool(val name: String, val factor: Int) tanımla. main içinde listOf(Tool("KSP", 1), Tool("KAPT", 3)) oluştur. Her araç için println("${'$'}{it.name}: ${'$'}{it.factor}x") yaz.
Başlangıç kodu
// Tool veri sınıfını ekle
fun main() {
// iki Tool örneği oluştur ve her birini yazdır
}Örnek çözüm
data class Tool(val name: String, val factor: Int)
fun main() {
val tools = listOf(Tool("KSP", 1), Tool("KAPT", 3))
tools.forEach { println("${it.name}: ${it.factor}x") }
}Beklenen çıktı
KSP: 1x KAPT: 3x
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Hangisi daha hızlıdır?
- KAPT, çünkü Java kullanır
- KSP, çünkü Kotlin'i doğrudan okur Doğru cevap
- İkisi de aynı hızda
- Bağlı kütüphaneye göre değişir
Açıklama: KSP, Kotlin sembollerini doğrudan okuduğu için daha hızlıdır.
2 KSP'nin hızını yaz
val ksp = 1
val kapt = ____
println("KSP ${ksp}x, KAPT ${kapt}x")
val ksp = 1
val kapt = 3
println("KSP ${ksp}x, KAPT ${kapt}x")
Açıklama: KAPT tipik olarak 3 kata kadar yavaştır.
3 KSP/KAPT eşle
| Kavram | Anlamı |
|---|---|
KSP |
Doğrudan Kotlin okur |
KAPT |
Java stub'ına dönüştürür |
ksp(...) |
KSP bağımlılığı |
kapt(...) |
KAPT bağımlılığı |