KMM Proje Yapısı
Paylaşılan ve platform kodu
KMM Proje Yapısı, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 1. 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.
KMM Nedir?
Kotlin Multiplatform Mobile (KMM), yerel kullanıcı arayüzlerini korurken kodu iOS ve Android arasında paylaşmanızı sağlar. İş mantığını Kotlin ile bir kez yazarsınız.
Paylaşılan Modül
Bir KMM projesinin merkezinde paylaşılan bir modül bulunur. Bu modül Android için bir JVM kitaplığına, iOS içinse yerel bir çerçeveye derlenir.
- Android, bu modülü normal bir bağımlılık olarak kullanır
- iOS, modülü Objective-C/Swift çerçevesi olarak içe aktarır
Kaynak Kümeleri
Paylaşılan modül kaynak kümelerine ayrılır:
commonMain— paylaşılan, platformdan bağımsız kodandroidMain— Android'e özgü kodiosMain— iOS'a özgü kod
commonMain
commonMain yalnızca Kotlin standart kitaplığını ve çoklu platform kitaplıklarını kullanabilir. Doğrudan Android veya iOS API'lerine başvurmamalıdır.
// shared/src/commonMain/kotlin/Greeting.kt
class Greeting {
fun greet(): String = "Hello, KMM!"
}Hedefleri Yapılandırma
Paylaşılan build.gradle.kts dosyası, çoklu platform eklentisiyle hangi platformların derleneceğini bildirir.
kotlin {
androidTarget()
iosX64()
iosArm64()
iosSimulatorArm64()
}iOS Çerçevesi
iOS hedefleri, Xcode'un içe aktardığı tek bir çerçevede birleştirilir.
kotlin {
listOf(iosX64(), iosArm64(), iosSimulatorArm64()).forEach {
it.binaries.framework {
baseName = "Shared"
}
}
}Ortak Bağımlılıklar
Çoklu platform kitaplıklarını (eş yordamlar, serileştirme, Ktor) commonMain içine ekleyerek bunları her hedefte paylaşın.
sourceSets {
val commonMain by getting {
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1")
}
}
}Android Uygulama Modülü
Android uygulama modülü, diğer Gradle modülleri gibi shared modülüne bağımlıdır ve Android kullanıcı arayüzünü Jetpack Compose veya görünümlerle oluşturur.
// androidApp/build.gradle.kts
dependencies {
implementation(project(":shared"))
}iOS Uygulaması
iOS uygulaması standart bir Xcode projesidir. Oluşturulan Shared çerçevesine bağlanır ve Kotlin sınıflarını Swift'ten çağırır.
// Swift
// import Shared
// let text = Greeting().greet()Neleri Paylaşmalı?
Genellikle paylaşılan kodlar şunlardır: ağ iletişimi, veri modelleri, depolar, kullanım senaryoları ve doğrulama. Kullanıcı arayüzünü, gezinmeyi ve platform sensörlerini yerel bırakın.
Kendi İçinde Çalışan Bir Selamlama
Paylaşılan mantık sıradan Kotlin kodudur. Bunun olağan bir kod olduğunu göstermek için aynı sınıf burada bağımsız olarak çalıştırılmıştır.
class Greeting {
fun greet(): String = "Hello, KMM!"
}
fun main() {
println(Greeting().greet())
}Hızlı Kontrol
Herhangi bir Android veya iOS API başvurusundan bağımsız olması gereken kodu nereye yerleştirirsiniz?
Özet
KMM yapısını öğrendiniz:
commonMain,androidMainveiosMainiçeren birsharedmodülü- Hedefler çoklu platform eklentisinde bildirilir; iOS bir çerçeve alır
- Android,
project(":shared")üzerinden bağımlı olur; iOS çerçeveyi içe aktarır
Sıradaki konu: expect ve actual.
Sıkça Sorulan Sorular
“KMM Proje Yapısı” dersi ücretsiz mi?
Evet — “KMM Proje Yapısı” 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.
“KMM Proje Yapısı” dersinde ne öğreneceğim?
Paylaşılan ve platform kodu 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 1. dersidir.
“KMM Proje Yapısı” 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