Android için Kotlin ile ktlint kullanımı

EgemenMede
Etiya
Published in
3 min readJun 30, 2020

--

Kotlin ile Android geliştirme yaparken yazmış olduğunuz kodların, Kotlin kod biçimine ne kadar uygun şekilde yazıp yazmadığınızı kontrol etmek için ktlint çok işinize yarayacak.

Pinterest tarafından sağlanan bir statik kod analizi aracı olan ktlint en basit anlamıyla, Google’ın Android Developer web sitesindeki “Kotlin Style Guide” a uygun kod yazıp yazmadığını denetlemek için kullanılır. Bu sayede yazdığınız kodlar hem Kotlin kod yönergelerine uygun yazılıp yazılmadığı kontrol edilir hem de kod yönergelerine uygun şekilde otomatik olarak biçimlendirilmesini de sağlayabilirsiniz.

Bu yönüyle sizi manuel olarak kod kontrolü ve düzeltme yapma derdinden kurtaracak, aynı zaman gereksiz zaman kayıplarının önüne geçerek daha kaliteli kod yazmanızı sağlayacaktır.

Gelelim projemize nasıl ekleyeceğimize..

İstenirse manuel olarak, istenirse de plugin’i şeklinde kurulum yapılabiliyor. Biz işin kolay olan kısmını tercih edip, gradle plugini kullanacağız. Bunun için kullanabileceğiniz pluginlere buradan ulaşabilirsiniz. Ben kurulum için jlleitschuh/ktlint-gradle pluginini tercih edeceğim.

Plugin’i kullanmak için Android projemin root’unda bulunan build.gradle dosyasını aşağıdaki gibi düzenliyorum.

buildscript {
ext.kotlin_version = "1.3.72"
repositories {
google()
jcenter()
maven {
url = uri("https://plugins.gradle.org/m2/")
}
}
dependencies {
classpath "com.android.tools.build:gradle:4.0.0"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath("org.jlleitschuh.gradle:ktlint-gradle:9.2.1")
}
}

subprojects {
apply plugin: "org.jlleitschuh.gradle.ktlint"

// İsteğe bağlı olarak plugini yapılandırabilirsiniz.
ktlint {
debug.set(true)
}
}

apply plugin: "org.jlleitschuh.gradle.ktlint"

Yukarıda paylaştığım kullanım şekli ktlint-gradle tarafından basic setup olarak belirtilen ve tüm Gradle sürümleri için kullanılan halidir. Farklı kullanımları için ktlint-gradle dokümantasyonuna göz atabilirsiniz.

Şimdi yaptığım entegrasyonu test etmek için MainActivity.kt içerisinde aşağıdaki gibi bir örnek kod hazırlıyorum.

class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

var test = "123"
if (test == ""){
Log.d("TAG", "Test Boş")
}
}
}

Android Studio’nun Gradle penceresinden ktlintCheck’i seçerek test ediyorum.

Buna göre aşağıdaki hata mesajlarını alıyorum.

cannot be auto-corrected” mesajını veren hata dışında diğer hatayı tek tıkla düzeltmem mümkün. Bunun için de Android Studio Gradle penceresinden ktlintFormat’ı çalıştırmam yeterli olacaktır. Bunun sonrasında hata mesajı aşağıdaki şekilde değişecektir.

Görüldüğü üzere “cannot be auto-corrected” mesajını veren hata dışındaki diğer hata otomatik düzeltildi. Ancak “cannot be auto-corrected” mesajının olduğu hatadan da fark edeceğiniz gibi bazı hataları manuel olarak düzeltmeniz gerekecektir.

Elbette ktlint’in tüm kullanım özellikleri bunları değil. Ancak nasıl başlamanız gerektiği konusunda bir start noktası. Ktlint’in hangi kuralları yönettiğini ve nasıl kendi istediğinize göre konfigürasyon yapacağınızın detaylarını aşağıda paylaştığım dokümantasyon linklerinden gerçekleştirebilirsiniz.

https://github.com/pinterest/ktlint

https://github.com/jlleitschuh/ktlint-gradle

https://ktlint.github.io/

Yazımızı beğendiyseniz, alkışlarınızı eksik etmeyin.

--

--

EgemenMede
Etiya
Editor for

Mobile Software Manager, Software Developer, Android&Flutter Lover, Technology Editor, Father, Storyteller..