Native library
- Kotlin kursu
- Uzman
- Ders 23/47
- 5 dk
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
// NativeLib sınıfını ekle
fun main() {
// sqlite kütüphanesini yükle ve yazdır
}Örnek çözüm
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
class NativeLib(val name: String) {
fun ____(): String = "loaded: $name"
}
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 |