Android projenizde Kotlin Multiplatform (KMP) modülü oluşturmak için Android Studio Meerkat ve Android Gradle eklentisi 8.8.0 ve sonraki sürümlerde bulunan Kotlin Multiplatform 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. KMP, masaüstü ve web gibi diğer hedefleri de destekler. Bu hedefleri daha sonra modüle ekleyebilirsiniz. Tam liste için Desteklenen platformların kararlılığı başlıklı makaleyi inceleyin. Hedef bildirmek için Multiplatform Gradle DSL referansındaki Hedefler bölümüne bakın.
Paylaşılan KMP modülünü ayarlama
Paylaşılan bir KMP modülü oluşturmak için aşağıdaki adımları uygulayın:
- File > New > New Module'u (Dosya > Yeni > Yeni Modül) seçin.
- Şablonlar panelinde Kotlin Multiplatform Shared Module şablonunu seçin:
Ş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.
- Finish'i (Son) tıklayın ve Gradle'ın projeyle senkronize edilmesine izin verin. Yeni oluşturulan modül dosyalarını kaynak denetimine eklemeniz de istenebilir.
İşlem tamamlandığında Android Studio Proje Görünümü, her platform için bir kaynak kümesiyle birlikte yeni paylaşılan modülü gösterir.
Paylaşılan modülü Android uygulamasına bağlama
Modül sihirbazı, yeni oluşturulan modülü mevcut modüllerden herhangi birine bağımlılık olarak eklemez. Bir 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 Multiplatform proje yapısı hakkında daha fazla bilgi için Kotlin Multiplatform proje yapısının temel özellikleri başlıklı makaleyi inceleyin.
Paylaşılan modülü iOS uygulamasına ayarlama
Swift, Kotlin modüllerini doğrudan kullanamaz ve derlenmiş bir ikili program çerçevesinin oluşturulmasını 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. Paylaşılan modülün build.gradle.kts dosyasında aşağıdaki kodu 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 için Hiyerarşik proje yapısı bölümüne bakın.
iOS projesinde paylaşılan kitaplığı bağlama
iOS projesinden paylaşılan koda erişimi etkinleştirmek için Swift kaynaklarını derlemeden önce Kotlin çerçevesini oluşturacak bir komut dosyası aşaması ekleyin:
- Android Studio'da dosyayı sağ tıklayın ve Şurada Aç ve İlişkili Uygulamada Aç'ı seçin. Bu işlem, iOS uygulamasını Xcode'da açar.
- Proje gezgininde proje adını çift tıklayarak proje ayarlarını açın.
- Bu aşamanın ne yaptığını daha iyi tanımlamak için varsayılan Run Script adını Compile Kotlin Framework olarak değiştirin. Düzenlemek için Run Script (Komut Dosyasını Çalıştır) başlığını çift tıklayın.
- Derleme aşamasını genişletin ve Shell (Kabuk) metin alanına aşağıdaki komut dosyası kodunu girin:
Run Script (Komut Dosyasını Çalıştır) aşamasını Compile Sources (Kaynakları Derle) aşamasından önceye sürükleyin.
Şekil 6. Kaynakları derlemeden önce komut dosyası derleme aşamasını çalıştır ⌘B tuşlarına basarak veya Product (Ürün) menüsüne gidip Build'i (Derle) seçerek projeyi Xcode'da derleyin.
Derleme başarılı olduğunda aşağıdaki simgeyi görürsünüz.
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ğıdaki adımları uygulayın:
- iOS projesinde,
ContentView.swiftdosyasını şu konumda açın:Sources/View/ContentView.swift - Dosyanın en üstüne import
sharedKitifadesini ekleyin. - Metin görünümünü, görüntülenen dizede
Platform_iosKt.platform()bilgisini 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ğıramayacağını kontrol eder. Bu işlev, iOS platformunda çalışırken "iOS" değerini döndürmelidir.
Ek Kaynaklar
- KMP geliştirmeye yeni başladıysanız daha fazla kılavuz için resmi KMP belgelerine bakın.
- iOS geliştirme konusunda yeniyseniz Swift ile ilgili temel bilgiler dokümanlarına göz atın.
- Sık karşılaşılan KMP kurulum sorunları için KMP hızlı başlangıç kılavuzundaki Sorun giderme bölümüne bakın.
- Örnek uygulamalar için Android Kotlin Multiplatform Örnekleri'ne bakın.