Skip to main content
Mobil Geliştirme

Kotlin Multiplatform ile Çoklu Platform Geliştirme

Mart 15, 2026 3 dk okuma 12 views Raw
Kotlin Multiplatform ile çoklu platform uygulama geliştirme
İçindekiler

Kotlin Multiplatform Nedir?

Kotlin Multiplatform (KMP), JetBrains tarafından geliştirilen ve tek bir kod tabanından birden fazla platform için uygulama geliştirmeyi mümkün kılan bir teknolojidir. Android, iOS, web, masaüstü ve sunucu tarafı uygulamalarında ortak iş mantığını paylaşırken, her platformun doğal kullanıcı arayüzünü korumayı hedefler.

Çapraz platform geliştirme dünyasında React Native ve Flutter gibi alternatiflerin yanında Kotlin Multiplatform, özellikle iş mantığı paylaşımı konusundaki esnek yaklaşımıyla öne çıkmaktadır. Google'ın Kotlin'i resmi Android dili olarak benimsemesi, KMP'nin popülerliğini daha da artırmıştır.

Kotlin Multiplatform'un Mimarisi

Ortak Modül (Common Module)

Ortak modül, platformdan bağımsız iş mantığını barındırır. Veri modelleri, ağ istekleri, veritabanı işlemleri ve iş kuralları bu katmanda yazılır. Kotlin'in güçlü tip sistemi ve null güvenliği, ortak kodun güvenilirliğini artırır.

Platform Modülleri

Her hedef platform için ayrı modüller tanımlanır. Bu modüller, platforma özgü API'lere erişim sağlar ve expect/actual mekanizması ile ortak modüldeki soyut tanımları gerçekleştirir. Bu yaklaşım, her platformun güçlü yönlerinden tam olarak yararlanmayı sağlar.

Compose Multiplatform ile UI Paylaşımı

JetBrains'in Compose Multiplatform projesi, Jetpack Compose'un deklaratif UI yaklaşımını tüm platformlara taşır. Bu sayede yalnızca iş mantığı değil, kullanıcı arayüzü de platformlar arasında paylaşılabilir:

  • Android: Doğal Jetpack Compose deneyimi
  • iOS: UIKit üzerinde çalışan Compose renderı
  • Masaüstü: JVM tabanlı pencere uygulamaları
  • Web: Kotlin/JS ve Canvas tabanlı rendering

KMP Projesinin Yapılandırılması

Bir Kotlin Multiplatform projesi oluşturmak için Gradle build sistemi kullanılır. Proje yapısı genellikle şu şekildedir:

ModülİçerikPlatform
sharedOrtak iş mantığı ve veri katmanıTümü
androidAppAndroid UI ve platform koduAndroid
iosAppSwiftUI veya UIKit arayüzüiOS
desktopAppCompose Desktop arayüzüJVM
webAppKotlin/JS veya Wasm arayüzüTarayıcı

Ağ İstekleri ve Veri Yönetimi

Ktor Client

Ktor, Kotlin için tasarlanmış asenkron HTTP istemcisidir ve KMP projelerinde platformlar arası ağ istekleri için ideal bir seçimdir. JSON serileştirme, WebSocket desteği ve özelleştirilebilir motor sistemi sunmaktadır.

SQLDelight

SQLDelight, SQL sorgularından tür güvenli Kotlin API'leri oluşturur. Android'de SQLite, iOS'ta SQLite ve masaüstünde JVM SQLite sürücüleri ile çalışarak tutarlı bir veritabanı deneyimi sağlar.

KMP'nin Avantajları

  1. Kod Paylaşımı: İş mantığının %60-80'i platformlar arasında paylaşılabilir
  2. Doğal Performans: Her platform için native kod üretilir
  3. Kademeli Benimseme: Mevcut projelere aşamalı olarak entegre edilebilir
  4. Güçlü Tip Sistemi: Derleme zamanı hata yakalama ve null güvenliği
  5. Aktif Ekosistem: Google ve JetBrains desteğiyle büyüyen kütüphane ekosistemleri

KMP vs Diğer Çapraz Platform Çözümleri

Kotlin Multiplatform, her şeyi paylaşmaya zorlamak yerine geliştiriciye neyi paylaşacağını seçme esnekliği tanır. Bu yaklaşım, platformların doğal deneyimlerinden ödün vermeden kod tekrarını azaltır.

Flutter her şeyi kendi widget sistemiyle çizerken, React Native köprü mimarisi kullanır. KMP ise doğrudan platforma özgü kod üretir ve bu durum özellikle performans kritik uygulamalarda belirgin bir avantaj sağlar.

Gerçek Dünya Kullanım Senaryoları

Netflix, VMware, Philips ve Cash App gibi büyük şirketler KMP'yi üretim ortamlarında kullanmaktadır. Ortak veri katmanı, iş kuralları ve ağ iletişimi paylaşımı en yaygın kullanım senaryolarıdır.

Ekolsoft olarak, çoklu platform projelerinde Kotlin Multiplatform teknolojisini değerlendirerek müşterilerimize hem geliştirme süresini kısaltan hem de bakım maliyetlerini düşüren çözümler sunmaktayız.

Sonuç ve Öneriler

Kotlin Multiplatform, çoklu platform geliştirme alanında dengeli ve pragmatik bir yaklaşım sunmaktadır. Özellikle mevcut Android projeleri olan ekipler için geçiş süreci oldukça kolaydır. KMP'nin Kotlin/Wasm desteği ve Compose Multiplatform'un olgunlaşmasıyla birlikte gelecekte daha da güçlü bir ekosistem oluşması beklenmektedir.

Bu yazıyı paylaş