CodeBlanks Logo Icon CodeBlanks

Kotlin/Native

Kotlin/Native ile native derleme öğrenirsin.

Kotlin/Native nedir?

Kotlin/Native, Kotlin kodunu JVM olmadan yerel bir ikili (binary) dosyaya derleyen bir teknolojidir. LLVM tabanlıdır; iOS, macOS, Linux ve Windows hedeflerini destekler.

Bir Kotlin/Native projesi Gradle'da kotlin("multiplatform") plugin'i ile başlar; hedefler iosArm64(), linuxX64() gibi bloklarla eklenir. Çıktı, ya bir çalıştırılabilir dosya ya da bir kütüphane (framework, .so, .dylib) olur. Başlangıç süresi yoktur; küçük ikili dosyalar oluşturur. Bu derste basit bir platformInfo fonksiyonuyla konsepti modelleyeceğiz.

Hedef platformlar

Kotlin/Native, çok çeşitli hedefleri destekler: iOS (arm64), macOS, Linux (x64, arm64), Windows (x64, mingw) ve gömülü sistemler.

Her hedef Gradle'da ayrı bir blokla eklenir; örn. iosArm64() iPhone için, linuxX64() Linux masaüstü için. Çıktı hedefe göre değişir: iOS'ta framework, Linux'ta ELF ikilisi, Windows'ta PE ikilisi. Bir projede birden fazla hedef aynı anda bulunabilir; bu, Kotlin Multiplatform'un temelidir. Hedef bağımlılıkları sourceSets ile yönetilir.

Uygulama platformInfo yaz

fun platformInfo(): String tanımla. "Kotlin/Native" döndürsün. main içinde println(platformInfo()) yaz.

Başlangıç kodu

Main.kt
// platformInfo fonksiyonunu ekle

fun main() {
    // platform bilgisini yazdır
}

Örnek çözüm

Main.kt
fun platformInfo(): String = "Kotlin/Native"
fun main() {
    println(platformInfo())
}

Beklenen çıktı

Kotlin/Native

Soru ve cevaplar

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

1 Kotlin/Native hangi altyapıyı kullanır?

  • LLVM Doğru cevap
  • CLR
  • JVM
  • V8

Açıklama: Kotlin/Native LLVM üzerine kuruludur; yerel ikili üretir.

2 platformInfo metodunu tamamla

Soru
fun ____(): String = "Kotlin/Native"
Cevap
fun platformInfo(): String = "Kotlin/Native"

Açıklama: platformInfo() yerel hedefi bildirir.

3 Native parçalarını eşle

Kavram Anlamı
kotlin("multiplatform") Gradle plugin
iosArm64() iPhone hedefi
linuxX64() Linux hedefi
LLVM Derleme altyapısı

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