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(): StringAndroid'de actual
Her platform, imzayla eşleşen bir actual uygulaması sağlar.
// androidMain
actual fun platformName(): String = "Android " + android.os.Build.VERSION.SDK_INTiOS'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.systemVersionOrtak 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şmeyicommonMainiçinde bildiriractual, sözleşmeyi platforma göre uygular (veyatypealiasaracı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
- KMM Proje Yapısı
- expect ve actual
- İş Mantığını Paylaşma
- Platform API'leri