0Pricing
Kotlin Academy · Ders

KotlinPoet ile Kotlin Kaynak Dosyaları Oluşturma

Tür güvenli Kotlin kodu oluşturmak için bir KSP işlemcisinin içinde KotlinPoet kullanın.

KotlinPoet ile Kotlin Kaynak Dosyaları Oluşturma, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Kotlin Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Kotlin Academy kursu toplamda 4 dersten oluşur.

KotlinPoet Nedir

KotlinPoet, Square'ın .kt kaynak dosyalarını program aracılığıyla oluşturmak için sunduğu Kotlin API'sidir. İyi biçimlendirilmiş, Kotlin'e özgü doğal kod üretir ve KSP'nin CodeGenerator bileşeniyle doğal biçimde bütünleşir.

Bağımlılık Ekleme

İşlemci modülünüze KotlinPoet ekleyin:

dependencies {
    implementation("com.squareup:kotlinpoet:1.17.0")
    implementation("com.squareup:kotlinpoet-ksp:1.17.0") // KSP extensions
}

FileSpec: Oluşturulan Dosyanın Kökü

FileSpec.builder(packageName, fileName) giriş noktasıdır. Türleri, işlevleri ve özellikleri buna ekleyin, ardından sonucu KSP'nin CodeGenerator bileşeni aracılığıyla yazın:

val file = FileSpec.builder("com.example.generated", "MyFactory")
    .addType( /* TypeSpec here */ )
    .build()

TypeSpec: Sınıf Tanımlama

Sınıflar için TypeSpec.classBuilder(), nesneler için objectBuilder() ve arayüzler için interfaceBuilder() kullanın. İşlevler, özellikler ve üst arayüzler eklemek için oluşturucu çağrılarını zincirleyin:

val classSpec = TypeSpec.classBuilder("MyFactory")
    .addModifiers(KModifier.PUBLIC)
    .addFunction( /* FunSpec */ )
    .build()

FunSpec: İşlev Oluşturma

FunSpec.builder(name) bir işlev oluşturur. İmzasını ve gövdesini oluşturmak için addParameter(), returns() ve addStatement() kullanın:

val funSpec = FunSpec.builder("create")
    .addParameter("name", String::class)
    .returns(String::class)
    .addStatement("return "Hello, %L!", name")
    .build()

PropertySpec: Özellik Oluşturma

Özellikler oluşturmak için PropertySpec.builder(name, type) kullanın. KModifier.PRIVATE veya KModifier.OVERRIDE belirtin ya da var için mutable() kullanın:

val propSpec = PropertySpec.builder("tag", String::class)
    .initializer("%S", "MyClass")
    .addModifiers(KModifier.PRIVATE)
    .build()

Kod Biçimi Belirteçleri

KotlinPoet, addStatement() ve initializer() içinde biçim belirteçleri kullanır:

  • %L — değişmez (tırnak işareti olmadan)
  • %S — dize değişmezi (tırnak işaretleriyle)
  • %T — tür adı (içe aktarmaları otomatik olarak yönetir)
  • %N — ad (bir tanımın veya dizenin adı)

%T ile Otomatik İçe Aktarmalar

%T belirtecini bir ClassName ile kullandığınızda KotlinPoet, gerekli içe aktarmayı otomatik olarak ekler. İçe aktarma deyimlerini hiçbir zaman elle yazmanız gerekmez:

val listType = ClassName("kotlin.collections", "List")
val funSpec = FunSpec.builder("items")
    .returns(listType.parameterizedBy(String::class.asTypeName()))
    .addStatement("return emptyList()")
    .build()

KSP CodeGenerator'a Yazma

Oluşturulan FileSpec dosyasını KSP'nin CodeGenerator bileşeni aracılığıyla yazmak ve artımlı derleme üstverilerini korumak için kotlinpoet-ksp köprüsünü kullanın:

file.writeTo(
    codeGenerator = codeGenerator,
    aggregating = false
)

Uzantı İşlevleri Oluşturma

Uzantı işlevleri oluşturmak için FunSpec.builder(name).receiver(type) kullanın:

val extFun = FunSpec.builder("toJson")
    .receiver(ClassName("com.example", "User"))
    .returns(String::class)
    .addStatement("return Gson().toJson(this)")
    .build()

Pratik Kullanım Senaryosu: Fabrika Oluşturucu

Bir KSP işlemcisi, veri sınıflarına @AutoFactory ek açıklamasını uygular ve her biri için KotlinPoet kullanarak bir eşlikçi fabrika nesnesi oluşturur. Oluşturulan dosya, özgün sınıfla aynı pakete yerleştirilir.

Oluşturulan Kodu Sınama

Diske yazmadan oluşturulan kaynak metni üzerinde birim sınamaları gerçekleştirmek için KotlinPoet'in FileSpec.toString() işlevini kullanın. kotlin-compile-testing-ksp kütüphanesi, oluşturulan kodu sınamalarda derleyip çalıştırabilir.

Kısa Kontrol

KotlinPoet'te, başvurulan bir sınıf için gerekli içe aktarmayı otomatik olarak ekleyen biçim belirteci hangisidir?

Özet: KotlinPoet ile Kotlin kaynak dosyaları oluşturma

Önemli çıkarımlar:

  • FileSpec → üst düzey dosya; TypeSpec → sınıf/nesne/arayüz; FunSpec → işlev; PropertySpec → özellik
  • Tür başvuruları için %T kullanın — içe aktarmalar otomatik olarak eklenir
  • KSP işlemcilerinde file.writeTo(codeGenerator) aracılığıyla yazın
  • Oluşturulan çıktıyı birim testi için FileSpec.toString() ile kullanın

Sıkça Sorulan Sorular

“KotlinPoet ile Kotlin Kaynak Dosyaları Oluşturma” dersi ücretsiz mi?

Evet — “KotlinPoet ile Kotlin Kaynak Dosyaları Oluşturma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Kotlin Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Kotlin Academy kursu toplamda 4 dersten oluşur.

“KotlinPoet ile Kotlin Kaynak Dosyaları Oluşturma” dersinde ne öğreneceğim?

Tür güvenli Kotlin kodu oluşturmak için bir KSP işlemcisinin içinde KotlinPoet kullanın. Kotlin Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Kotlin Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Kotlin Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“KotlinPoet ile Kotlin Kaynak Dosyaları Oluşturma” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Kotlin Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Kotlin Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. KSP ve KAPT: KSP Neden Daha Hızlıdır
  2. İlk SymbolProcessor'ınızı Yazma
  3. KotlinPoet ile Kotlin Kaynak Dosyaları Oluşturma
  4. KSP İşlemcilerini Gradle Derlemesine Entegre Etme
← Kotlin Academy Sayfasına Dön