CodeBlanks Logo Icon CodeBlanks

Native library

Kotlin/Native ile native kütüphane yazmayı öğrenirsin.

Yerel kütüphane üretimi

Kotlin/Native yalnızca çalıştırılabilir dosya değil, yerel kütüphane de üretir. Bu kütüphaneler başka dillerden çağrılabilir.

Gradle'da hedef bloğu içinde binaries { framework { ... } } ya da binaries { sharedLib() } yazılır. iOS hedefinde bir framework üretilir; bu framework Xcode projesine eklenir ve Swift'ten çağrılır. Linux/Windows'ta bir sharedLib (.so, .dll) üretilir; C ya da Python gibi dillerden çağrılabilir. Bu, Kotlin kodunu mevcut platform ekosistemine bağlamanın yoludur.

NativeLib örneği

Bu derste bir NativeLib sınıfıyla kütüphane yüklemeyi modelleyeceğiz. Gerçek ortamda Gradle binaries bloğu bunu otomatik üretir.

Örnek: class NativeLib(val name: String) { fun load(): String = "loaded: $name" }. NativeLib("sqlite").load() çağrısı "loaded: sqlite" döner. Gerçek bir kütüphane bu noktada C fonksiyonlarını çağırır; burada yüklemenin başarılı olduğunu bir dizeyle bildiriyoruz. Bu basit model, kütüphane yaşam döngüsünü anlamak için yeterlidir.

Uygulama NativeLib yaz

class NativeLib(val name: String) tanımla. fun load(): String metodu "loaded: $name" döndürsün. main içinde val lib = NativeLib("sqlite") yapıp println(lib.load()) yaz.

Başlangıç kodu

Main.kt
// NativeLib sınıfını ekle

fun main() {
    // sqlite kütüphanesini yükle ve yazdır
}

Örnek çözüm

Main.kt
class NativeLib(val name: String) {
    fun load(): String = "loaded: $name"
}
fun main() {
    val lib = NativeLib("sqlite")
    println(lib.load())
}

Beklenen çıktı

loaded: sqlite

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 load metodunu tamamla

Soru
class NativeLib(val name: String) {
    fun ____(): String = "loaded: $name"
}
Cevap
class NativeLib(val name: String) {
    fun load(): String = "loaded: $name"
}

Açıklama: load() kütüphaneyi yükler ve adını döner.

2 iOS hedefinde hangi çıktı üretilir?

  • framework Doğru cevap
  • .dll dosyası
  • .so dosyası
  • .jar dosyası

Açıklama: iOS hedefi bir framework üretir; Xcode'a eklenir.

3 Kütüphane parçalarını eşle

Kavram Anlamı
framework iOS çıktısı
sharedLib Linux/Windows çıktısı
binaries Gradle bloğu
Xcode Apple IDE

Uzman bölümündeki tüm dersler