Mobil geliştirmede SDK ve Frameworkler: nedir, çeşitleri ve nasıl seçilir

Yazar: IT Sectr Yayınlanma: 2026-04-24 Okuma süresi: 10 dk

SDK (Software Development Kit), belirli bir platform için uygulama geliştirmek üzere araç ve kütüphane setidir. Stack Overflow (2025)'a göre, mobil geliştirme için doğru SDK ve frameworkleri seçmek geliştirme süresini %40–60 oranında azaltabilir. 10 yıllık deneyime sahip IT Sectr, düzinelerce SDK denemiş ve optimum yığını seçmek için pratik deneyimlerini paylaşmaktadır.

Önemli Noktalar

  • UI Frameworkleri — UIKit (iOS), SwiftUI (iOS), Jetpack Compose (Android) uygulamanın görsel görünümünü belirler.
  • Platformlararası SDK'ler — Flutter, React Native, KMM, iOS ve Android için tek kod yazmayı sağlar.
  • DI Frameworkleri — Dagger/Hilt (Android), Swinject (iOS), Koin (KMM) bağımlılık enjeksiyonunu otomatikleştirir.
  • Ağ Kütüphaneleri — Retrofit (Android), Alamofire (iOS), Ktor Client (KMM) REST API'lerle çalışmayı kolaylaştırır.
  • Görsel Yükleme — Glide/Coil (Android), Kingfisher (iOS), Lottie (animasyonlar) önbellekleme işlemlerini yönetir.

Mobil geliştirme için UI Frameworkleri: UIKit, SwiftUI, Jetpack Compose

UI frameworkleri, kullanıcı arayüzünün görünümünü ve davranışını belirler. UIKit, 2008'den beri kullanılan iOS'un ana frameworküdür ve tüm iOS sürümlerini destekler. SwiftUI, 2019'da tanıtılan daha modern bir bildirimsel frameworktür. Mobil geliştirmeye başlarken UI frameworkü seçimi ilk karardır.

SwiftUI vs UIKit

SwiftUI bildirimsel bir yaklaşım kullanır: arayüzün nasıl görünmesi gerektiğini tanımlarsınız ve framework güncellemeleri yönetir. SwiftUI, basit ekranlar için UIKit'e kıyasla kodu 2–3 kat azaltır ve otomatik olarak karanlık mod, Dynamic Type ve Erişilebilirliği destekler.

UIKit, daha ince kontrole sahip emir kipi bir frameworktür. UIKit, karmaşık özel arayüzler ve iOS 12 ve öncesini destekleyen uygulamalar için tercih edilmeye devam etmektedir. Birçok üretim uygulaması hibrit bir yaklaşım kullanır: karmaşık ekranlar için UIKit, yeni özellikler için SwiftUI.

Jetpack Compose, Android için Google'ın bildirimsel UI frameworküdür, SwiftUI'ye benzer. Compose, XML düzenleri yerine Kotlin kodu kullanır, geliştirmeyi hızlandırır ve hataları azaltır. AndroidView ve ComposeView aracılığıyla mevcut View tabanlı uygulamalarla uyumludur.

Jetpack, Jetpack Compose, Navigation, Room, WorkManager ve diğerlerini içeren bir Android kütüphane setidir. Jetpack, Android geliştirmenin yaygın görevlerini çözer — navigasyondan arka plan işlerine kadar — geriye dönük uyumluluğa sahip birleşik bir API ile.

Jetpack Compose'ta basit bir ekran örneği:

kotlin
@Composable
fun Greeting(name: String) {
    Column(
        modifier = Modifier.padding(16.dp),
        horizontalAlignment = Alignment.CenterHorizontally
    ) {
        Text(
            text = "Hello, $name!",
            style = MaterialTheme.typography.h4
        )
        Button(onClick = { /* handle click */ }) {
            Text("Click me")
        }
    }
}

Platformlararası SDK'ler: Flutter, React Native, Xamarin

Mobil geliştirme için platformlararası SDK'ler, iOS ve Android için tek bir kod tabanı yazmayı sağlar. Platformlararası bir SDK seçmek, geliştirme bütçesinin %30–50'sinden tasarruf sağlayabilir, ancak performans ve yerel API'lere erişim konusunda ödünler gerektirir.

Flutter vs React Native

Özellik Flutter (Dart) React Native (JavaScript/TypeScript) Xamarin (.NET)
İşleme Özel motor (Skia) Yerel bileşenler (Bridge) Yerel bileşenler
Performans Yüksek (60–120 FPS) Orta (Bridge'e bağlı) Yüksek (yerel derleme)
Hot Reload + (1 saniyeden az) + (Fast Refresh ile) + (sınırlı)
Platformlar iOS, Android, Web, Masaüstü iOS, Android, Web, Masaüstü (Electron) iOS, Android, Windows, macOS
UI Bileşenleri Material + Cupertino Yerel + üçüncü taraf kütüphaneler XAML + Yerel
Popülerlik Yüksek (büyüyor) Çok yüksek Orta (azalıyor)
En iyi kullanım MVP, startup'lar, tasarım sistemleri Basit UI'lı uygulamalar, JS ekipleri Kurumsal, Microsoft ekosistemi

Google'ın Flutter'ı, özel Skia işleme motoru sayesinde daha iyi performans sunar. Flutter, zengin animasyonlar ve özel tasarıma sahip projeler için idealdir. React Native, JavaScript deneyimi olan ekipler ve basit arayüzlü uygulamalar için daha uygundur.

Kotlin Multiplatform Mobile (KMM), ortak kodun Kotlin'de yazıldığı ve UI'nın yerel olduğu alternatif bir yaklaşımdır. KMM, iOS ve Android arasında iş mantığı, ağ ve modellerin paylaşılmasını sağlar, her platformun yerel UX'ini korur. IT Sectr'ın kurumsal projeler için tercihidir.

Ionic ve Apache Cordova, işleme için WebView kullanır. WebView yaklaşımı daha düşük performans ve UI sunar, ancak web geliştiricilerinin JS/HTML/CSS kullanmasına olanak tanır. Web siteleri üzerinde basit sarmalayıcı uygulamalar için uygundur.

DI Frameworkleri: Dagger/Hilt, Koin, Swinject

Bağımlılık Enjeksiyonu (DI), bağımlılıkların bir nesneye dışarıdan iletildiği bir desendir. Mobil geliştirmede, DI frameworkleri bağımlılıkların oluşturulmasını ve enjekte edilmesini otomatikleştirir, kodu daha test edilebilir ve bakımı kolay hale getirir.

Android için Dagger/Hilt

Dagger, kod üretimi kullanan Android için en popüler DI frameworküdür. Dagger/Hilt, Google'ın Android için resmi DI kütüphanesidir, Dagger üzerine inşa edilmiştir. Hilt, Dagger kurulumunu basitleştirir ve Jetpack bileşenleriyle otomatik olarak entegre olur.

Koin, kod üretimi olmadan Kotlin için bir DI frameworküdür. Koin'in kurulumu daha kolaydır ancak derleme zamanı kontrollerinin olmaması nedeniyle başlatma sırasında daha yavaş çalışır. Kurulum hızının performanstan daha önemli olduğu küçük projeler için uygundur.

Koin'de bir modül kurulumu örneği:

kotlin
val appModule = module {
    single { ApiService() }
    factory { Repository(get()) }
    viewModel { MainViewModel(get()) }
}

fun main() {
    startKoin {
        modules(appModule)
    }
}

Swinject, basit bir API'ye sahip Swift için bir DI frameworküdür. Swinject, bir Service Container aracılığıyla yapıcı enjeksiyonu, özellik enjeksiyonu ve yöntem enjeksiyonunu destekler. SwinjectStoryboard ve SwinjectAutoregistration aracılığıyla UIKit ve SwiftUI ile entegre olur.

DI frameworkü seçimi, platforma ve proje boyutuna bağlıdır. Android projeleri için IT Sectr, Hilt'i önerir, iOS için — Swinject, Kotlin Multiplatform için — minimum yapılandırma yükü nedeniyle Koin'i önerir.

Ağ Kütüphaneleri: Retrofit, Alamofire, Ktor

Mobil geliştirme için ağ kütüphaneleri, HTTP istekleri ve REST API'lerle çalışmayı kolaylaştırır. Retrofit (Android/Kotlin), tipli arayüzlere sahip JVM için en popüler HTTP istemcisidir. JSON'u OkHttp ve dönüştürücüler (Gson, Moshi, Kotlinx Serialization) aracılığıyla otomatik olarak serileştirir/deserileştirir.

Alamofire, Swift'te iOS/macOS için standart HTTP istemcisidir. Alamofire, zincirlenebilir API, otomatik oturum yönetimi, yanıt doğrulama ve hata işleme sağlar. Alamofire'da temel bir HTTP isteği tek satırlık gibi görünür.

Ktor Client, JetBrains'ten platformlararası bir HTTP istemcisidir. Ktor, birleşik API ile JVM, iOS, macOS, Windows, Linux ve JavaScript'te çalışır. Paylaşılan kodun her iki platformda da çalışması gereken KMM projeleri için harikadır.

RxSwift ve RxJava, reaktif programlama için kütüphanelerdir. Rx kütüphaneleri karmaşık asenkron işlemler için kullanılır — ağ isteklerini birleştirme, debounce, throttle, veri akışlarını birleştirme. Combine, Apple'ın Swift için modern alternatifidir.

Görsel Yükleme: Glide, Coil, Kingfisher

Mobil geliştirmede görsel yükleme kütüphaneleri üç görevi çözer: asenkron yükleme, önbellekleme ve görüntüleme. Glide, Android için standarttır, milyonlarca uygulamada kullanılır. GIF, video kareleri, animasyonlar, otomatik bellek ve disk önbelleğini destekler.

Coil (Coroutine Image Loader), Kotlin için Glide'a modern bir alternatiftir. Coil, ilk yüklemede Glide'dan %30 daha hızlıdır ve coroutines ile çalışır (suspend functions, Flow). Ağ için OkHttp kullanır ve SVG, GIF'i kutudan çıktığı gibi destekler.

Kingfisher, tek bir geliştirici tarafından iOS için lider kütüphanedir. Kingfisher, önbellek, yer tutucular, ilerleme göstergeleri, hata işleme ve geçiş animasyonlarını destekler. SDWebImage, büyük bir topluluğa sahip daha eski ama hala popüler bir alternatiftir.

Lottie, After Effects animasyonlarını gerçek zamanlı olarak işlemek için bir kütüphanedir. Lottie, JSON dosyalarından vektör animasyonlarını kalite kaybı olmadan ve minimum dosya boyutuyla oynatır. Renk değiştirme, hız, ilerleme ve döngüyü destekler.

Oyun Motorları: Unity, Unreal Engine

Mobil oyun geliştirme için özel SDK'ler ve motorlar kullanılır. Unity, mobil platformlar için en popüler oyun motorudur, tüm mobil oyunların %50'sinden fazlasını çalıştırır. C# kullanır ve iOS, Android, WebGL ve masaüstünü destekler.

Unreal Engine, fotogerçekçi grafiklere odaklanır. Unreal Engine 5, Nanite (sanal geometri) ve Lumen (dinamik aydınlatma) kullanır, mobil cihazlarda konsol kalitesinde görseller sunar. Daha güçlü donanım ve C++ deneyimi gerektirir.

SpriteKit ve SceneKit, Apple'ın iOS/macOS için yerel 2D ve 3D motorlarıdır. SpriteKit, minimum pil tüketimiyle 2D oyunlar için optimize edilmiştir ve gündelik oyunlar için idealdir. SceneKit, fizik, aydınlatma ve animasyon içeren 3D sahneleri işler.

Metal (Apple) ve Vulkan (platformlararası), düşük seviyeli grafik API'leridir. Metal, Apple cihazlarında maksimum performans sağlar, Vulkan ise Android ve masaüstünde (Windows için DirectX 12'ye benzer). OpenGL ES eskidir ancak eski cihazlar için hala kullanılmaktadır.

Sıkça Sorulan Sorular

SwiftUI mi UIKit mi — yeni başlayan biri ne öğrenmeli?

UIKit ile başlayın, çünkü iOS geliştirmenin temelidir. UIKit, mevcut iOS uygulamalarının %90'ında kullanılır ve eski kodun bakımı için bilinmesi zorunludur. UIKit'ten sonra SwiftUI öğrenin — yeni projeler için giderek standart haline geliyor.

Flutter mı React Native mi — 2025'te ne seçilmeli?

Flutter, her iki platformda daha iyi performans ve birleşik UI sunar. React Native, devasa JavaScript ekosistemi sayesinde öne çıkar. Ekibiniz JS deneyimine sahipse — React Native seçin. Sıfırdan başlıyorsanız — Flutter seçin. Yerel UI'lı kurumsal projeler için — KMM seçin.

Küçük bir projede DI frameworkü gerekli mi?

5 ekrana kadar olan projeler için DI frameworkü gereksizdir — Service Locator veya manuel enjeksiyon kullanabilirsiniz. Proje 10+ ekrana ulaştığında, DI bir zorunluluk haline gelir — test etmeyi kolaylaştırır ve karmaşık bağımlılıkları önler.

Görsel yükleme kütüphanesi nasıl seçilir?

Android için: Glide (evrensel) veya Coil (proje Kotlin Coroutines kullanıyorsa). iOS için: Kingfisher (modern) veya SDWebImage (kanıtlanmış). Platformlararası projeler için: Coil (KMM aracılığıyla Android + iOS'u destekler).

Bir mobil oyun için Unity mi Unreal Engine mi?

2D oyunlar ve gündelik segment için — Unity (zayıf cihazlarda daha iyi performans). Üst düzey cihazlarda AAA grafikler için — Unreal Engine 5. Unity öğrenmesi daha kolaydır, Unreal C++ deneyimi ve daha güçlü bir ekip gerektirir.

Özet

  • UIKit iOS geliştirmenin temelidir, SwiftUI gelecektir; Jetpack Compose yeni Android kodunun standardıdır
  • Flutter platformlararası çözümler arasında en iyi performansı sunar; JS ekipleri için React Native
  • Hilt (Android), Swinject (iOS), Koin (KMM) — her platform için önerilen DI frameworkleri
  • Retrofit + OkHttp — Android için standart yığın; iOS için Alamofire; KMM için Ktor
  • Glide/Coil (Android) ve Kingfisher (iOS) — ana görsel yükleme kütüphaneleri
  • Unity mobil oyunlarda liderdir; AAA grafik projeleri için Unreal Engine 5
  • Lottie — tüm platformlarda After Effects'ten vektör animasyonları için evrensel çözüm

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış