Tüm Yazılar
Okuma Süresi
15 dk
Yayın Tarihi
2026-10-13
Kelime Sayısı
2.958kelime

Kahveni hazırla - bu içerikli bir makale!

Compose Multiplatform 1.12: Android'den iOS'a Ortak UI

Özet

Compose Multiplatform 1.12 iOS Android ortak UI: 1.12.0 ve 1.12.1 sürüm deltası, Kotlin 2.1.0+ hizalama kuralı, göç adımları ve iOS'ta değişen davranışlar.

  • Compose Multiplatform 1.12.0 (25 Ağustos 2026) ve 1.12.1 (22 Eylül 2026) art arda geldi; 1.12.1 sadece bakım patch'i.
  • Minimum Kotlin sürümü 2.1.0; iOS/web hedefliyorsan JetBrains Kotlin 2.2.20 veya üzerini öneriyor.
  • Compose Compiler Gradle plugin'i, Kotlin Multiplatform plugin'iyle BİREBİR aynı sürümde olmak zorunda.
  • 1.12.1, iOS'ta Toolbar görünürlüğü ve AccessibilityElement dispose crash'i gibi birikmiş hataları düzeltiyor.
Compose Multiplatform 1.12: Android'den iOS'a Ortak UI

Compose Multiplatform 1.12 serisi, Android tarafındaki Jetpack Compose deneyimini iOS, web ve masaüstüne taşıyan JetBrains çatısının en güncel kararlı sürüm halkası — 1.12.0, 25 Ağustos 2026'da yayınlandı ve hemen ardından 1.12.1 patch'i 22 Eylül 2026'da geldi. Projen hâlâ 1.11 hattında duruyorsa bu yazı sana sürüm deltasını, Kotlin hizalama kuralını ve göç adımlarını satır satır anlatıyor; mimari kararlar ve production vaka analizi için Compose Multiplatform: Android + iOS production deployment yazısına bakabilirsin. Compose Multiplatform 1.12 iOS Android ortak UI tarafında neyin değiştiğini burada göreceksin.

💡 Pro Tip: Compose Compiler Gradle plugin'ini her zaman Kotlin Multiplatform plugin'iyle BİREBİR aynı sürümde tut; Compose compiler Kotlin ile aynı anda yayınlanır ve daima aynı sürüm Kotlin ile uyumludur; Compose compiler 2.0.0 ile derlenmiş eski bağımlılıklar, non-JVM hedefli çoklu platform projelerde gereksiz — hatta sonsuz — recomposition'lara yol açabiliyor.

İçindekiler

1.12 sürüm deltası

Compose Multiplatform, tek bir "1.12" değil, kısa aralıklarla gelen iki sürümden oluşuyor: 1.12.0 ana sürüm, 1.12.1 ise ondan bir ay sonra gelen bakım patch'i. Projene hangisini alacağını seçerken aşağıdaki tabloya bakman yeterli.

Sürüm
Yayın tarihi
Öne çıkan değişiklik
Notlar
1.12.0
25 Ağustos 2026
Compose Hot Reload için MCP server (masaüstü) — AI ajanlarının çalışan bir Compose uygulamasıyla gerçek zamanlı etkileşim kurmasını sağlıyor
Ana özellik sürümü
1.12.1
22 Eylül 2026
Resources kütüphanesinde Kotlin 2.5 uyumluluk düzeltmesi (PR #5717), birden çok iOS crash/görünürlük düzeltmesi
"Changes since 1.12.0" başlıklı patch sürümü

1.12.1'in release notu, Gradle plugin sürümünü de org.jetbrains.compose için birebir 1.12.1 olarak sabitliyor — yani build.gradle.kts dosyanda plugin sürümünü bu patch numarasıyla eşleştirmen gerekiyor. Kotlin 2.5 uyumluluk düzeltmesi dikkat çekici çünkü Kotlin 2.5.0 henüz yayınlanmadı (Aralık 2026 için planlanıyor) — üstelik release notunda bu madde "Fixes → Resources" başlığı altında, yani resources kütüphanesine özgü. JetBrains bunu ileriye dönük hazırlık olarak eklemiş; Kotlin 2.5.0 Aralık 2026 için planlandığından şimdilik bir "gereksinim" değil.

İki sürüm arasındaki dört haftalık aralık da kendi başına bir sinyal: 1.12.0 büyük bir özellik sürümüyken, 1.12.1 neredeyse tamamen "Changes since 1.12.0" başlığıyla gelen düzeltmelerden oluşuyor; tek migration kalemi LocalSystemTheme'in deprecate edilmesi (aşağıda). Yani mimari bir değişiklik beklemeden, sadece istikrar için 1.12.1'e geçmek mantıklı — büyük bir Kotlin veya Gradle sürüm atlaması yapmadan önce bile bu patch'i almanı öneririm, çünkü içerdiği iOS düzeltmeleri geriye dönük uyumlu ve yeni bir davranış değişikliği getirmiyor.

Kotlin/Compose sürüm hizalama kuralı

Compose Multiplatform'un Kotlin sürümüyle ilişkisi sabit bir eşleştirme tablosu değil, kayan bir minimum kuralı: en güncel Compose Multiplatform her zaman en güncel Kotlin sürümüyle uyumludur. Resmi uyumluluk sayfası bunu net söylüyor ve projen için pratik alt sınırı da veriyor.

Bileşen
Minimum sürüm
Önerilen
Kotlin (genel)
2.1.0
2.4.20 (güncel stabil, 7 Eylül 2026)
Kotlin (iOS/web hedefli)
2.1.0
2.2.20+
Compose Compiler Gradle plugin
Kotlin Multiplatform plugin ile aynı
Aynı

Compose Multiplatform, 1.8.0 sürümünden itibaren UI framework'ü tamamen K2 derleyicisine taşıdı; 1.12 hattı da bu temelin üzerinde duruyor. Gradle dosyanda bu hizalamayı şöyle kuruyorsun:

kotlin
1plugins {
2 kotlin("multiplatform") version "2.4.20"
3 id("org.jetbrains.compose") version "1.12.1"
4 id("org.jetbrains.kotlin.plugin.compose") version "2.4.20" // Kotlin MP plugin ile AYNI sürüm
5}

Aynı hizalamayı çok modüllü bir projede tek yerden yönetmek istersen Gradle version catalog'u (libs.versions.toml) kullan; iki plugin de aynı kotlin versiyon referansına bağlanır:

toml
1[versions]
2kotlin = "2.4.20"
3compose-multiplatform = "1.12.1"
4 
5[plugins]
6kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
7kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
8compose-multiplatform = { id = "org.jetbrains.compose", version.ref = "compose-multiplatform" }

Compose Multiplatform sürüm döngüsü, Jetpack Compose (androidx) sürüm döngüsünü genelde 1-3 ay geriden takip ediyor — yani Android tarafında yeni bir Jetpack Compose sürümü çıktığında Compose Multiplatform'a yansıması hemen değil, birkaç hafta ila birkaç ay içinde oluyor.

Bu kayan kural pratikte iki şey anlamına geliyor. Birincisi: "Compose Multiplatform X sürümü Kotlin Y'yi gerektirir" tarzı bir eşleştirme tablosunu ezberlemek yerine, her yükseltmede resmi uyumluluk sayfasına tekrar bakmalısın — çünkü minimum sürüm zamanla yukarı kayıyor. İkincisi: Android tarafında Jetpack Compose'un en yeni özelliklerini gördüğünde, aynı özelliğin Compose Multiplatform'da (özellikle iOS/web tarafında) hemen kullanılabilir olmasını bekleme; 1-3 aylık gecikme payını proje planlamana dahil et.

Mevcut projeyi 1.12'ye yükseltme

1.11'den 1.12.1'e geçerken önce kütüphane koordinatlarını güncellemen gerekiyor. Burada en sık yapılan hataya dikkat et: 1.12.1 release notundaki Components tablosundaki koordinatlar TEK TİP DEĞİL. runtime, ui, foundation ve material 1.12.1 etiketiyle yayınlanırken Material3 1.12.0-alpha03, Material3 Adaptive 1.3.0-rc01, Lifecycle 2.11.0 ve Navigation 2.10.0-beta01 sürümünde duruyor — yani her satırı tablodan kopyalaman gerekiyor. Paylaşılan UI modülünde bağımlılıkları commonMain source set'i üzerinden veriyorsun:

kotlin
1kotlin {
2 sourceSets {
3 commonMain.dependencies {
4 implementation("org.jetbrains.compose.runtime:runtime:1.12.1")
5 implementation("org.jetbrains.compose.ui:ui:1.12.1")
6 implementation("org.jetbrains.compose.foundation:foundation:1.12.1")
7 implementation("org.jetbrains.compose.material3:material3:1.12.0-alpha03")
8 }
9 }
10}

Eski kütüphanelerle uyumluluk sorunu yaşarsan (özellikle üçüncü parti Compose bileşenleri), Kotlin/Native hedefinin binaries bloğundaki disableNativeCache seçeneğiyle derleme cache'ini kapatabilirsin. Resmi Multiplatform DSL referansı bu seçeneği yalnızca istisnai durumlarda kullanmanı söylüyor, çünkü derleme süresini uzatıyor; seçenek, cache'in kapatıldığı Kotlin version'ını ve reason'ı argüman olarak almanı zorunlu tutuyor, issue URL'i isteğe bağlı:

kotlin
1@file:OptIn(KotlinNativeCacheApi::class)
2 
3import java.net.URI
4import org.jetbrains.kotlin.gradle.plugin.mpp.DisableCacheInKotlinVersion
5import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeCacheApi
6 
7kotlin {
8 iosArm64 {
9 binaries {
10 framework("shared") {
11 disableNativeCache(
12 version = DisableCacheInKotlinVersion.`2_4_20`,
13 reason = "Cache bug",
14 issue = URI("https://youtrack.com/YY-1111")
15 )
16 }
17 }
18 }
19}

DisableCacheInKotlinVersion sabit listesi yalnızca en son üç Kotlin sürümünü taşıyor (rolling deprecation), yani Kotlin'i yükselttiğinde sabiti de güncellemen gerekiyor; API'nin tamamı da @OptIn(KotlinNativeCacheApi::class) ile opt-in istiyor.

Bir diğer göç detayı: LocalSystemTheme API'si 1.12.1'de @InternalComposeUiApi olarak geçici olarak yeniden açığa çıkarıldı ama aynı anda deprecate edildi — gelecek bir sürümde tamamen kaldırılacak. Internal işaretli olduğu için tek başına @Suppress("DEPRECATION") yetmez, @OptIn(InternalComposeUiApi::class) da gerekiyor. Kodunda hâlâ kullanıyorsan, sistem temasını okumak için platform-spesifik alternatiflere geçiş planı yapmalısın. Bu API skiko tarafında (iOS/masaüstü/web) tanımlı, Android hedefinde yok — commonMain'e değil, iosMain/jvmMain gibi platform source set'ine koy:

kotlin
1import androidx.compose.runtime.Composable
2import androidx.compose.ui.InternalComposeUiApi
3import androidx.compose.ui.LocalSystemTheme
4import androidx.compose.ui.SystemTheme
5 
6// 1.12.1'de @InternalComposeUiApi olarak geri açıldı ve deprecate edildi, gelecekte kaldırılacak
7@OptIn(InternalComposeUiApi::class)
8@Suppress("DEPRECATION")
9@Composable
10fun isSystemDark(): Boolean = LocalSystemTheme.current == SystemTheme.Dark

Yükseltmeyi tek seferde tüm modüllerde yapmak yerine, önce paylaşılan UI modülünde dene, derleme ve testleri geçtikten sonra platform-spesifik hedeflere (iosMain, jvmMain) geç. Kütüphane koordinatlarını değiştirdikten sonra ilk yapman gereken tam bir temiz derleme (./gradlew clean build) — Compose Compiler ile Kotlin plugin sürümü arasında bir kayma varsa bu adımda görünür hale gelir, production'a gitmeden önce yakalarsın.

iOS tarafında değişen davranışlar

1.12.0 ve 1.12.1, iOS tarafında hem yeni davranışlar hem de birikmiş hata düzeltmeleri getirdi:

  • Seçim tutamaçları (selection handles): 1.12.0 ile artık iOS'un native stiline uyumlu görünüyor.
  • Context menu "Select": Text field'larda context menu'ye iOS'a özgü "Select" öğesi eklendi.
  • VoiceOver LiveRegion desteği: Accessibility tarafında LiveRegion semantics artık destekleniyor, bu VoiceOver kullanıcıları için dinamik içerik duyurularını iyileştiriyor.
  • NSLocale.toComposeLocale(): 1.12.0, platform NSLocale nesnesinden Locale oluşturmak için bu API'yi ekledi (PR #3103).
  • VoiceOver'da VerbatimTtsAnnotation ve LocaleList: 1.12.0, erişilebilirlik VoiceOver tarafında bu iki attribute'ün desteğini ekledi (PR #3145).
  • Toolbar görünmeme hatası (iOS 16 ve öncesi): 1.12.1'de düzeltildi.
  • SelectionContainer + TextField toolbar hatası: İçinde en az bir TextField bulunan SelectionContainer kullanıldığında toolbar'ın görünmemesi sorunu giderildi.
  • AccessibilityElement dispose sonrası crash: iOS'un, dispose edilmiş bir AccessibilityElement'in özelliklerini okumaya çalışırken oluşan çökme düzeltildi.

Bu liste özellikle erişilebilirlik ve metin seçimiyle çalışan ekranlar için önemli — eski sürümlerde bu senaryolarda workaround yazdıysan, 1.12.1'e geçince o workaround'ları kaldırıp test etmen gerekiyor.

Pratik açıdan bakınca bu değişikliklerin çoğu yeni bir API yüzeyi açmıyor, mevcut davranışı iOS'un native beklentisine yaklaştırıyor; NSLocale.toComposeLocale() gibi yeni köprü API'leri ise isteğe bağlı. Yani zorunlu bir migration adımı yok — asıl iş regresyon testi. VoiceOver kullanan bir ekranın varsa, 1.12.1'e geçtikten sonra gerçek bir iOS cihazda VoiceOver'ı açıp seçim ve context menu akışlarını elle gezmen, otomatik test paketinin yakalayamadığı davranış farklarını görmenin en güvenilir yolu.

Performans ve başlangıç süresi ölçümü

JetBrains, 1.12 serisi için resmi bir başlangıç süresi veya performans benchmark'ı yayınlamadı; release notlarında ve uyumluluk sayfasında sayısal bir iyileştirme iddiası yok. Ölçümü kendi projende yapman gerekiyor.

Bunun yerine kendi projende ölçüm yapman öneriliyor: Android tarafında Macrobenchmark, iOS tarafında Xcode Instruments'ın "App Launch" şablonu ile 1.11'den 1.12.1'e geçiş öncesi/sonrası cold-start sürelerini karşılaştırabilirsin. Ben genelde büyük bir sürüm atlaması yapmadan önce mevcut sürümde bir baseline ölçüm alıp, yükseltme sonrası aynı cihazda tekrar ölçmeyi tercih ederim — bu, JetBrains'in yayınlamadığı veriyi kendi projen özelinde üretmenin tek güvenilir yolu.

Ölçümü anlamlı kılmak için birkaç kural işine yarar: aynı fiziksel cihazda (simülatör/emülatör değil) ölç, arka planda çalışan başka uygulamaları kapat, en az 5-10 tekrar ölçüm alıp ortalama ve medyanı birlikte raporla (tek ölçüm gürültüye açık), ve ölçümü hem cold-start hem warm-start için ayrı ayrı yap. Bu disiplin olmadan aldığın "1.12'ye geçince hızlandı" izlenimi, aslında cihazın termal durumundan ya da arka plan işlemlerinden kaynaklanan bir gürültü olabilir.

Ölçüm sonuçlarını ekip içinde paylaşırken cihaz modelini, işletim sistemi sürümünü ve ölçüm tarihini de not etmeni öneririm — altı ay sonra "1.12'ye geçince hızlandı mıydı" sorusuna cevap ararken bu bağlam bilgisi olmadan sayılar anlamını kaybediyor.

Ne zaman CMP, ne zaman native SwiftUI

JetBrains'in resmi platform destek tablosu net bir etiketleme kullanıyor: iOS hedefi "Stable", Web hedefi ise hâlâ "Beta" durumunda. Bu, karar verirken önemli bir sinyal.

Compose Multiplatform'un temel vaadi, mevcut Jetpack Compose bilgini (state yönetimi, layout sistemi, animasyon API'leri, Material bileşenleri) Android dışındaki platformlarda da kullanabilmen. Ekibin zaten Compose'a yatırım yapmışsa ve iOS tarafında da aynı ekip kod yazacaksa, CMP mantıklı bir seçim.

Native SwiftUI'ı tercih etmen gereken durumlar daha çok platforma özgü ince ayarların kritik olduğu senaryolar: iOS'a özgü animasyon detayları, en güncel Apple API'lerine (ör. yeni bir SwiftUI sürümüyle gelen widget/interaktivite özellikleri) gün-bir erişim gerekiyorsa, ya da ekipte Swift/SwiftUI derinliği zaten varsa. JetBrains bu konuda resmi bir "şu durumda CMP, şu durumda native" karar matrisi yayınlamıyor; karar, ekibinin mevcut yatırımına ve platform-spesifik gereksinim yoğunluğuna göre kurman gereken bir denge.

Pratikte iki soruyu kendine sorman yeterli: Ekibin şu an Android'de Compose yazıyor mu ve iOS ekibi ayrı mı çalışıyor? Ayrıysa ve iki ekip de kendi native ekosisteminde derinse, CMP'nin ortak kod avantajı organizasyonel bariyerle karşılaşabilir. İkinci soru: uygulaman iOS'a özgü, platform native hissi gerektiren bir deneyime mi (ör. karmaşık jest tabanlı navigasyon) yoksa çoğunlukla form, liste, veri görüntüleme gibi standart UI kalıplarına mı dayanıyor? İkincisiyse CMP'nin Stable etiketli iOS hedefi genelde yeterli.

Bilinen kısıtlar ve geçici çözümler

Yükseltme öncesi bilmen gereken birkaç yapısal kısıt var:

  • JDK gereksinimi: Compose Multiplatform masaüstü hedefi yalnızca JDK 11 veya üzerini destekliyor; native dağıtım paketleme (jpackage sınırlamaları nedeniyle) için ise JDK 17 veya üzeri şart.
  • macOS klavye düzeni hatası: OpenJDK 11.0.12 ile macOS'ta klavye düzeni değiştirirken bilinen bir sorun var; bu sorun OpenJDK 11.0.15'te tekrarlanmıyor — hâlâ 11.0.12 kullanıyorsan güncellemen öneriliyor.
  • Yalnızca 64-bit: Tüm Compose Multiplatform sürümleri yalnızca 64-bit platformları destekliyor, 32-bit hedef planlaman gerekiyorsa bu framework uygun değil.

Bu kısıtlar özellikle CI/CD pipeline'ını kuran ekipler için önemli: build agent'ında JDK 17+ olduğundan emin olmadan native paketleme (.dmg, .msi, .deb) adımını pipeline'a eklersen, jpackage adımı sessizce başarısız olabilir. macOS build agent'ında OpenJDK sürümünü sabitlemek (11.0.15 veya üzeri, ya da doğrudan 17+) de aynı nedenle CI kurulumunun standart bir parçası olmalı.

Platform
Minimum sürüm (1.12.1)
Android
5.0 (API level 21)
iOS
14
macOS
13 (arm64)
Windows
10 (x86-64, arm64)
Linux
Ubuntu 20.04

ALTIN İPUCU

Bu yazının en değerli bilgisi

Bu ipucu, yazının en önemli çıkarımını içeriyor.

Easter Egg

Gizli bir bilgi buldun!

Bu bölümde gizli bir bilgi var. Keşfetmek ister misin?

Okuyucu Ödülü

Bu makaleyi buraya kadar okuduysan, 1.11'den 1.12.1'e geçiş için kullanabileceğin adım adım bir kontrol listesi hak ettin. Aşağıdaki maddeleri sırayla uygula, her adımdan sonra projeyi derleyip test et.

SSS

Compose Multiplatform 1.12 hangi Kotlin sürümünü istiyor?

Compose Multiplatform 1.12.x (1.12.0 ve 1.12.1) için minimum Kotlin 2.1.0 gerekiyor. iOS ve web gibi hızlı gelişen platformları hedefliyorsan JetBrains, Kotlin 2.2.20 veya üzerine yükseltmeni öneriyor. Bu kural sabit değil: resmi uyumluluk sayfası en güncel Compose Multiplatform'un her zaman en güncel Kotlin sürümüyle uyumlu olduğunu belirtiyor, yani proje bazında güncel Kotlin (2.4.20, 7 Eylül 2026) kullanmak daha güvenli bir tercih.

Compose Multiplatform iOS'ta production'a hazır mı?

Evet — Compose for iOS, 1.8.0 sürümünden beri "Stable" olarak etiketleniyor ve 1.12 serisi bu duruma yeni iOS'a özgü iyileştirmeler (seçim tutamaçları, context menu, VoiceOver LiveRegion desteği) ekledi. Web hedefi ise hâlâ "Beta" etiketiyle işaretli; production kararını platform bazında ayrı ayrı vermen gerekiyor.

Compose Multiplatform ile Jetpack Compose sürümleri nasıl hizalanıyor?

Compose Multiplatform, Jetpack Compose'un üzerine inşa edilir ve her bileşen kütüphanesi belirli bir sürüm etiketiyle paketlenir — 1.12.1'de runtime, ui, foundation ve material org.jetbrains.compose.*:1.12.1 koordinatıyla yayınlanırken material3 1.12.0-alpha03 koordinatında kalıyor. Compose Multiplatform sürüm döngüsü, Jetpack Compose sürüm döngüsünü genelde 1-3 ay geriden takip ediyor.

Mevcut Android Compose kodunu iOS'a taşımanın maliyeti ne?

JetBrains kademeli benimsemeyi öneriyor ve bunu ölçek olarak tarif ediyor: "Start small or go all in without extra work" — yani tek bir bileşeni, tek bir ekranı ya da tüm UI'ı paylaşabilirsin, mevcut uygulamanın içine oturuyor. Resmi kaynaklarda somut bir gün/saat rakamı verilmiyor; gerçek maliyet, projenin UI ile iş mantığını ne kadar net ayırdığına bağlı; ayrım net değilse paylaşılan composable'lar hızla platforma özgü dallanmalarla karmaşıklaşabiliyor.

1.12.0 ile 1.12.1 arasındaki fark ne?

1.12.0, 25 Ağustos 2026'da ana özellik sürümü olarak geldi (masaüstü tarafında Compose Hot Reload için MCP server dahil). 1.12.1 ise 22 Eylül 2026'da yayınlanan bir bakım patch'i: resources kütüphanesinde Kotlin 2.5 uyumluluk hazırlığı ve birden çok iOS crash/görünürlük düzeltmesi içeriyor, yeni bir büyük özellik eklemiyor.

Compose Compiler plugin sürümünü Kotlin plugin'inden farklı tutabilir miyim?

Hayır — resmi dokümantasyon, Compose Compiler Gradle plugin'inin Kotlin Multiplatform plugin'iyle aynı sürümde uygulanması gerektiğini açıkça belirtiyor. Farklı sürümler kullanmak desteklenmeyen bir yapılandırma.

Compose Multiplatform'da masaüstü desteği için hangi JDK sürümü gerekiyor?

Masaüstü hedefi için minimum JDK 11 yeterli, ama bu yalnızca çalışma zamanı için geçerli. Uygulamanı .dmg, .msi veya .deb gibi native bir paket haline getirip dağıtacaksan, JDK 17 veya üzeri zorunlu — bu sınırlama jpackage aracının kendi gereksinimlerinden kaynaklanıyor. CI pipeline'ında build agent'ını seçerken bu ayrımı gözden kaçırmamak, paketleme adımının sessizce başarısız olmasını önler.

Sonuç

Compose Multiplatform 1.12 serisi, büyük bir mimari sıçramadan çok, sürüm hizalama disiplinini ve iOS tarafındaki birikmiş hata düzeltmelerini önceliklendiren bir güncelleme. 1.12.0'ın öne çıkanı masaüstü tarafında Compose Hot Reload için MCP server, 1.12.1 ise resources kütüphanesindeki Kotlin 2.5 hazırlığı ve iOS crash düzeltmeleriyle geldi. Yükseltme yaparken en kritik adım, Compose Compiler plugin'ini Kotlin Multiplatform plugin'iyle aynı sürümde tutmak.

Mimari kararlar ve daha büyük bir production vaka analizi için Compose Multiplatform: Android + iOS production deployment yazısına, Kotlin Multiplatform tarafında benzer bir sürüm göçü deneyimi için Kotlin Multiplatform 1.1 Stable production vakası yazısına bakabilirsin. Jetpack Compose'un Android tarafındaki performans yönünü merak ediyorsan Jetpack Compose 1.7 strong skipping ve K2 derleyicisinin detayları için Kotlin 2.1 K2 derleyici ve context parameters yazıları seni tamamlıyor. Native SwiftUI ile karşılaştırmayı daha geniş bir üretim ölçeğinde görmek istersen Flutter vs SwiftUI 60K LOC karşılaştırması yazısı da faydalı bir referans.

Kaynaklar

Etiketler

#Compose Multiplatform#Jetpack Compose#Kotlin#iOS#Android#KMP#Cross-Platform
Muhittin Çamdalı

Muhittin Çamdalı

Lead Mobile Engineer

12+ yıllık deneyime sahip Lead Mobile Engineer. Swift, SwiftUI, Kotlin ve Flutter ile iOS, Android ve cross-platform mimarilerde uzman. Performanslı ve kullanıcı dostu mobil uygulamalar geliştiriyorum.

iOS Geliştirme Haberleri

Haftalık Swift tips, SwiftUI tricks ve iOS best practices. Spam yok, sadece değerli içerik.

Onay e-postasındaki bağlantıyı açıp “Aboneliğimi onayla” düğmesine bastığında aboneliğin başlar. Bültende açılma/tıklama istatistikleri tutulur; dilediğin an tek tıkla ayrılabilirsin. Gizlilik

Paylaş

İlgili İçerik