0Pricing
Kotlin Academy · Ders

expect ve actual

Platforma özel uygulamalar

expect ve actual, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 2. 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.

Platform Koduna Duyulan Gereksinim

Bazı işlevlerin ortak bir uygulaması yoktur; örneğin işletim sistemi adını, bir UUID'yi veya mevcut platformu almak. KMM bu sorunu expect/actual mekanizmasıyla çözer.

expect Bildirimleri

commonMain içinde gövdesi olmayan bir sözleşme olarak expect işlevi veya sınıfı bildirirsiniz. Ortak kod bu işlevi çağırabilir.

// commonMain
expect fun platformName(): String

Android'de actual

Her platform, imzayla eşleşen bir actual uygulaması sağlar.

// androidMain
actual fun platformName(): String = "Android " + android.os.Build.VERSION.SDK_INT

iOS'ta actual

iOS kaynak kümesi, yerel API'leri kullanarak kendi sürümünü sağlar.

// iosMain
import platform.UIKit.UIDevice

actual fun platformName(): String =
    UIDevice.currentDevice.systemName + " " + UIDevice.currentDevice.systemVersion

Ortak Kodda Kullanma

Ortak kod, beklenen işlev varmış gibi onu çağırır; derleyici her hedef için doğru actual uygulamasını bağlar.

// commonMain
class Platform {
    val name: String get() = platformName()
}

expect Sınıfları

Bir sınıfın tamamını expect edebilirsiniz. Her platform, üyeleri eşleşen bir actual sınıfı sağlar.

// commonMain
expect class FileReader(path: String) {
    fun read(): String
}

actual Sınıf Uygulamaları

Platformlar, beklenen sınıfı yerel dosya arayüzlerini kullanarak uygular (ör. Android'de Java IO, iOS'ta Foundation).

// androidMain
actual class FileReader actual constructor(private val path: String) {
    actual fun read(): String = java.io.File(path).readText()
}

typealias ile expect

Bir actual, mevcut bir platform türüne yönelik typealias olabilir; böylece sarmalayıcı kullanmanız gerekmez.

// commonMain
expect class Uuid

// jvm/androidMain
actual typealias Uuid = java.util.UUID

İmza Eşleştirme Kuralları

actual, expect ile tam olarak eşleşmelidir: aynı ad, parametreler ve dönüş türü. Eşleşmeme durumu bir derleme hatasıdır ve platformlar arasında tutarlılığı garanti eder.

expect/actual Ne Zaman Kullanılmamalı?

Soyutlama daha esnek olduğunda, çalışma zamanında enjekte edilen platform uygulamalarına sahip basit arayüzleri tercih edin. expect/actual mekanizmasını küçük ve sabit platform temel öğeleri için saklayın.

Ortak Kod Örneği

KMM dışında aynı fikir, yalnızca bir soyutlamayı çağırmaktır. Burada platform çağrısının yerini sıradan bir işlev tutar.

fun platformName(): String = "Demo Platform"

fun main() {
    println("Running on " + platformName())
}

Hızlı Kontrol

Bir expect bildirimi nereye yazılır ve bu bildirimin actual uygulamaları nerede bulunur?

Özet

expect/actual, platformlar arasındaki boşlukları kapatır:

  • expect, sözleşmeyi commonMain içinde bildirir
  • actual, sözleşmeyi platforma göre uygular (veya typealias aracılığıyla)
  • İmzalar tam olarak eşleşmelidir
  • Esnek soyutlamalar için arayüzleri tercih edin

Sıradaki konu: iş mantığını paylaşma.

Sıkça Sorulan Sorular

“expect ve actual” dersi ücretsiz mi?

Evet — “expect ve actual” 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.

“expect ve actual” dersinde ne öğreneceğim?

Platforma özel uygulamalar 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 2. dersidir.

“expect ve actual” 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. KMM Proje Yapısı
  2. expect ve actual
  3. İş Mantığını Paylaşma
  4. Platform API'leri
← Kotlin Academy Sayfasına Dön