Mevcut bir projeye Kotlin Multiplatform ekleme

Android projenizde Kotlin Çok Platformlu (KMP) modülü oluşturmak için Android Studio Meerkat ve Android Gradle Plugin 8.8.0 sürümü ve sonraki sürümlerde bulunan Kotlin Çok Platformlu Paylaşılan Modül şablonunu kullanın.

Modül şablonu, Android ve iOS platformlarını hedefleyen minimum yapılandırmayla yeni bir modülün oluşturulmasını otomatikleştirir.

Paylaşılan KMP modülünü ayarlama

Paylaşılan bir KMP modülü oluşturmak için aşağıdaki adımları uygulayın:

  1. Dosya > Yeni > Yeni Modül'ü seçin.
  2. Şablonlar panelinde Kotlin Çok Platformlu Paylaşılan Modül şablonunu seçin:
Yeni KMP modülü oluşturma
Şekil 1. Yeni KMP modülü oluşturma

Şablondaki alanlar şunlardır:

  • Modül adı: Gradle modül adını ve iOS çerçeve adını tanımlar (daha sonra değiştirilebilir)
  • Paket adı: Bu modüldeki dosyaların paket adını tanımlar
    1. Sonlandır'ı tıklayın ve Gradle'in projeyle senkronize edilmesine izin verin. Ayrıca, yeni oluşturulan modül dosyalarını kaynak denetimine eklemeniz istenebilir.

İşlem tamamlandığında Android Studio Proje Görünümü'nde yeni paylaşılan modül ve her platform için bir kaynak grubu gösterilir.

Yeni paylaşılan modülleri gösteren proje görünümü
Şekil 2. Yeni paylaşılan modülleri gösteren proje görünümü

Modül sihirbazı, yeni oluşturulan modülü mevcut bir modüle bağımlı olarak eklemez. Sonraki adımda, paylaşılan modülü diğer Android bağımlılıklarına benzer şekilde mevcut Gradle modüllerinizden birine bağlamanız gerekir.

dependencies {
    ...
    implementation(project(":shared"))
}

Etkinleştirildikten sonra koda her zamanki gibi erişebilirsiniz. Android uygulamasından, androidMain veya commonMain'de bulunan koda erişebilirsiniz.

Kotlin çok platformlu proje yapısı hakkında daha fazla bilgi için Kotlin çok platformlu proje yapısının temellerine bakın.

Paylaşılan modülü iOS uygulamasında ayarlama

Swift, Kotlin modüllerini doğrudan kullanamaz ve derlenmiş bir ikili çerçevenin üretilmesini gerektirir.

Android Studio'daki yeni modül şablonu, paylaşılan modülü iOS mimarilerinin her biri için bir çerçeve oluşturacak şekilde yapılandırır. Aşağıdaki kodu, paylaşılan modülün build.gradle.kts dosyasında bulabilirsiniz:

val xcfName = "sharedKit"

iosX64 {
  binaries.framework {
    baseName = xcfName
  }
}

iosArm64 {
  binaries.framework {
    baseName = xcfName
  }
}

iosSimulatorArm64 {
  binaries.framework {
    baseName = xcfName
  }
}

Diğer mimari türlerini tanımlama hakkında bilgi edinmek için Hiyerarşik proje yapısı başlıklı makaleyi inceleyin.

iOS projesindeki paylaşılan koda erişimi etkinleştirmek için Swift kaynaklarını derlemeden önce Kotlin çerçevesini oluşturmak üzere bir komut dosyası aşaması ekleyin:

  1. Android Studio'da dosyayı sağ tıklayın ve Burada Aç'ı ve İlişkili Uygulamada Aç'ı seçin. Bu işlem, iOS uygulamasını Xcode'da açar.
İlişkili Uygulamada Aç
Şekil 3. İlişkili Uygulamada Aç
  1. Proje gezgininde proje adını çift tıklayarak proje ayarlarını açın.
Xcode proje ayarları iletişim kutusu
Şekil 4. Xcode proje ayarları iletişim kutusu
  1. Bu aşamanın ne yaptığını daha iyi tanımlamak için varsayılan Komut Dosyası Çalıştır adını Kotlin Çerçevesini Derle olarak değiştirin. Komut dosyasını çalıştır başlığını çift tıklayarak düzenleyin.
  2. Derleme aşamasını genişletin ve Shell metin alanına aşağıdaki komut dosyasını girin:
Yeni bir çalıştırma komut dosyası derleme aşaması ekleme
Şekil 5. Komut dosyası derleme aşamasını çalıştırma
  1. Komut Dosyasını Çalıştır aşamasını Kaynakları Derle aşamasının önüne sürükleyin.

    Kaynakları derlemeden önce komut dosyası derleme aşamasını çalıştırma
    Şekil 6. Kaynakları derlemeden önce komut dosyası derleme aşamasını çalıştırma

  2. ⌘B tuşuna basarak veya Ürün menüsüne gidip Derle'yi seçerek projeyi Xcode'da derleyin.

Derleme başarılı olduğunda aşağıdaki simgeyi görürsünüz.

Xcode'da gösterilen başarılı derleme
Şekil 7. Başarılı derleme

iOS uygulamasında paylaşılan koda erişme

iOS uygulamasının, paylaşılan modüldeki koda başarıyla erişebildiğini doğrulamak için aşağıdakileri yapın:

  1. iOS projesinde, ContentView.swift dosyasını şu konumda açın: Sources/View/ContentView.swift
  2. Dosyanın üst kısmına içe aktarma sharedKit ekleyin.
  3. Metin görünümünü, görüntülenen dizeye Platform_iosKt.platform() bilgilerini içerecek şekilde aşağıdaki gibi değiştirin:

Bu güncelleme, uygulamanın paylaşılan modülden platform() işlevini çağırıp çağıramadığına bakar. Bu işlev, iOS platformunda çalışırken "iOS" değerini döndürmelidir.

iOS uygulamasını çalıştıran Xcode simülatörü
Şekil 8. iOS uygulamasını çalıştıran Xcode simülasyon aracı

Ek Kaynaklar

KMP geliştirme konusunda yeniyseniz daha fazla kılavuz için resmi KMP dokümanlarına bakın. iOS geliştirme konusunda yeniyseniz Swift'in Temel Özellikleri dokümanlarına göz atın.