Kotlin Symbol Processing 1.0 ile Hızlandırılmış Build Süreleri


Görsel referansı


Kotlin'de lightweight building compiler pluginleri oluşturabileceğimiz yeni bir araç olan Kotlin Symbol Processing (KSP) artık stable sürümde. KSP aslında Kotlin Annotation Processing Tool (KAPT)'a benzer işlevsellik sunuyor, ancak 2 kata kadar da daha hızlı çalışıyor, Kotlin dil yapılarına doğrudan erişim sunuyor ve multiplatform'u destekliyor.


Neden KSP?


Android geliştirirken en büyük problemlerden biri build sürelerinin ciddi zamanlar almasıdır. KSP bu sorunun iyileştirilmesi yolunda yıllar boyunca atılan adımlardan birisidir. KSP yeni nesil bir annotation processing işlemidir. Kotlin geliştiricileri için build sürelerini önemli ölçüde arttırmaktadır. KAPT'tan farklı olarak Kotlin/Native ve Kotlin/JS desteği de sunar.


KSP Neden Daha Hızlı?


Kotlin Annotation Processing Tool (KAPT), Java dilinin annotation processing yapısının çoğunun Kotlin'de olduğu gibi çalışmasını sağlamak için Java'nın annotation processing yapısıyla birlikte çalışmaktadır. Bunu gerçekleştirmek maliyetlidir ve tüm sembolleri birden çok kez çözmesi gerekir.


KSP ise bir Kotlin compiler plugin olarak çalışarak bu maliyetli modelden uzaklaşır. Annotation processing yapısının Java Annotation yapısına bağımlı olmasını gerektirmek yerine, kaynak programları ve kaynakları doğrudan Kotlin'de okumasına ve analiz etmesine olanak tanır. Bu hem build hızını önemli ölçüde arttırır hem de Kotlin/Native ve Kotlin/JS gibi Android olmayan ve JVM için olmayan ortamlar için kullanılabileceği anlamına gelir.


Başlarken


KSP'nin hem Annotation processing yapısı olarak hem de tüketilen bir library olarak nasıl kullanılacağını öğrenmek için KSP playground project e bakabilirsiniz. Buna ek olarak bir projeyi KAPT'tan KSP'ye geçirmek için şu dokümanı inceleyebilirsiniz.