Kotlin Ktlint Kullanımı (Statik Kod Analizi)

Tunahan Özataç
Berkut Teknoloji
Published in
3 min readJan 24, 2023

Selamlar, bu yazımda Pinterest’in statik kod analiz tool’u olan ktlint kullanımını inceliyor olacağız. Hadi başlayalım o zaman. 🥳

Ktlint Nedir?

  • Ktlint incelemeden önce Statik Kod Analizi ne demek kısaca buna bakalım, Statik Kod Analizi kodlarımızın içerisindeki oluşan hataları programı çalıştırmadan çeşitli araçlar ve toollar tarafından önceden belirlediğiniz kriterlere göre taranarak incelenmesidir. Amaç burada kodlarımızın kalitesini artırmadır.
  • Ktlint’i baktığımızda kısaca, kodlarımızın Kotlin Style Guide’a uygun olup olmadığını denetleyen statik bir kod analiz aracıdır. Projemizde ktlint kullandığımız takdirde kodumuzu analiz edebilir ve aynı zamanda kodumuzun neresinde Kotlin Style Guide’a uygun olmadığını görebiliriz.

Ktlint Kullanımı?

Ktlint’i kullana bilmemizin 2 farklı yolu vardır bunlardan ilki plugin’i entegre ederek ve ikincisi pluginsiz entegredir. İkisi arasında ki fark pluginli kullandığımızda bizim için hazır gradle task implementation’larını verir. Yani bizim için her şeyi hazırlar fakat pluginsiz kullanırsak manuel olarak gradle task’ları kendimiz yönetmek zorunda kalacağız.

  1. Pluginli versiyon

Plugin’i entegre edebilmek için root seviyesindeki build.gradle dosyamıza plugins içine plugin’i eklememiz gerekiyor.

Daha sonra ise allprojects içerisine de ktlint’in apply plugini ni ekliyoruz.

Ktlint’in entegrasyon işlemini tamamlamış olduk. Son olarak android studio’da bağımlılıkları senkronize etmemizde fayda var. Bunu yapmak için File -> Sync project with gradle files tıklayarak yapabiliriz.

Farklı gradle sürümleri ile sorun çıkarmaması adına dokümantasyonu detaylı incelemenizi tavsiye ediyorum.

Ktlint entegrasyonunu tamamladığımıza göre kodlarımızı artık check etmemiz gerekiyor. Ktlint’i test etmek içinde terminal üstünden devam ediyoruz.

Ktlint Kodları

  • Ktlint’e göre otomatik olarak biçimlendirme

Kodlarımızı ktlint’e göre formatlamak için ./gradlew ktlintFormat komutunu çalışmamız gerekiyor. Bu kod Android Studioda Otomatik Kod Formatlama gibi işlemde görmektedir.

  • Windows : CTRL + ALT + L
  • Mac : Command + Option + L
./gradlew ktlintFormat

ktlintFormat çalıştırdıktan sonra herhangi bir sorun yaşanması takdir de detaylı hatayı incelemek için ./gradlew ktlintFormat — stacktrace komutunu çalışmamız yeterli olacaktır.

./gradlew ktlintFormat --stacktrace
  • Ktlint’e göre kodları check etme

Kodlarımızın standartlara uyup uymadığını kontrol etmek için ./gradlew ktlintCheck komutunu çalışmamız gerekiyor.

./gradlew ktlintCheck

Aynı şekilde ktlint’i kontrol ederken de sorunla karşılaşılması durumunda sonuna — stacktrace parametresi ile çalıştırılarak detaylı hatayı inceleyebiliriz.

  • Ktlint’i otomatikleştirme

Ktlint’i otomatikleştirmek istersek yani kodlarımızı kontrol etmeyi unutmamak için pushlamadan önce ktlint’in check etmesi mümkün bunun için ktlint’in bilgisayarımızda kurulu olup olmaması önemli kurulu ise, aşağıdaki kodu çalıştırmamız yeterli.

ktlint installGitPreCommitHook

Kurulu degilse;

./gradlew addKtlintCheckGitPreCommitHook
./gradlew addKtlintFormatGitPreCommitHook
  • Ktlint’in devre dışı bırakmak

Ktlint’in kodlarımızı kontrol etmesini istemediğimiz noktalarda aşağıdaki şekilde kullana biliriz.

// ktlint-disable
/* ktlint-disable */

2. Pluginsiz versiyon

Pluginli versiyonda incelediğimiz gibi bizlere hazır gradle task implementation’larını verdi Pluginsiz versiyonda ise bizim manuel olarak yönetmemiz gerekmektedir.

Pluginsiz kullanabilmek için root seviyesindeki build.gradle dosyasına değilde bu sefer app build.gradle’a aşağıdaki kodları ekliyoruz.

Yukarıda belirttiğim gibi farklı gradle sürümleri ile sorun çıkarmaması adına dokümantasyonu detaylı incelemenizi tavsiye ediyorum.

--

--