İş Mantığını Paylaşma
iOS ve Android arasında yeniden kullanın
İş Mantığını Paylaşma, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 3. 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.
İş Mantığı Neden Paylaşılmalı?
Kullanıcı arayüzü platforma göre farklıdır; ancak doğrulama, fiyatlandırma ve veri akışı gibi kurallar aynıdır. Bunları commonMain içinde paylaşmak tekrarı ve hataları ortadan kaldırır.
Paylaşılan Veri Modelleri
Alan modellerinizi ortak kodda bir kez tanımlayın. kotlinx.serialization sayesinde bu modeller her iki platformda da aynı şekilde serileştirilebilir.
import kotlinx.serialization.Serializable
@Serializable
data class Product(val id: Int, val name: String, val price: Double)Paylaşılan Kullanım Senaryoları
Saf iş kuralları ortak kodda bulunur ve hiçbir platform API'sine ihtiyaç duymaz.
class CartTotal {
fun total(items: List<Product>): Double =
items.sumOf { it.price }
}Ktor ile Paylaşılan Ağ İletişimi
Ktor istemcisi çoklu platformu destekler. API katmanını bir kez yazarsınız; her platform bir HTTP motoru sağlar.
import io.ktor.client.HttpClient
class Api(private val client: HttpClient) {
// suspend fun products(): List<Product> = client.get(...)
}Paylaşılan Eş Yordamlar
Eş yordamlar ortak kodda çalışır; bu nedenle zaman uyumsuz depolar da paylaşılabilir. Askıya alınabilir işlevler her iki platforma da sunulur.
class Repository(private val api: Api) {
suspend fun load(): List<Product> = api.products()
}Depo Örüntüsü
Yaygın bir örüntü şudur: Repository, ağ ve önbelleği koordine ederek temiz yöntemler sunar. Her iki uygulama da aynı depoyu çağırır.
Paylaşılan ViewModels
Decompose gibi kitaplıklar veya paylaşılan bir ViewModel sayesinde sunum mantığı ve durum da paylaşılabilir; yalnızca görüntüleme yerel bırakılır.
Durumu Flow Olarak Sunma
Durumu StateFlow ile sunun; böylece Android onu doğrudan toplayabilir, iOS ise bir sarmalayıcı aracılığıyla gözlemleyebilir.
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
class ProductState {
private val _items = MutableStateFlow<List<Product>>(emptyList())
val items: StateFlow<List<Product>> = _items
}Askıya Alınabilir İşlevler ve iOS
Kotlin'in askıya alınabilir işlevleri Swift'e tamamlanma işleyicisi veya async yöntemleri olarak sunulur. iOS bunları Swift'in async/await yapısıyla çağırır.
// Swift
// let products = try await repository.load()Kullanıcı Arayüzünü Paylaşılan Kodun Dışında Tutma
Kullanıcı arayüzünü paylaşmaya çalışmayın. Mantığı paylaşırken görüntülemeyi yerel yapmak, yinelenen kuralları ortadan kaldırırken en iyi kullanıcı deneyimini sağlar.
Çalıştırılabilir Bir Mantık Örneği
Paylaşılan kullanım senaryosu sıradan Kotlin kodudur. Burada bağımsız olarak çalıştırılıp bir sepet toplamı hesaplanır.
data class Product(val name: String, val price: Double)
fun total(items: List<Product>): Double = items.sumOf { it.price }
fun main() {
val cart = listOf(Product("Pen", 2.5), Product("Book", 12.0))
println("Total: " + total(cart))
}Hızlı Kontrol
İyi yapılandırılmış bir KMM uygulamasında bunlardan hangisi paylaşılmak için en uygun adaydır, hangisi yerel kalmalıdır?
Özet
Mantık katmanını paylaşabilirsiniz:
- Modeller, kullanım senaryoları, depolar, Ktor ağ iletişimi ve eş yordamlar
- Durumu
StateFlowile sunun; iOS, askıya alınabilir işlevler için async/await kullanır - Kullanıcı arayüzünü ve gezinmeyi yerel tutun
Sıradaki konu: platform API'lerine erişme.
Sıkça Sorulan Sorular
“İş Mantığını Paylaşma” dersi ücretsiz mi?
Evet — “İş Mantığını Paylaşma” 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.
“İş Mantığını Paylaşma” dersinde ne öğreneceğim?
iOS ve Android arasında yeniden kullanın 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 3. dersidir.
“İş Mantığını Paylaşma” 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